Function as a Service (FaaS) mewakili kategori layanan komputasi awan yang menyediakan platform yang memungkinkan pelanggan mengembangkan, menjalankan, dan mengelola fungsionalitas aplikasi tanpa kerumitan dalam membangun dan memelihara infrastruktur yang biasanya terkait dengan pengembangan dan peluncuran aplikasi. Pola arsitektur ini umumnya dikaitkan dengan komputasi tanpa server, di mana pengembang dapat fokus pada penulisan kode aplikasi mereka, dan penyedia cloud mengelola lingkungan eksekusi.
Menelusuri Sejarah dan Asal Usul Function as a Service (FaaS)
Dimulainya Function as a Service (FaaS) sangat terkait dengan evolusi komputasi awan. Lahirnya komputasi awan di awal tahun 2000-an membawa Infrastruktur sebagai Layanan (IaaS) dan Platform sebagai Layanan (PaaS) menjadi sorotan. Namun, pengembang masih perlu mengelola server di kedua model, meskipun lebih sedikit dengan PaaS.
Terobosan terjadi pada tahun 2014 ketika Amazon Web Services (AWS) memperkenalkan AWS Lambda sebagai platform FaaS pertama. Ini menghilangkan kebutuhan pengembang untuk khawatir tentang server sepenuhnya. Lambda mengizinkan pengembang untuk menjalankan kode mereka sebagai respons terhadap peristiwa seperti perubahan pada data di bucket Amazon S3 atau pembaruan di tabel Amazon DynamoDB. Hal ini menandai perubahan revolusioner dalam cara aplikasi dibangun dan dikirimkan.
Menyelami Lebih Dalam Fungsi sebagai Layanan (FaaS)
FaaS adalah metode tanpa server untuk mengeksekusi potongan kode modular di edge. Daripada menerapkan seluruh aplikasi atau layanan, pengembang dapat menjalankan fungsi-fungsi kecil yang melakukan satu tugas tertentu. Fungsi-fungsi ini bersifat 'stateless' karena dirancang untuk berumur pendek dan dijalankan dalam lingkungan stateless. Penyedia cloud secara otomatis mengelola sumber daya yang mereka butuhkan untuk menjalankan dan menskalakannya.
Fungsi dipicu oleh kejadian seperti permintaan HTTP, operasi database, antrian, penyimpanan, dan sebagainya. Penyedia menjalankan fungsi dan mengembalikan hasilnya setelah berhasil diselesaikan. Karakteristik utama FaaS adalah Anda hanya membayar waktu pemrosesan sebenarnya dari fungsi tersebut dan bukan infrastruktur yang mendasarinya.
Mengungkap Struktur Internal dan Mekanisme Kerja FaaS
Dalam model FaaS, logika aplikasi dibagi menjadi beberapa fungsi terpisah. Ini dikelola oleh platform yang mendasarinya dan biasanya tidak memiliki kewarganegaraan. Setelah menerima suatu peristiwa, platform dengan cepat memutar sumber daya untuk menjalankan fungsi, memproses peristiwa tersebut, dan kemudian mematikan sumber daya ketika pemrosesan selesai.
- Pemicu Peristiwa: Peristiwa seperti permintaan HTTP, unggahan file, atau operasi database memicu fungsi tersebut.
- Inisialisasi Fungsi: Penyedia cloud menyiapkan fungsi untuk dieksekusi. Ini mungkin melibatkan memulai sebuah container dan memuat kode fungsi ke dalamnya.
- Eksekusi: Fungsi dijalankan dengan data peristiwa yang disediakan.
- Tanggapan: Fungsi memproses data peristiwa dan mengembalikan hasilnya. Itu juga dapat berinteraksi dengan layanan atau database lain sebagai bagian dari pemrosesan ini.
- Matikan: Setelah fungsi selesai berjalan, penyedia cloud akan mematikan sumber daya yang digunakan untuk menjalankan fungsi tersebut.
Fitur Utama Fungsi sebagai Layanan (FaaS)
- Berbasis Peristiwa: Fungsi dijalankan sebagai respons terhadap peristiwa atau pemicu.
- Tanpa kewarganegaraan: Fungsi tidak menyimpan informasi di antara eksekusi.
- Dapat diskalakan: Penyedia cloud secara otomatis mengelola penskalaan fungsi.
- Berumur pendek: Fungsi diharapkan dimulai dengan cepat, berjalan sebentar, lalu berhenti.
- Bayar per Penggunaan: Penetapan harga didasarkan pada waktu komputasi aktual yang digunakan oleh fungsi tersebut.
Berbagai Jenis Fungsi sebagai Layanan (FaaS)
Meskipun konsep dasar FaaS tetap sama, penyedia cloud yang berbeda menawarkan produk FaaS yang sedikit berbeda. Beberapa yang paling populer meliputi:
Pemberi | Produk FaaS |
---|---|
AWS | Lambda |
Google Awan | Fungsi Awan |
MicrosoftAzure | Fungsi Azure |
IBM | Fungsi Awan |
Peramal | Proyek Fn |
Cara Menggunakan Function as a Service (FaaS), Permasalahan dan Solusinya
FaaS sangat berguna untuk aplikasi yang perlu merespons informasi real-time atau permintaan sporadis. Misalnya, ini dapat digunakan untuk pemrosesan file waktu nyata, transformasi data, atau pemrosesan aliran peristiwa. Namun, ada potensi tantangan terkait batas waktu eksekusi, pengelolaan status, pengujian, dan debugging. Solusinya mencakup desain kode fungsi yang cermat untuk mematuhi batas waktu eksekusi dan penggunaan layanan cloud tambahan untuk mengelola status.
Perbandingan dengan Konsep Serupa
Konsep | Keterangan |
---|---|
FaaS | Pengembang menyediakan kode fungsi. Platform secara otomatis menangani semua infrastruktur. |
IaaS | Pengembang mengelola aplikasi, data, runtime, dan middleware. Penyedia menangani virtualisasi, server, penyimpanan, dan jaringan. |
PaaS | Pengembang mengelola aplikasi dan data. Penyedia menangani runtime, middleware, OS, virtualisasi, server, penyimpanan, dan jaringan. |
Perspektif dan Teknologi Masa Depan Terkait FaaS
FaaS kemungkinan akan terus berkembang seiring dengan ekosistem tanpa server yang lebih luas. Kemajuan dalam komputasi edge dapat membuat FaaS menjadi lebih lazim di edge jaringan, lebih dekat dengan sumber data. Selain itu, kita mungkin melihat lebih banyak lingkungan hybrid tanpa server di mana FaaS digunakan bersama dengan model komputasi lain untuk berbagai bagian aplikasi.
Peran Server Proxy dalam Fungsi sebagai Layanan (FaaS)
Server proxy dapat berperan dalam FaaS dengan bertindak sebagai perantara permintaan dari klien yang mencari sumber daya dari server lain. Mereka dapat meningkatkan kinerja, memberikan keamanan, dan menjaga anonimitas. Dalam konteks FaaS, server proksi dapat digunakan untuk menangani permintaan yang memicu fungsi, menawarkan kemampuan kontrol, pencatatan, dan modifikasi tambahan.