Google Cloud Run: Mengulas Kemudahan Deploy Aplikasi Stateless Tanpa Ribet Infrastruktur

Notification

×

Google Cloud Run: Mengulas Kemudahan Deploy Aplikasi Stateless Tanpa Ribet Infrastruktur

03/07/2025 | Juli 03, 2025 WIB Last Updated 2025-07-06T03:40:42Z

Infrastruktur,Cloud Computing,Google Cloud,Google Cloud Run,CI/CD,Arsitektur cloud-native,Serverless,AWS Lambda,Azure Container Apps,Open Container Initiative (OCI),Docker

Aplikasi Stateless dan Arsitektur Cloud-Native


Aplikasi stateless adalah aplikasi yang tidak menyimpan informasi sesi atau status pengguna antar permintaan.  Setiap permintaan diproses secara independen tanpa bergantung pada “memori” dari interaksi sebelumnya. 


Desain stateless populer di arsitektur cloud-native karena memberikan penskalalan horizontal yang mudah dan toleransi kegagalan yang lebih baik. 


Aplikasi stateless dapat direplikasi ke banyak instans untuk menangani lonjakan lalu lintas tanpa saling tergantung, sehingga memudahkan penyediaan sumber daya secara dinamis


Google Cloud Run dirancang untuk environment  yang memungkinkan untuk menjalankan image container stateless di lingkungan serverless yang dikelola penuh.


Google Cloud Run adalah layanan komputasi serverless yang sepenuhnya dikelola, sehingga pengembang bisa fokus menulis kode tanpa perlu mengatur infrastruktur. 


Dengan Cloud Run, Anda cukup menyediakan aplikasi dalam bentuk container atau image Docker yang mendengarkan permintaan HTTP(S) pada port tertentu. 


Seluruh infrastruktur (server, load balancer, sertifikat TLS) ditangani oleh GCP.  Hasilnya, setiap layanan Cloud Run secara otomatis mendapatkan endpoint HTTPS unik dengan sertifikat TLS yang dikelola oleh Google.



Kelebihan Utama Google Cloud Run dibanding Layanan Sejenis


Cloud Run fully-managed – Dimana Anda tidak perlu membuat atau mengelola cluster Kubernetes atau server khusus (Serverless).  Cukup kirim container (misal lewat gcloud run deploy) dan Cloud Run mengurus provisioning dan penskalaan instans.


Cloud Run menerima standard Open Container Initiative (OCI) yang artinya Anda bebas menggunakan bahasa atau framework apa saja (Node.js, Python, Go, dsb.) selama dikemas ke dalam image.  


Cloud Run dibangun di atas API Knative, menjadikannya open-source dan bebas vendor lock-in.   Aplikasi yang berjalan di Cloud Run mudah dipindahkan ke lingkungan lain (on-premises atau cloud lain) jika diperlukan.


Instans Cloud Run akan otomatis bertambah ketika menerima banyak permintaan, hingga ratusan atau ribuan instans secara paralel (Autoscaling Cepat).


Sebaliknya, bila tidak ada permintaan, semua instans akan dihapus sehingga biaya nol (Anda hanya bayar saat aplikasi berjalan). 


Skema penskalaan otomatis ini mendukung penskalaan menurun hingga nol instans (scale-to-zero) dalam hitungan detik.


Pembayaran di Cloud Run didasarkan pada sumber daya yang digunakan per-100ms dan jumlah permintaan (model biaya Per-Request), mirip biaya fungsi serverless.  


Dengan penskalaan ke-nol saat idle, biaya operasional bisa sangat efisien untuk beban kerja sporadis atau tidak selalu aktif. (Ada juga tier gratis cukup besar setiap bulan).


Cloud Run mendukung fitur traffic splitting sehingga Anda bisa melakukan canary deployment atau blue/green deployment


Misalnya, Anda bisa mengarahkan 10% trafik ke revisi baru layanan dan 90% ke versi lama, memantau performa, lalu menaikkan traffic ke versi baru.


Selain itu, Cloud Run menjamin redundansi (layanan tersedia di beberapa zona) sehingga tidak perlu konfigurasi tambahan untuk high availability.


Setiap layanan Cloud Run menyediakan endpoint HTTPS stabil.  Cloud Run mendukung protokol modern seperti HTTP/2, gRPC, bahkan WebSockets tanpa konfigurasi ekstra.


Integrasi dengan Google Cloud IAM memungkinkan pengaturan izin akses yang granular – misalnya membatasi hanya entitas terotentikasi atau IP tertentu yang bisa memanggil layanan.


Anda juga bisa menghubungkan layanan Cloud Run ke VPC internal atau layanan lain (Cloud SQL, Memorystore, dll.) dengan mudah.


Cloud Run terintegrasi dengan Stackdriver Logging & Monitoring. Log kontainer secara otomatis dikumpulkan di Cloud Logging, sedangkan metrik kinerja (CPU, memori, jumlah permintaan, latency) tersedia di Cloud Monitoring


Anda bisa men-setup alert pada metrik ini.  Setiap revisi layanan juga diasosiasikan dengan service account untuk memanggil API Google Cloud lainnya, sehingga otentikasi dan logging terpusat mudah dikonfigurasi.


Alur Umum Deployment di Cloud Run

Langkah standar untuk mendeploy aplikasi stateless ke Cloud Run adalah sebagai berikut:

  • Buat Aplikasi dan Container Image:  Tulis kode aplikasi Anda (misal aplikasi web berbasis Python/Flask, Node.js/Express, Go, dll.) dan sertakan Dockerfile atau gunakan buildpacks. Contohnya, Anda bisa membuat Dockerfile yang mengemas aplikasi ke container.
  • Build dan Push Image:  Bangun image dengan Docker atau gunakan Cloud Build. Misalnya, Cloud Build dapat otomatis membuat image dari kode, menyimpannya ke Artifact Registry (atau Container Registry), kemudian melanjutkan ke proses deploy.
  • Deploy ke Cloud Run:  Setelah image siap di registry GCP, jalankan gcloud run deploy NAMA_LAYANAN --image gcr.io/PROYEK/IMAGE:TAG --region REGION untuk mendeploy.  Cloud Run akan membuat revision baru dan secara otomatis mengalihkan 100% trafik ke versi tersebut. Anda juga bisa mendeploy langsung dari source dengan gcloud run deploy --source.  Secara otomatis membangun image dan deploy dalam satu langkah.
  • Konfigurasi Lanjutan (opsional): Atur lingkungan variabel, set IAM policy (misalnya agar hanya pengguna tertentu yang bisa memanggil), dan jika perlu set min-instances untuk menjaga beberapa instans tetap aktif (menghindari cold start).  Anda juga dapat menghubungkan Cloud Run ke VPC atau basis data internal melalui VPC Connector. Semua ini dapat dikelola melalui Cloud Console atau perintah gcloud run services update.



Dokumentasi Google Cloud menyediakan panduan lengkap dan contoh konfigurasi untuk setiap langkah di atas.  Dengan mengikuti praktik ini, tim pengembang dapat merilis layanan stateless secara cepat tanpa kompleksitas pengelolaan infrastruktur.



Fitur Utama Cloud Run


Auto-Scaling dan Skala Nol

Cloud Run otomatis menambah jumlah instans saat lalu lintas meningkat, dan menghapus instans saat trafik menurun.  Anda dapat menentukan batas maksimum instans jika perlu mengontrol biaya atau kapasitas sistem ke hulu.


Pengelolaan Revisi (Revision)

Setiap kali melakukan deploy, Cloud Run membuat revision baru layanan.  Dengan fitur traffic splitting,  Anda dapat mengalihkan persentase trafik ke revisi baru, melakukan rollback, atau menyeimbangkan beban antar versi tanpa downtime.


Integrasi IAM dan Keamanan 

Akses ke Cloud Run dapat diatur lewat Google Cloud IAM.  Anda bisa mengizinkan layanan hanya dapat diakses oleh pengguna/gudang tertentu atau via Identity-Aware Proxy.  


Selain itu, Cloud Run mendukung enkripsi otomatis, serta dapat dihubungkan ke layanan lain menggunakan Service Account yang ditentukan.


Logging dan Monitoring Bawaan

Semua log aplikasi diambil otomatis oleh Cloud Logging.  Jika aplikasi melempar error, Cloud Error Reporting akan mengagregasinya.  


Anda juga mendapatkan metrik kinerja real-time (latency, throughput, instans aktif, dsb.) di Cloud Monitoring, sehingga memudahkan observasi dan alert.


Dukungan Domain Kustom dan TLS 

Anda bisa memasangkan domain kustom ke layanan Cloud Run. Google Cloud akan secara otomatis mengeluarkan sertifikat SSL/TLS untuk domain tersebut. 


Dengan demikian, layanan Anda siap diakses di URL sendiri dengan HTTPS tanpa harus mengelola sertifikat secara manual.


Concurrency

Setiap instans Cloud Run dapat melayani beberapa permintaan sekaligus (default 80 permintaan paralel).  Hal ini meningkatkan efisiensi dan throughput aplikasi berbiaya per-instans.



Contoh Penggunaan dan Studi Kasus Aplikasi Stateless


Cloud Run cocok untuk berbagai skenario aplikasi stateless. Misalnya:

Aplikasi Web dan API Microservices

Sebuah layanan RESTful sederhana (contoh “Hello World” atau backend aplikasi mobile) dapat dihosting di Cloud Run.  Layanan ini akan menerima permintaan HTTPS dan merespons data JSON.  Saat banyak pengguna datang bersamaan, Cloud Run otomatis membuat lebih banyak instans untuk menjaga latensi tetap rendah.


Pemrosesan Event dan Batch 

Cloud Run dapat di-trigger oleh event Pub/Sub, Cloud Storage, atau Cloud Scheduler.  Misalnya, ketika file diunggah ke bucket, Cloud Run dapat menangani proses transformasi data lalu menyimpan hasilnya.  Atau, Anda dapat menggunakan Cloud Run jobs untuk pekerjaan batch berulang (misal mengirim email terjadwal, memproses antrian, dsb.).


Machine Learning Inference 

Model ML terlatih yang dikemas dalam container bisa dijalankan di Cloud Run untuk menyediakan endpoint inference. Saat permintaan inferensi datang (misal lewat gRPC), Cloud Run akan melakukan scaling dengan cepat sesuai kebutuhan pengguna.


Prototipe dan MVP

Banyak tim pemula memilih Cloud Run untuk proof-of-concept atau prototipe karena kemudahan deployment-nya. Tanpa menyiapkan server, mereka cukup push container dan langsung mendapatkan layanan yang dapat diakses publik dengan autoscaling.


Secara ringkas, Cloud Run memungkinkan pengembangan cloud-native yang cepat dimana tim fokus pada penulisan kode dan fungsionalitas aplikasi stateless, sementara Google mengurus infrastruktur, penskalaan, dan keamanan layanan.


Sumber: 

Dokumentasi resmi Google Cloud Run:


AWS Well-Architected Framework

.