Apa itu komputasi serverless?

Komputasi serverless adalah model eksekusi cloud computing yang mengalokasikan resource komputer sesuai penggunaan. Dengan model serverless, developer dapat membangun dan menjalankan aplikasi tanpa harus mengelola server apa pun dan hanya membayar sesuai jumlah resource yang digunakan. Sebaliknya, penyedia layanan cloud bertanggung jawab untuk menyediakan, mengelola, dan menskalakan infrastruktur cloud yang menjalankan kode aplikasi.

Meskipun namanya mungkin menyesatkan, serverless tidak berarti "tidak ada server". Sebaliknya, aplikasi serverless memisahkan pekerjaan infrastruktur rutin yang terkait dengan pengembangan aplikasi. Anda tidak memiliki visibilitas ke dalam komputer yang menjalankan aplikasi Anda, tidak dapat mengonfigurasinya, dan tidak perlu mengelola atau menskalakannya. Dengan kata lain, Anda membayar layanan server, bukan server itu sendiri. 

Dari perspektif pengembangan, seolah-olah tidak ada server sama sekali—developer menulis kodenya, men-deploy-nya ke produksi, dan penyedia cloud akan menangani sisanya.

Bagaimana cara kerja komputasi serverless?

Dalam hal membangun aplikasi, developer biasanya memiliki sejumlah tugas pengelolaan server lain yang harus mereka lakukan untuk men-deploy kode, seperti menentukan resource untuk pemrosesan dan penyimpanan, patching, load balancing, dan banyak lagi. Semua item tambahan ini menyebabkan waktu penyediaan yang lebih lama dan overhead operasional tambahan yang pada akhirnya memperlambat tim pengembangan. 

Komputasi serverless berupaya memberikan pengalaman "serverless" yang tidak terlihat bagi developer, sehingga tidak perlu memikirkan server atau hal apa pun yang mungkin perlu dijalankan oleh aplikasi. Sebagai gantinya, penyedia layanan melakukan semua pekerjaan di balik layar untuk memastikan Anda memiliki resource untuk mengeksekusi kode dan memenuhi persyaratan tanpa dikenai biaya untuk kapasitas yang tidak memiliki aktivitas. 

Berikut adalah analogi sederhana untuk memudahkan Anda memahami cara kerja komputasi serverless

Anggaplah serverless seperti mengalirkan air ke rumah Anda. Anda bisa menggali sumur Anda sendiri, menguji kualitas air, serta memasang dan memelihara semua saluran air luar yang diperlukan untuk mengalirkan ke dalam rumah. Atau, Anda dapat terhubung ke sumber air utama kota Anda. Anda cukup memutar keran air dan mendapatkan air sebanyak yang Anda inginkan tepat saat Anda membutuhkannya, dan pemerintah kota akan mengirimkan tagihan bulanan untuk jumlah air yang Anda konsumsi. 

Demikian pula, penyedia cloud secara otomatis menjalankan resource infrastruktur dan lingkungan runtime yang diperlukan untuk mengeksekusi aplikasi serverless Anda dan secara otomatis menurunkan skala ke nol saat eksekusi selesai. Biasanya, Anda ditagih berdasarkan resource selama waktu eksekusi. Namun, hal ini dapat bervariasi tergantung pada layanan dan vendornya. 

Serverless vs. jenis cloud computing lainnya

Namun tunggu dulu, bukankah jenis cloud computing lainnya menyediakan resource sesuai permintaan dengan metode bayar sesuai penggunaan? Memang benar bahwa model layanan cloud seperti Infrastructure as a Service (IaaS) dan Platform as a Service (PaaS) juga menyediakan akses on-demand ke resource komputasi. 

Namun, infrastruktur cloud yang dialokasikan untuk Anda akan tetap aktif meskipun Anda tidak menggunakannya. Anda juga bertanggung jawab untuk meningkatkan kapasitas server atau mengonfigurasi aplikasi untuk meningkatkan atau mengurangi skala sebagai respons terhadap permintaan pengguna. 

Di sisi lain, arsitektur serverless merupakan arsitektur berbasis peristiwa. Pada model ini, penyedia hanya memberi Anda resource saat suatu peristiwa memicu kode Anda untuk berjalan dan akan diskalakan secara instan dan otomatis ke permintaan.

Contoh dan kasus penggunaan komputasi serverless

Dalam cloud computing serverless, umumnya ada dua jenis layanan: Function as a Service (FaaS) dan Backend as a Service (BaaS). 

FaaS menyediakan resource komputasi yang diperlukan untuk mengeksekusi logika aplikasi sebagai respons terhadap permintaan. Potongan-potongan logika (atau fungsi) ini dijalankan dalam container yang dikelola sepenuhnya oleh penyedia layanan cloud. Aplikasi serverless biasanya dipecah menjadi fungsi tunggal yang menjalankan satu tindakan sebagai respons terhadap suatu peristiwa. 

BaaS menyediakan seluruh fungsi backend aplikasi web atau seluler sebagai layanan, seperti layanan autentikasi, pengelolaan database, penyimpanan cloud, notifikasi push, dan hosting. BaaS juga meniadakan kebutuhan untuk mengelola server, container, atau virtual machine. 

Dalam pengembangan, istilah “serverless” biasanya digunakan untuk menggambarkan penawaran FaaS. Namun, penting untuk diperhatikan bahwa FaaS secara teknis merupakan subset dari teknologi serverless. Komputasi serverless mencakup semua jenis layanan di mana pengelolaan, konfigurasi, penskalaan, dan penagihan server diabstraksi dari pengguna akhir. Hal ini dapat mencakup database, penyimpanan, streaming peristiwa, pengiriman pesan, dan gateway API. 

Secara umum, komputasi serverless masih digunakan terutama untuk tugas sederhana dan berdurasi pendek. Beberapa contoh komputasi serverless yang paling umum antara lain: 

  • Berintegrasi dengan API dan layanan pihak ketiga
  • Menjalankan tugas terjadwal (misalnya logika bisnis, pencadangan, atau laporan harian) 
  • Otomatisasi proses IT seperti menghapus akses secara otomatis, memulai pemeriksaan keamanan kepatuhan, atau mengirim persetujuan
  • Pemrosesan data real-time untuk data terstruktur dan tidak terstruktur 
  • Mengotomatiskan pipeline continuous integration dan continuous delivery (CI/CD)
  • Backend REST API
  • Tindakan berbasis pemicu atau menjalankan tugas terjadwal (misalnya logika bisnis, pencadangan, atau laporan harian)
  • Pemrosesan asinkron
  • Notifikasi terjadwal atau real-time

Keuntungan komputasi serverless

Produktivitas developer yang lebih baik

Developer yang didukung serverless berfokus pada penulisan kode dan pengoptimalan logika bisnis, bukan berfokus pada penyediaan, pengelolaan, atau penskalaan infrastruktur. 

Skalabilitas siap pakai

Arsitektur serverless meningkatkan atau memperkecil skala secara inheren. Tidak seperti penskalaan otomatis di jenis cloud computing lain yang memerlukan aturan penyesuaian, penskalaan otomatis serverless bersifat instan dan dapat memperkecil skala ke nol. 

Harga yang fleksibel

Model harga serverless sering kali dikenai biaya berdasarkan penggunaan sebenarnya dan waktu yang diperlukan untuk menjalankan fungsi. Anda juga tidak akan dikenakan biaya untuk kapasitas yang tidak beraktivitas, sehingga membantu menurunkan biaya operasional yang terkait dengan menjalankan dan mengelola server Anda sendiri.

Deployment yang lebih cepat

Dengan serverless, tim DevOps tidak perlu menghabiskan waktu untuk menentukan infrastruktur yang diperlukan untuk melakukan integrasi, pengujian, pengiriman, atau deployment kode. Mereka cukup menulis dan men-deploy ke dalam produksi.

Gunakan bahasa apa pun

Lingkungan serverless mendukung bahasa atau framework apa pun, sehingga tim dapat melakukan pengembangan dalam bahasa atau dengan framework yang paling nyaman digunakan, seperti Go, Python, Java, Node.js, .NET, dan masih banyak lagi.

Kekurangan komputasi serverless

Salah satu kelemahan terbesar dari komputasi serverless adalah teknologinya relatif baru. Akibatnya, belum cocok untuk memenuhi semua kasus penggunaan yang potensial. 

Selain itu, serverless yang bersifat efemeral dan kemampuannya untuk memperkecil skala hingga nol membuatnya tidak cocok untuk jenis aplikasi tertentu. Layanan ini tidak dibuat untuk mengeksekusi kode dalam jangka waktu yang lama dan tidak selalu dapat melayani aplikasi dengan persyaratan latensi rendah yang ketat, seperti aplikasi jasa keuangan. 

Yang tidak kalah pentingnya, keuntungan yang dirasakan dari mempercayakan pengelolaan semua resource komputasi kepada penyedia pihak ketiga juga memiliki beberapa kelemahan. Meskipun menghemat waktu untuk fokus pada kode, bermigrasi ke penyedia cloud baru juga bisa menjadi sulit. Anda juga tidak dapat melihat lokasi atau cara layanan dijalankan, dan memiliki kontrol terbatas atas cara Anda melakukan penskalaan, jenis kode hardware yang dijalankan, dan situasi pemulihan dari bencana. 

Namun, ada banyak hal yang disukai terkait komputasi serverless, terutama bagi organisasi yang ingin membantu memberdayakan developer untuk bergerak lebih cepat dan mencari cara yang lebih sederhana dan hemat biaya untuk membangun aplikasi berbasis cloud. 

Jelas bahwa beberapa kelemahan yang ada saat ini akan teratasi seiring waktu karena komputasi serverless terus berkembang. Secara khusus, banyak hal yang sudah dilakukan pada implementasi open source serverless dan mencari cara untuk menjadikan layanan cloud lebih terbuka agar solusi bersifat portabel di berbagai platform dan lingkungan. 

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.
Hubungi spesialis penjualan Google Cloud untuk membahas tantangan unik Anda secara lebih mendetail.

Langkah selanjutnya

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

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Konsol
Google Cloud