Kursus
Mengelola server fisik atau virtual bukan perkara mudah, entah karena biaya perawatan yang tinggi atau kebutuhan tenaga ahli. Komputasi serverless memecahkan masalah ini dengan cara yang hemat biaya, memungkinkan pengembang membangun dan menjalankan aplikasi di cloud.
Dalam artikel ini, kami akan membahas komputasi serverless, penerapannya, serta manfaatnya bagi pengembang dan bisnis. Ini topik penting karena ukuran pasar untuk komputasi serverless melampaui $9 juta pada 2022 dan diproyeksikan tumbuh lagi 25% dalam sepuluh tahun ke depan. Mari mulai.
Definisi dan Tinjauan Umum
Bayangkan tagihan listrik dan air di rumah Anda dihitung berdasarkan pemakaian, bukan biaya bulanan tetap yang diperkirakan. Begitulah cara komputasi serverless bekerja: ini adalah cara penyedia cloud mengalokasikan infrastruktur agar Anda dapat membangun dan menjalankan aplikasi berdasarkan penggunaan tanpa perlu repot mengurus perawatan server.
Berbeda dengan komputasi cloud tradisional, di mana server fisik atau tervirtualisasi, penyimpanan, dan perangkat jaringan disiapkan, dalam komputasi serverless penyedia cloud mengelola infrastruktur dan secara otomatis mengalokasikan sumber daya saat aplikasi Anda melakukan skala. Dengan kata lain, komputasi serverless mengabstraksikan server dari pengembang, sehingga mereka dapat lebih fokus pada aplikasi yang dibangun alih-alih mengkhawatirkan infrastruktur tempat aplikasi di-host.
Bayangkan Anda biasa memiliki 100 hingga 200 pengguna harian di aplikasi Anda. Jika keesokan harinya pengguna tiba-tiba melonjak menjadi 1.000.000, server akan secara otomatis menyesuaikan skala sumber daya untuk memenuhi permintaan itu. Ini tidak realistis dengan komputasi cloud tradisional karena server akan mengalami downtime akibat lonjakan trafik, dan jika penyimpanannya kecil, perlu membeli yang lebih besar, yang memakan waktu.
| Kategori | Komputasi Serverless | Komputasi Tradisional |
|---|---|---|
| Skalabilitas | Dinamis | Tetap |
| Penagihan | Berdasarkan penggunaan | Biaya berkelanjutan, terlepas dari penggunaan, termasuk juga biaya perawatan dan operasional |
| Manajemen infrastruktur | Diabstraksikan dari bisnis | Memerlukan pengelolaan aktif |
Karakteristik Utama
Sebelum melihat fitur utama yang membedakan komputasi serverless dari model cloud tradisional lain, mari pahami dulu istilah kunci dalam komputasi serverless.
- Function: Potongan kode yang dirancang untuk menjalankan tugas spesifik, seperti unggah file, memproses permintaan HTTP, dan lainnya. Setiap function berdiri sendiri dan dirancang untuk merespons suatu peristiwa.
- Invocation: Pemanggilan sebuah function untuk menjalankan tindakan tertentu; dapat dianggap sebagai eksekusi kode function sebagai respons terhadap suatu peristiwa.
- Duration: Waktu yang dibutuhkan sebuah function untuk tereksekusi sejak dipanggil hingga mengembalikan respons.
- Cold Start: Waktu yang dibutuhkan platform serverless untuk mengalokasikan sumber daya saat sebuah function dipanggil sebelum mulai dieksekusi.
- Concurrency Limit: Jumlah maksimum instance sebuah function yang dapat berjalan secara bersamaan sebagai respons terhadap peristiwa dan permintaan.
- Timeout: Durasi maksimum yang diizinkan untuk sebuah function sebelum dihentikan oleh platform serverless.
Eksekusi berbasis peristiwa
Eksekusi berbasis peristiwa juga dikenal sebagai function-as-a-service (FaaS), di mana aplikasi serverless dipecah menjadi function-function independen yang dipicu oleh peristiwa spesifik dari sumber seperti permintaan HTTP, perubahan pada basis data, antrean pesan, atau unggahan file.
Misalnya Anda memiliki aplikasi serverless yang secara otomatis memproses gambar setiap kali diunggah ke bucket Amazon S3. Ketika pengguna mengunggah berkas gambar, sebuah function dipicu untuk memproses gambar dan menyimpannya di bucket Amazon S3 lain. Ini memastikan function hanya berjalan saat diperlukan, sehingga sistem efisien dan hemat biaya.

Eksekusi berbasis peristiwa, menggunakan contoh unggah file. Gambar oleh Penulis
Auto-scaling
Auto-scaling adalah pengalokasian sumber daya komputasi berdasarkan permintaan atau peningkatan beban kerja. Ini merupakan karakteristik kunci komputasi serverless yang membuatnya efisien dan adaptif, memastikan sumber daya tidak terbuang saat beban kerja rendah dan tidak terjadi downtime ketika permintaan tinggi.
Misalnya, aplikasi Anda mendapat lonjakan trafik. Alih-alih mengalami downtime pada server karena trafik tinggi, platform secara otomatis menyediakan instance tambahan untuk menangani peningkatan beban kerja. Demikian pula, platform menurunkan skala sumber daya untuk meminimalkan biaya saat trafik rendah. Ini memastikan efisiensi tanpa intervensi manual, membuat aplikasi hemat biaya dan responsif dalam berbagai skenario.
Penagihan bayar sesuai pakai
Platform serverless menagih pengguna berdasarkan sumber daya yang dipakai, bukan yang dialokasikan. Berbeda dari model cloud tradisional di mana Anda mungkin tidak menggunakan seluruh sumber daya yang dialokasikan, di platform serverless Anda hanya membayar waktu komputasi yang digunakan. Biaya juga diukur secara rinci, artinya Anda membayar per invocation atau durasi eksekusi function, memastikan penagihan tepat sesuai sumber daya yang dimanfaatkan.
Jika, misalnya, aplikasi Anda memproses 100 gambar dari pengguna dalam sebulan tertentu, alih-alih membayar penggunaan server 24/7, Anda hanya membayar waktu komputasi yang digunakan untuk 100 gambar yang diproses tersebut.
Abstraksi manajemen server
Ini juga merupakan fitur kunci komputasi serverless di mana pengembang dan bisnis tidak perlu khawatir tentang penyediaan, penskalaan, dan pemeliharaan server. Mereka dapat fokus pada permasalahan inti bisnis dan menyerahkan perawatan server kepada penyedia cloud.
Manajemen konkurensi
Platform serverless dapat mengeksekusi banyak function secara bersamaan. Ini membuatnya cepat dan efisien dibanding pendekatan tradisional. Jika pengguna ingin mengunggah gambar di platform mereka dan penyedia serverless memberikan batas konkurensi default sebesar 100, maka permintaan yang melampaui batas tersebut akan diantrikan dan dijalankan pada eksekusi function berikutnya.
Manfaat Komputasi Serverless
Efisiensi biaya
Tidak seperti komputasi cloud tradisional yang memerlukan server khusus dan menimbulkan biaya saat server menganggur, platform serverless menggunakan model berbasis peristiwa untuk menagih pengembang. Analogi yang berguna adalah menggunakan layanan taksi alih-alih memiliki mobil. Dengan taksi Anda tidak perlu memikirkan biaya seperti parkir, bahan bakar, dan sebagainya—Anda hanya membayar jarak yang ditempuh. Dalam komputasi serverless, seperti taksi, Anda hanya membayar sumber daya komputasi yang digunakan. Berbeda dengan pendekatan tradisional (memiliki mobil), Anda bertanggung jawab atas semua sumber daya komputasi yang digunakan, bahkan ketika sistem menganggur.

Perbandingan efisiensi biaya antar jenis server. Sumber: Cloudflare
Mengurangi kompleksitas operasional
Banyak waktu dihemat dalam komputasi serverless karena pengembang tidak perlu mencurahkan waktu untuk memasang dan merawat server; mereka bisa lebih fokus membangun aplikasi. Karena aplikasi dibangun sebagai function cloud yang independen, satu function dapat diperbarui tanpa mengganggu yang lain atau keseluruhan aplikasi.
Skalabilitas yang lebih baik
Ini salah satu manfaat terpenting platform serverless dan alasan popularitasnya di kalangan organisasi kecil dan startup. Platform serverless memudahkan pengembang untuk meningkatkan skala operasional secara otomatis saat permintaan naik. Untuk function yang mengalami fluktuasi permintaan, platform serverless akan menyesuaikan skala dengan menambah atau mengurangi alokasi sumber daya, sehingga memastikan sumber daya komputasi dioptimalkan.
Waktu ke pasar lebih cepat
Dengan aplikasi serverless, Anda dapat merilis aplikasi dengan cepat dan segera mendapatkan umpan balik pengguna. Ini penting bagi startup karena mengurangi waktu dan tenaga yang dibutuhkan untuk membangun aplikasi.
Keandalan
Berbeda dengan aplikasi yang di-host pada server khusus, aplikasi serverless dapat dijalankan dari mana saja. Ini meningkatkan kinerja aplikasi dan mengurangi latensi dibanding komputasi cloud tradisional.
Arsitektur Serverless dan Cara Kerjanya
Arsitektur serverless adalah cara membangun aplikasi tanpa memasang dan mengelola infrastruktur yang meng-host aplikasi. Pengembang dapat membangun aplikasi serverless menggunakan salah satu dari dua model serverless: menggunakan Backend as a Service (BaaS) atau Function as a Service (FaaS).
- Backend as a Service (BaaS): Model serverless ini biasanya digunakan saat membangun backend aplikasi web dan seluler. Pengembang tidak perlu menulis kode fitur backend seperti basis data, autentikasi pengguna, penyimpanan, dan lainnya. Ini mempercepat pengembangan karena pengembang terutama fokus pada frontend aplikasi. Contoh penyedia BaaS adalah Firebase, SupaBase, dan AWS Amplify.
- Function as a Service (FaaS): Dalam FaaS, pengembang menulis kode untuk dieksekusi platform tanpa perlu mengelola sumber daya komputasi dan penskalaan. Ini memungkinkan eksekusi function sebagai respons terhadap peristiwa yang dipicu. Contoh penyedia FaaS adalah AWS Lambda, Azure Cloud Functions, dan Google Cloud Functions.

Arsitektur cloud serverless FaaS dan BaaS. Sumber: Journal of Cloud Computing
Tujuan utama arsitektur serverless adalah mengabstraksikan manajemen server dari pengembang. Berikut gambaran cara platform serverless beroperasi dalam infrastrukturnya.
- Pembuatan Function: Aplikasi yang dibangun dengan arsitektur serverless memiliki kode yang ditulis menjadi subbagian, di mana setiap bagian adalah function individual yang independen dan ditujukan untuk menyelesaikan tugas spesifik.
- Pengembangan Function: Function-function ini dikemas dan dideploy ke platform serverless seperti AWS Lambda, Azure Cloud Functions, atau Google Cloud Functions.
- Eksekusi Berbasis Peristiwa: Function-function ini dipanggil sebagai respons terhadap peristiwa atau pemicu tertentu. Pemicu ini bisa berupa perubahan basis data, permintaan HTTP, atau yang lain.
- Auto-Scaling: Platform serverless menangani penggunaan sumber daya oleh peristiwa saat beban kerja naik atau turun. Misalnya, server mengalokasikan lebih banyak sumber daya ketika function tertentu menerima trafik tinggi.
- Kontainer Transien: Pemicu peristiwa membuat kontainer yang memungkinkan function yang dieksekusi mengakses sumber daya yang dibutuhkan. Setelah tugas selesai, kontainer ini dihancurkan.
- Penagihan: Penagihan dilakukan berdasarkan jumlah waktu eksekusi dan sumber daya komputasi yang digunakan.
- Statelessness: Function serverless saat dieksekusi tidak menyimpan informasi. Informasi yang diperlukan dalam suatu invocation disimpan di basis data atau secara eksternal.
- Log dan Pemantauan: Platform serverless menyediakan alat logging dan pemantauan untuk melacak kinerja aplikasi dan masalah pada function.
Mungkin muncul pertanyaan: Bukankah arsitektur serverless sama dengan arsitektur kontainer karena keduanya mengabstraksikan server dari pengembang? Memang demikian, tetapi berbeda dengan function serverless yang sepenuhnya mengabstraksikan server saat membangun dan merilis aplikasi, pada kontainer ketika aplikasi mengalami trafik tinggi, Anda perlu men-skala kontainer menggunakan alat seperti Kubernetes. Ini bertentangan dengan tujuan FaaS, di mana semua tindakan terkait server ditangani secara otomatis oleh platform serverless.
Dalam arsitektur kontainer, Anda bisa memiliki instance kontainer yang berjalan lama sehingga menimbulkan biaya, berbeda dengan function serverless di mana penagihan dilakukan berdasarkan lamanya waktu function berjalan. Untuk aplikasi kecil, menggunakan arsitektur serverless memudahkan pemisahan ke bagian-bagian yang dapat dijalankan platform serverless sebagai function independen.
Platform Komputasi Serverless
Sebelum hadirnya Google App Engine pada 2008, Zimki menawarkan platform eksekusi kode pertama dengan model “bayar sesuai pakai”, namun kemudian ditutup. Pada tahap awal, Google App Engine hanya mendukung Python dan menampilkan penagihan terukur untuk aplikasi, salah satunya SnapChat. Sekitar 2010, platform lain bernama PiCloud juga menyediakan dukungan FaaS untuk aplikasi Python.
Pada 2014, AWS memopulerkan model serverless dengan merilis alat seperti AWS Serverless Application Model (AWS SAM) dan Amazon CloudWatch. Google kemudian merilis penawaran serverless kedua mereka, Google Cloud Functions, bersama Azure Functions pada 2016. Sejak itu berbagai platform serverless diluncurkan seperti Function Compute oleh Alibaba Cloud dan IBM Cloud Functions oleh IBM Cloud.
Untuk menghilangkan kebutuhan akan basis data virtual atau fisik, basis data serverless juga dikembangkan. AWS menawarkan Amazon Aurora, versi serverless berbasis MySQL dan PostgreSQL. Azure menawarkan Azure Data Lake, dan Google menyediakan Firestore.

Platform cloud serverless. Sumber: Network Interview
Aplikasi Praktis dan Use Case
Situs web dan API
Komputasi serverless digunakan untuk membangun aplikasi situs web dan REST API. Menariknya, aplikasi yang dibangun dengan infrastruktur serverless melakukan skala otomatis berdasarkan permintaan pengguna, sehingga meningkatkan pengalaman pengguna.
Pemrosesan media
Arsitektur serverless memudahkan penanganan pemrosesan media. Pengguna dapat mengunggah konten media dari perangkat dan ukuran yang beragam, dan platform memprosesnya dengan sebuah function yang memenuhi kebutuhan setiap pengguna tanpa menurunkan kinerja aplikasi. Misalnya, pengguna dapat mengunggah gambar melalui bucket S3 yang memicu function AWS Lambda untuk menambahkan watermark atau membuat thumbnail pada gambar.
Chatbot
Pengembang dapat menerapkan chatbot untuk merespons pertanyaan pelanggan menggunakan arsitektur serverless dan hanya membayar sumber daya yang digunakan Chatbot. Misalnya, Slack menggunakan arsitektur serverless untuk menangani beragam permintaan bot guna menghindari bandwidth yang kurang termanfaatkan karena fluktuasi kebutuhan pelanggan setiap hari.
Webhook
Anda dapat menggunakan platform serverless untuk berinteraksi dengan vendor SaaS melalui endpoint HTTP webhook, yang menerima notifikasi dan menjalankan tugas. Ini menawarkan perawatan minimal, biaya rendah, dan penskalaan otomatis untuk webhook yang dibangun.
IoT
Coca-Cola menggunakan arsitektur serverless pada mesin penjual otomatis mereka Freestyle untuk memungkinkan pelanggan memesan, membayar, dan menerima notifikasi pembayaran untuk minuman mereka. Coca-Cola menyatakan mereka mengeluarkan sekitar $13.000/tahun untuk mengoperasikan mesin penjual, yang turun menjadi $4.500/tahun setelah menerapkan arsitektur serverless pada mesin tersebut.
Pemrosesan data
Major League Baseball Advanced Media membangun produk mereka Statcast dengan arsitektur serverless untuk menyediakan metrik olahraga yang akurat dan real-time kepada pengguna. Mereka menggunakan komputasi serverless untuk memproses data dan memberi wawasan tentang pertandingan bisbol.
Aplikasi berbasis peristiwa
Arsitektur serverless digunakan untuk aplikasi berbasis peristiwa, sehingga ketika sebuah peristiwa atau status berubah, hal itu memicu sebuah layanan. Seseorang dapat menggunakan platform serverless untuk memantau perubahan pada basis data dan membandingkannya dengan standar kualitas.
Serverless Edge Computing
Karena data harus menempuh jarak yang jauh, aplikasi membutuhkan waktu untuk memproses permintaan dan menyajikan konten dari server terpusat, yang menimbulkan latensi dan kemacetan.
Serverless edge computing mengatasi hal ini dengan mendistribusikan sumber daya komputasi ke banyak lokasi untuk mengurangi beban pada server pusat. Serverless edge computing menempatkan sumber daya komputasi yang menjalankan function serverless lebih dekat ke pengguna akhir (edge). Ini memungkinkan aplikasi serverless beroperasi di lebih banyak perangkat, mengurangi kemacetan, dan menurunkan latensi.
Dalam serverless edge computing, infrastruktur didedikasikan untuk setiap perangkat, memungkinkannya melakukan tugas kompleks tanpa harus mengirim data kembali ke lokasi pusat untuk diproses. Berikut beberapa use case yang mengoptimalkan pengalaman pengguna menggunakan function serverless di edge:
- Pengalaman yang Dipersonalisasi: Dengan function serverless di edge, pengguna dapat mempersonalisasi konten berdasarkan preferensi, lokasi, dan jenis perangkat.
- Streaming Video dan Gim: Memproses permintaan dekat dengan pengguna mengurangi latensi dan buffering saat streaming video atau bermain gim daring.
- Keamanan dan Autentikasi: Dengan mendistribusikan beban kerja ke berbagai lokasi edge, trafik berbahaya diperiksa dan difilter sebelum mencapai infrastruktur pusat.
- Perangkat IoT: Serverless edge computing memudahkan perangkat IoT untuk bekerja efisien dengan memastikan infrastruktur yang menjalankan perangkat berada dekat dengan pengguna.
Tantangan dan Pertimbangan
Terlepas dari berbagai manfaat komputasi serverless, terdapat beberapa kelemahan berikut.
- Vendor Lock-in: Sebagian besar penyedia cloud menawarkan beragam layanan yang terintegrasi baik dengan aplikasi serverless. Meskipun memungkinkan menggunakan layanan vendor lain dalam aplikasi server Anda, layanan yang disediakan satu penyedia biasanya lebih mudah diintegrasikan.
- Kontrol yang Lebih Sedikit: Masalah lain adalah kurangnya kontrol atas server. Jika terjadi masalah pada server, seperti gangguan atau masalah perangkat keras, Anda tidak dapat memperbaikinya dan harus menunggu penyedia cloud menanganinya.
- Cold Start: Cold start terjadi saat function yang lama tidak aktif dipanggil dan membutuhkan beberapa detik untuk dieksekusi. Ini dapat menimbulkan latensi yang memengaruhi kinerja aplikasi dan pengalaman pengguna.
- Keamanan: Dengan mempercayakan data Anda kepada pihak ketiga dan berbagi server dengan pengguna lain, Anda berisiko mengekspos aplikasi dan data pengguna jika server tidak dikonfigurasi dengan benar.
- Kompleksitas Debugging: Sulit bagi pengembang untuk mereplikasi lingkungan produksi secara lokal karena karakteristik aplikasi serverless, sehingga menyulitkan pengujian kode secara lokal. Uji integrasi yang menguji interaksi antara kode frontend dan backend juga sulit dilakukan dalam lingkungan serverless.
Kesimpulan
Bagi perusahaan yang ingin membangun aplikasi ringan, komputasi serverless adalah pilihan ke depan. Untuk aplikasi yang terdiri dari banyak layanan dengan interaksi kompleks, disarankan infrastruktur hibrida yang terdiri dari mesin virtual untuk proses besar; dalam kasus ini, kontainer serverless digunakan hanya untuk tugas singkat. Function serverless di edge juga dapat dipertimbangkan karena meminimalkan latensi dengan memproses data secara lokal tanpa terlalu membebani server pusat.
Perlu diingat bahwa berbagai kemajuan dan pengembangan masih dilakukan untuk memperluas kapabilitas komputasi serverless. Misalnya, pendekatan multi-cloud dapat digunakan untuk membangun aplikasi serverless, di mana seseorang dapat membangun aplikasi serverless menggunakan layanan dari lebih dari satu penyedia cloud. Pengembangan juga dilakukan untuk memastikan zero cold start pada function serverless, seperti diimplementasikan pada Cloudflare Workers.
Terima kasih sudah menyimak. Untuk mempelajari lebih lanjut tentang komputasi serverless dan mengembangkan keterampilan Anda di bidang ini, lihat sumber daya DataCamp berikut:
- AWS Cloud Technology and Services: Pelajari teknologi dan layanan cloud AWS, termasuk opsi serverless.
- Azure Architecture and Services: Pahami arsitektur dan layanan Azure, termasuk fitur serverless-nya.
- Streaming Data with AWS Kinesis and Lambda: Pelajari AWS Kinesis dan Lambda untuk streaming dan pemrosesan data real-time.
Untuk bacaan singkat, lihat posting blog kami untuk ide proyek untuk semua tingkat kemampuan.
- Top 13 Hands-On AWS Projects: From Beginner to Pro: Jelajahi proyek AWS praktis untuk meningkatkan keterampilan komputasi serverless Anda.
Instruktur sains data berpengalaman dan Biostatistikawan dengan keahlian dalam Python, R, dan machine learning.
Pertanyaan yang Sering Diajukan
Apa itu komputasi serverless?
Komputasi serverless adalah model komputasi cloud di mana penyedia cloud mengelola infrastruktur, secara otomatis mengalokasikan sumber daya saat aplikasi melakukan skala. Pengembang dapat fokus membangun dan menjalankan aplikasi tanpa khawatir memelihara server.
Bagaimana komputasi serverless berbeda dari komputasi cloud tradisional?
Berbeda dengan komputasi cloud tradisional, komputasi serverless menawarkan penskalaan dinamis, penagihan bayar sesuai pakai, dan mengabstraksikan manajemen infrastruktur dari bisnis.
Apa saja manfaat utama komputasi serverless?
Manfaat utama mencakup efisiensi biaya, pengurangan kompleksitas operasional, peningkatan skalabilitas, waktu ke pasar yang lebih cepat, dan keandalan yang meningkat.
Apa saja use case umum untuk komputasi serverless?
Komputasi serverless digunakan untuk membangun situs web dan API, pemrosesan media, chatbot, webhook, aplikasi IoT, pemrosesan data, dan aplikasi berbasis peristiwa.
Tantangan apa yang perlu dipertimbangkan saat mengadopsi komputasi serverless?
Beberapa tantangan meliputi ketergantungan pada vendor (vendor lock-in), kontrol yang lebih sedikit atas infrastruktur dasar, cold start, potensi masalah keamanan akibat berbagi sumber daya, dan kompleksitas debugging karena sifat serverless yang terdistribusi.

