Function as a service (FaaS) adalah model cloud computing tempat Anda mengembangkan potongan kode modular kecil yang disebut fungsi, dan penyedia cloud mengeksekusinya sebagai respons terhadap peristiwa tertentu. Dalam model ini, Anda berfokus sepenuhnya pada logika kode, sementara runtime serverless mengelola infrastruktur. Penyedia cloud menangani hardware fisik, sistem operasi, dan software server web.
Hal ini berbeda dengan aplikasi berbasis server tradisional atau arsitektur monolitik. Pada model lama tersebut, Anda biasanya mengelola server yang berjalan terus-menerus, meskipun tidak ada yang menggunakan aplikasi Anda. Dengan FaaS, platform menjalankan kode Anda hanya saat peristiwa tertentu memicunya. Hal ini memungkinkan cara yang efisien untuk membangun aplikasi, karena Anda hanya menggunakan resource saat diperlukan.
Penting untuk memahami perbandingan FaaS dengan model layanan cloud lainnya seperti platform as a service (PaaS) dan infrastructure as a service (IaaS). Meskipun FaaS termasuk dalam kategori "serverless" yang lebih luas—di mana penyedia mengelola server—FaaS menawarkan tingkat abstraksi yang berbeda. Serverless mencakup layanan apa pun—seperti database, penyimpanan, atau komputasi—yang servernya dikelola oleh penyedia. FaaS secara khusus merupakan bagian komputasi dari serverless yang menjalankan kode sebagai respons terhadap peristiwa.
Fitur | FaaS (Function as a Service) | PaaS (Platform as a Service) | IaaS (Infrastructure as a Service) |
Unit utama | Satu fungsi (cuplikan kode kecil) | Seluruh aplikasi | Mesin virtual (VM) |
Skalabilitas | Penskalaan instan per permintaan (termasuk hingga nol) | Lebih lambat, penskalaan berdasarkan aturan yang dikonfigurasi | Penskalaan otomatis manual atau yang telah dikonfigurasi sebelumnya |
Model penetapan harga | Bayar per waktu eksekusi (milidetik) | Bayar resource yang berjalan (waktu operasional) | Bayar resource yang dialokasikan (ukuran/waktu) |
Pemeliharaan | Tidak ada (semuanya dikelola oleh penyedia) | Lebih rendah (penyedia mengelola OS/Runtime) | Lebih tinggi (Anda mengelola OS, update, patch) |
Paling cocok untuk | Tugas berbasis peristiwa, kode penghubung (glue code), pemrosesan data | Aplikasi web, layanan yang berjalan lama | Aplikasi lama, infrastruktur kustom yang kompleks |
Fitur
FaaS (Function as a Service)
PaaS (Platform as a Service)
IaaS (Infrastructure as a Service)
Unit utama
Satu fungsi (cuplikan kode kecil)
Seluruh aplikasi
Mesin virtual (VM)
Skalabilitas
Penskalaan instan per permintaan (termasuk hingga nol)
Lebih lambat, penskalaan berdasarkan aturan yang dikonfigurasi
Penskalaan otomatis manual atau yang telah dikonfigurasi sebelumnya
Model penetapan harga
Bayar per waktu eksekusi (milidetik)
Bayar resource yang berjalan (waktu operasional)
Bayar resource yang dialokasikan (ukuran/waktu)
Pemeliharaan
Tidak ada (semuanya dikelola oleh penyedia)
Lebih rendah (penyedia mengelola OS/Runtime)
Lebih tinggi (Anda mengelola OS, update, patch)
Paling cocok untuk
Tugas berbasis peristiwa, kode penghubung (glue code), pemrosesan data
Aplikasi web, layanan yang berjalan lama
Aplikasi lama, infrastruktur kustom yang kompleks
Alur kerja FaaS dapat menjadi sederhana dan efisien. Hal ini sering kali bergantung pada model berbasis peristiwa di mana tindakan memicu kode Anda.
FaaS bersifat serbaguna dan cocok untuk banyak arsitektur aplikasi modern.
Anda dapat memecah aplikasi kompleks menjadi bagian-bagian kecil dan independen yang berkomunikasi melalui peristiwa.
FaaS berfungsi dengan baik untuk tugas seperti mengubah ukuran gambar segera setelah pengguna menguploadnya atau membersihkan data saat tiba.
Anda dapat menggunakan fungsi untuk mendukung logika di balik aplikasi seluler atau memproses data dari perangkat internet of things (IoT).
Tugas yang dapat dibagi menjadi banyak pekerjaan kecil dan simultan, seperti encoding video, berjalan sangat efisien di FaaS.
Anda dapat mengganti tugas terjadwal tradisional dengan fungsi yang berjalan pada waktu tertentu untuk melakukan pemeliharaan atau membuat laporan.
Mengadopsi teknologi cloud FaaS menawarkan beberapa manfaat bagi developer dan bisnis.
Penskalaan otomatis dan instan
Aplikasi Anda dapat menangani lonjakan traffic yang tiba-tiba, dari satu pengguna hingga ribuan, tanpa perlu mengonfigurasi apa pun secara manual.
Kontrol biaya yang unggul (bayar sesuai penggunaan)
Anda hanya membayar saat kode Anda berjalan, sehingga dapat menghemat biaya secara signifikan dibandingkan dengan membayar server yang tidak digunakan.
Kecepatan developer meningkat
Developer dapat menulis kode dan men-deploy-nya dengan cepat tanpa menghabiskan waktu untuk pengelolaan server atau penyiapan infrastruktur.
Fokus pada kode aplikasi, bukan pengelolaan infrastruktur
Tim dapat menggunakan energi mereka untuk menciptakan nilai bagi pelanggan, bukan menambal server atau mengelola sistem operasi.
Ketersediaan dan ketahanan tinggi
Platform FaaS biasanya menjalankan kode Anda di beberapa zona, jadi jika satu area gagal, aplikasi Anda akan terus berfungsi.
Salah satu masalah paling umum yang dihadapi developer dengan FaaS adalah "cold start". Jika fungsi Anda tidak berjalan dalam waktu lama, penyedia cloud akan menghentikan lingkungan untuk menghemat resource. Saat peristiwa memicu fungsi tersebut, akan ada sedikit penundaan saat sistem menyiapkan lingkungan dan memuat kode Anda. Penundaan ini, yang disebut cold start, dapat memperlambat aplikasi Anda.
Jika aplikasi Anda memerlukan respons instan, Anda dapat menggunakan langkah-langkah ini untuk meminimalkan latensi.
Function as a service menjelaskan model cloud computing, dan Cloud Run Functions adalah produk Google Cloud yang mewujudkan konsep ini. Cloud Run Functions berfungsi sebagai solusi FaaS bayar sesuai penggunaan yang skalabel dan memungkinkan Anda menjalankan kode tanpa pengelolaan server.
Saat memilih Cloud Run Functions, Anda mengadopsi pendekatan serverless yang memungkinkan Google Cloud menangani infrastruktur yang mendasarinya. Anda menyediakan kode, dan platform mengelola lingkungan eksekusi, update sistem operasi, dan kemampuan penskalaan otomatis. Integrasi ini berarti Anda dapat men-deploy fungsi tujuan tunggal yang merespons peristiwa—seperti permintaan HTTP atau perubahan data—tanpa menyediakan satu pun virtual machine.
Layanan ini menggabungkan kemudahan deployment fungsi dengan kecanggihan teknologi Cloud Run. Developer dapat membangun aplikasi berbasis peristiwa menggunakan bahasa seperti Python, Node.js, Go, Java, .NET, dan Ruby. Karena berjalan di infrastruktur Google yang tangguh, fungsi Anda dapat diskalakan dari 0 hingga ribuan instance secara otomatis untuk memenuhi permintaan.
Untuk mempelajari lebih lanjut Function as a Service dan komputasi serverless, Anda dapat menjelajahi referensi ini.
Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.