这是indexloc提供的服务,不要输入任何密码

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.

Komputasi serverless, meskipun namanya demikian, tetap menggunakan server. Komputasi serverless menyederhanakan pengembangan aplikasi dengan mengabstraksi tugas infrastruktur rutin. Artinya, Anda tidak melihat, mengonfigurasi, mengelola, atau menskalakan mesin yang mendasari aplikasi Anda. Pada dasarnya, Anda membayar layanan server, bukan server itu sendiri.

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

Memahami cara Google Cloud membuat komputasi serverless berfungsi untuk Anda

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. 

Memahami 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 versus 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.

Mengatasi tantangan bisnis Anda dengan Google Cloud

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

Perbandingan model cloud computing

Definisi kunci:

  • Beban administratif: Tingkat upaya yang diperlukan untuk mengelola dan memelihara infrastruktur yang mendasarinya
  • Model biaya: Metode yang digunakan untuk menghitung dan menagih konsumsi resource
  • Persyaratan pemeliharaan: Jumlah pemeliharaan, patching, dan update berkelanjutan yang diperlukan
  • Skalabilitas: Kemampuan untuk menyesuaikan resource secara otomatis sebagai respons terhadap perkembangan permintaan
  • Statelessness: Apakah aplikasi menyimpan data klien dari sesi ke sesi

Serverless

  • Beban administratif: Minimal
  • Model biaya: Bayar per penggunaan
  • Persyaratan pemeliharaan: Tidak ada
  • Skalabilitas: Otomatis dan instan
  • Statelessness: Biasanya stateless

PaaS

  • Beban administratif: Sedang
  • Model biaya: Bayar per instance
  • Persyaratan pemeliharaan: Rendah
  • Skalabilitas: Penskalaan otomatis atau manual
  • Statelessness: Dapat berupa stateful atau stateless

Container

  • Beban administratif: Sedang hingga Tinggi
  • Model biaya: Bayar per container
  • Persyaratan pemeliharaan: Sedang
  • Skalabilitas: Penskalaan otomatis atau manual
  • Statelessness: Dapat berupa stateful atau stateless

VM

  • Beban administratif: Tinggi
  • Model biaya: Bayar per VM
  • Persyaratan pemeliharaan: Tinggi
  • Skalabilitas: Penskalaan otomatis atau manual
  • Statelessness: Dapat berupa stateful atau stateless

Jenis 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. 

Kasus penggunaan komputasi serverless

Beberapa contoh komputasi serverless yang berkembang dan yang paling umum meliputi:

Integrasi pihak ketiga dan API

  • Kasus penggunaan: Menyinkronkan prospek/pelanggan dengan lancar di antara berbagai aplikasi bisnis (Misalnya, CRM ke otomatisasi pemasaran)
  • Solusi serverless: Cloud Run Functions yang dipicu HTTP menerima webhook dari sistem sumber (Misalnya, Salesforce), mentransformasi data, dan memanggil API sistem tujuan (Misalnya, HubSpot), yang sering kali menggunakan Secret Manager untuk kredensial
  • Produk serverless Google Cloud: Cloud Run Functions dan Secret Manager

Tindakan terjadwal dan berbasis pemicu

  • Kasus penggunaan: Mengotomatiskan pembuatan dan distribusi laporan rutin
  • Solusi serverless: Tugas Cloud Scheduler memicu Cloud Run Functions melalui Pub/Sub setiap hari. Fungsi tersebut mengkueri data warehouse (Misalnya, BigQuery), memproses data menjadi laporan, dan mengirimkannya melalui API email
  • Produk serverless Google Cloud: Cloud Scheduler, Pub/Sub, Cloud Run Functions, dan BigQuery

Otomatisasi proses IT

  • Kasus penggunaan: Menghemat biaya cloud dengan mengidentifikasi dan mengelola resource komputasi nonaktif secara otomatis
  • Solusi serverless: Tugas Cloud Scheduler setiap malam memicu Cloud Run Functions melalui Pub/Sub. Fungsi ini menggunakan Compute Engine API dan Cloud Monitoring untuk mengidentifikasi instance nonaktif dan secara otomatis menghentikan atau menghapusnya, serta mencatat tindakan ke Cloud Logging
  • Produk serverless Google Cloud: Cloud Scheduler, Pub/Sub, Cloud Run Functions, Cloud Monitoring, dan Cloud Logging

Pemrosesan real-time dan asinkron

  • Kasus penggunaan: Memproses dan memperkaya data streaming bervolume tinggi (Misalnya, aktivitas pengguna) untuk mendapatkan insight dan tindakan langsung
  • Solusi serverless: Peristiwa clickstream pengguna di-streaming ke Pub/Sub; Cloud Run Functions (atau layanan Cloud Run) menggunakan peristiwa tersebut, melengkapinya dengan data dari Firestore, lalu memublikasikan data yang dilengkapi ke topik Pub/Sub lain untuk analisis real-time di BigQuery atau rekomendasi yang dipersonalisasi
  • Produk serverless Google Cloud: Pub/Sub, Cloud Run Functions, Cloud Run, Firestore, dan BigQuery

Alur kerja CI/CD dan DevOps

  • Kasus penggunaan: Mengotomatiskan build, pengujian, dan deployment microservice saat ada perubahan kode
  • Solusi serverless: Pemicu Cloud Build memantau repositori Git (Misalnya, Cloud Source Repositories); setelah commit kode, Cloud Build menjalankan pengujian, membangun image container ke Artifact Registry, dan men-deploy versi baru ke Cloud Run secara otomatis
  • Produk serverless Google Cloud: Cloud Build, Cloud Run, Artifact Registry, dan Cloud Source Repositories

Pemrosesan gambar/video

  • Kasus penggunaan: Membuat varian gambar yang dioptimalkan (misalnya, thumbnail, dengan format yang berbeda) secara otomatis saat diupload
  • Solusi serverless: Cloud Run Functions diaktifkan saat gambar baru diupload ke bucket Cloud Storage. Fungsi ini memproses gambar (mengubah ukuran, konversi format), menyimpan kembali versi baru ke Cloud Storage, dan mengupdate metadata di Firestore
  • Produk serverless Google Cloud: Cloud Storage, Cloud Run Functions, dan Firestore

Aplikasi AI dan agen AI

  • Kasus penggunaan: Melakukan inferensi AI secara real-time menggunakan LLM seperti Llama 3.1, Gemma 2, Mistral, dan lainnya
  • Solusi serverless: Cloud Run terintegrasi dengan model AI seperti Gemini API, endpoint Vertex AI, atau model yang dihosting di layanan Cloud Run yang mendukung GPU. Cloud Run juga dapat bertindak sebagai endpoint API yang skalabel dan menghosting agen AI
  • Produk serverless GCP: Cloud Run, Cloud Storage, Firestore

Keuntungan komputasi serverless

Produktivitas developer yang lebih optimal 

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

Komputasi serverless dapat membantu mengurangi hambatan definisi infrastruktur bagi tim DevOps dalam hal integrasi, pengujian, pengiriman, dan deployment. Tim DevOps kemudian dapat berfokus pada penulisan dan deployment kode langsung ke 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. 

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. 

  • Kesesuaian kasus penggunaan yang terbatas: Arsitektur serverless tidak selalu cocok untuk aplikasi dengan persyaratan tertentu, seperti proses yang berjalan lama atau kebutuhan latensi yang sangat rendah
  • Batasan performa: Fungsi serverless mungkin mengalami cold start (penundaan eksekusi awal) dan mungkin memiliki batasan waktu eksekusi dan memori
  • Ketergantungan pada vendor: Migrasi aplikasi serverless antar-penyedia cloud dapat menjadi hal yang rumit karena perbedaan API dan konfigurasi
  • Visibilitas server yang berkurang: Developer memiliki visibilitas terbatas ke infrastruktur yang mendasarinya, sehingga sulit untuk memecahkan masalah performa atau mengoptimalkan pemanfaatan resource
  • Startup lambat: Fungsi serverless terkadang mengalami "cold start" yang menyebabkan penundaan dalam memanggil fungsi, sehingga dapat memengaruhi latensi

Langkah selanjutnya

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