Apa itu Function as a Service (FaaS)?

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.

FaaS versus PaaS versus IaaS

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.

  • FaaS berfokus pada kode berbasis peristiwa. Anda men-deploy satu fungsi yang menjalankan tugas tertentu sebagai respons terhadap suatu peristiwa, seperti upload file. Platform ini menangani penskalaan secara otomatis, sering kali hingga nol saat tidak ada aktivitas.
  • PaaS menyediakan platform untuk membangun dan menjalankan seluruh aplikasi. Meskipun PaaS juga menghilangkan kebutuhan untuk mengelola hardware dan sistem operasi, PaaS biasanya membuat aplikasi Anda terus berjalan, dengan menunggu permintaan pengguna. PaaS paling cocok untuk aplikasi web lengkap, bukan pemicu peristiwa individual.
  • IaaS menawarkan kontrol paling besar, tetapi memerlukan pengelolaan paling banyak. Anda menyewa virtual machine (VM) dan penyimpanan, tetapi Anda bertanggung jawab untuk mengelola sistem operasi, runtime, dan middleware.

Perbandingan model layanan cloud

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

Cara kerja Function as a Service

Alur kerja FaaS dapat menjadi sederhana dan efisien. Hal ini sering kali bergantung pada model berbasis peristiwa di mana tindakan memicu kode Anda.

  1. Deployment kode: Anda menulis potongan kecil kode, atau fungsi, yang menjalankan satu tugas dan menguploadnya ke penyedia cloud Anda.
  2. Pemicuan peristiwa: Peristiwa terjadi, seperti pengguna mengklik tombol, file diupload ke penyimpanan, atau pesan tiba di antrean.
  3. Alokasi resource: Penyedia cloud mengonfirmasi peristiwa dan langsung menyediakan lingkungan eksekusi yang diperlukan.
  4. Eksekusi fungsi: Kode Anda berjalan, menjalankan tugasnya, dan menghasilkan hasil, seperti memproses data atau mengirim notifikasi.
  5. Penonaktifan dan penagihan: Setelah tugas selesai, resource akan segera dilepaskan, dan Anda hanya akan ditagih untuk milidetik kode Anda berjalan.

Kasus penggunaan umum untuk FaaS

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.

Keuntungan utama mengadopsi FaaS

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.

Masalah umum developer: "Cold start"

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.

Cara mengurangi cold start

Jika aplikasi Anda memerlukan respons instan, Anda dapat menggunakan langkah-langkah ini untuk meminimalkan latensi.

  1. Kurangi ukuran kode: Tinjau kode Anda dan hapus library atau dependensi besar yang tidak benar-benar diperlukan. Semakin kecil fungsi Anda, semakin cepat fungsi tersebut dimuat.
  2. Gunakan pemuatan lambat: Strukturkan kode Anda agar hanya memuat variabel atau koneksi yang berat saat benar-benar diperlukan dalam logika fungsi, bukan memuatnya segera saat fungsi dimulai.
  3. Konfigurasi instance minimum: Sebagian besar penyedia cloud besar memungkinkan Anda menetapkan jumlah "instance minimum". Hal ini membuat setidaknya satu instance fungsi Anda tetap aktif dan siap digunakan setiap saat, sehingga menghilangkan penundaan startup.
  4. Pilih runtime yang lebih cepat: Beberapa bahasa pemrograman, seperti Go atau Python, umumnya dimulai lebih cepat daripada bahasa lain, seperti Java. Jika kecepatan sangat penting, pertimbangkan untuk menulis fungsi yang sensitif terhadap latensi dalam bahasa yang lebih ringan.

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.

FaaS dan Cloud Run Functions

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.

Referensi lainnya

Untuk mempelajari lebih lanjut Function as a Service dan komputasi serverless, Anda dapat menjelajahi referensi ini.

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.