FaaS, atau Function-as-a-Service, adalah layanan cloud-computing yang memungkinkan pelanggan untuk menjalankan kode sebagai respons terhadap suatu peristiwa, tanpa perlu mengelola infrastruktur kompleks yang biasanya terkait dengan pembangunan dan peluncuran aplikasi layanan mikro.
Hosting aplikasi perangkat lunak di internet biasanya memerlukan penyediaan dan pengelolaan server virtual atau fisik serta pengelolaan sistem operasi dan proses hosting server web. Dengan FaaS, perangkat keras fisik, sistem operasi mesin virtual, dan manajemen perangkat lunak server web semuanya ditangani secara otomatis oleh penyedia layanan cloud. Hal ini memungkinkan pengembang untuk fokus hanya pada fungsi individu dalam kode aplikasi mereka.
Serverless dan Functions-as-a-Service (FaaS) sering kali disamakan satu sama lain, namun sebenarnya FaaS adalah bagian dari serverless.
Serverless difokuskan pada kategori layanan apa pun, baik itu komputasi, penyimpanan, basis data, pesan, gateway api, dll. di mana konfigurasi, manajemen, dan penagihan server tidak terlihat oleh pengguna akhir.
FaaS, di sisi lain, meskipun mungkin merupakan teknologi yang paling utama dalam arsitektur tanpa server, difokuskan pada paradigma komputasi yang digerakkan oleh peristiwa di mana kode aplikasi, atau kontainer, hanya berjalan sebagai respons terhadap peristiwa atau permintaan.
FaaS adalah alat yang sangat berharga jika Anda ingin memigrasi aplikasi ke cloud secara efisien dan hemat biaya. Berikut ini adalah beberapa keuntungan yang akan Anda nikmati:
Ada beberapa praktik terbaik yang bisa Anda ikuti untuk membuat penggunaan FaaS lebih mudah diterapkan dan lebih efektif:
Karena memungkinkan transaksi diisolasi dan diskalakan dengan mudah, FaaS baik untuk volume tinggi dan beban kerja paralel yang memalukan. Faas juga dapat digunakan untuk membuat sistem backend atau untuk aktivitas seperti pemrosesan data, konversi format, pengkodean, atau agregasi data.
FaaS juga merupakan alat yang baik untuk aplikasi Web, backend, pemrosesan data / aliran, atau untuk membuat chatbots online atau back end untuk perangkat IoT. FaaS dapat membantu Anda mengelola dan menggunakan layanan pihak ketiga. Jika Anda mempertimbangkan pengembangan aplikasi Android, misalnya, Anda dapat mengadopsi pendekatan FaaS untuk menjaga biaya Anda tetap terkendali. Karena Anda hanya dikenakan biaya saat aplikasi terhubung ke cloud untuk fungsi tertentu seperti pemrosesan batch, biaya bisa jauh lebih rendah daripada menggunakan pendekatan tradisional.
FaaS juga dapat secara dramatis meningkatkan kinerja komputasi. Sebagai contoh, dua mahasiswa baru-baru ini bekerja sama dengan para insinyur IBM untuk mengeksplorasi cara memanfaatkan IBM Cloud Functions untuk simulasi Monte Carlo (metode matematis yang digunakan untuk memperkirakan hasil di masa depan dari kejadian tertentu yang sulit diprediksi) untuk memperkirakan harga saham. Simulasi Monte Carlo dianggap sebagai beban kerja komputasi berkinerja tinggi yang penting. Kombinasi Monte Carlo dan IBM Cloud Functions memungkinkan tim untuk menjalankan komputasi dalam skala besar dan memungkinkan mereka untuk fokus pada logika bisnis. Dengan menggunakan FaaS, tim menyelesaikan seluruh simulasi Monte Carlo dalam waktu sekitar 90 detik dengan 1.000 panggilan serentak. Sebagai perbandingan, menjalankan alur yang sama melalui laptop dengan empat inti CPU membutuhkan waktu 247 menit dan pemanfaatan CPU hampir 100%.
Untuk melihat lebih banyak contoh kasus penggunaan FaaS, lihat "Rekap Keuntungan Utama yang Ditawarkan oleh IBM Cloud Functions."
FaaS, PaaS (Platform-as-a-Service), kontainer, dan mesin virtual (VM ) semuanya memainkan peran penting dalam ekosistem serverless. Karena FaaS adalah elemen paling sentral dan paling menentukan dari stack tanpa server, ada baiknya mengeksplorasi bagaimana FaaS berbeda dari model komputasi umum lainnya yang ada di pasaran saat ini di seluruh atribut utama:
Kubernetes dan Knative adalah salah satu implementasi "plumbing" di balik FaaS. Kubernetes adalah sumber terbuka, alat orkestrasi kontainer yang sangat penting untuk pengelolaan aplikasi cloud. Knative memungkinkan Anda menjalankan tanpa server dalam kluster Kubernetes.
Kombinasi Knative dan Kubernetes berarti Anda bisa memanfaatkan fungsi-fungsi Kubernetes seperti pemantauan, keamanan, pencatatan, dan autentikasi serta mengombinasikannya dengan manfaat Knative seperti pembuatan kontainer otomatis, portabilitas penuh, dan bekerja di seluruh lingkungan hibrida.
Para pembuat teknologi ini percaya bahwa pengembang tidak harus memilih antara tanpa server dan wadah saat membangun aplikasi cloud. Tujuannya adalah untuk meningkatkan ketersediaan dan konsistensi kontainer dengan penskalaan yang kuat dan akses on-demand tanpa server.
Tonton video ini untuk mempelajari lebih lanjut tentang Knative:
Jalankan gambar kontainer, pekerjaan batch, atau kode sumber sebagai beban kerja serverless, tidak perlu pengukuran, penerapan, jaringan, atau penskalaan.
Kembangkan kode ringan yang dijalankan secara skalabel sesuai permintaan dengan platform pemrograman functions-as-a-service (FaaS) ini.
Serverless adalah model pengembangan dan eksekusi aplikasi cloud yang memungkinkan pengembang membangun dan menjalankan kode aplikasi tanpa menyediakan atau mengelola server atau infrastruktur backend.
Kontainer adalah unit perangkat lunak yang dapat dieksekusi yang mengemas kode aplikasi bersama dengan dependensi pustaka, dan dapat dijalankan di mana saja, baik di desktop, TI tradisional, atau cloud.
PaaS, atau Platform-as-a-Service, menyediakan platform cloud yang lengkap, fleksibel, dan hemat biaya untuk mengembangkan, menjalankan, dan mengelola aplikasi.