Cloud Run #
Dalam ekosistem Google Cloud Platform (GCP), Cloud Run menempati posisi unik sebagai layanan serverless container. Ia menjembatani dunia containerization (Docker) dengan paradigma serverless yang meniadakan kebutuhan mengelola server, VM, atau cluster Kubernetes secara langsung.
Cloud Run sangat relevan untuk tim modern yang ingin:
- Fokus pada logic bisnis, bukan infrastruktur
- Mendapatkan auto-scaling hingga nol
- Menjalankan aplikasi berbasis HTTP dengan cepat dan efisien
Artikel ini membahas Cloud Run secara menyeluruh: dari konsep dasar, alasan menggunakan serverless, jenis Cloud Run, konfigurasi, observability, hingga pro–cons dan best practice.
Apa Itu Google Cloud Run? #
Google Cloud Run adalah layanan fully managed serverless untuk menjalankan container image yang menerima request berbasis HTTP/HTTPS.
Karakteristik utama Cloud Run:
- Menjalankan Docker container standar
- Tidak perlu mengelola server, VM, atau Kubernetes
- Auto-scale dari 0 hingga ribuan instance
- Billing berbasis request & waktu eksekusi aktual
Dengan Cloud Run, selama aplikasi Anda:
- Listen di satu port (default
8080) - Stateless (atau state eksternal)
Maka hampir semua bahasa & framework bisa dijalankan (Go, Node.js, Python, Java, Rust, PHP, dll).
Kenapa Cloud Run? #
Eliminasi Beban Infrastruktur #
Tidak ada:
- Provisioning VM
- Patch OS
- Upgrade cluster
- Capacity planning
Semua itu ditangani oleh GCP.
Skalabilitas Otomatis #
Cloud Run secara native mendukung:
- Scale out otomatis saat traffic naik
- Scale to zero saat idle
Ini sangat ideal untuk:
- API dengan traffic fluktuatif
- Webhook
- Background job berbasis HTTP
Cost-Efficient #
Billing Cloud Run berdasarkan:
- CPU-time
- Memory-time
- Jumlah request
Tidak ada biaya saat service tidak menerima request.
Fleksibilitas Container #
Berbeda dengan Cloud Functions yang opinionated, Cloud Run:
- Bebas struktur aplikasi
- Bebas runtime
- Bebas dependency sistem
Jenis-Jenis Cloud Run #
Cloud Run (Fully Managed) #
Ini adalah mode paling umum.
Ciri:
- Infrastruktur sepenuhnya dikelola Google
- Tidak perlu cluster GKE
- Scaling, networking, security otomatis
Cocok untuk:
- API
- Microservices
- Web backend
Cloud Run for Anthos / GKE (Cloud Run on GKE) #
Cloud Run dijalankan di atas cluster GKE.
Ciri:
- Kontrol lebih besar terhadap node & network
- Bisa berjalan di hybrid / on‑prem
- Tetap pakai API Cloud Run
Trade-off:
- Tidak sepenuhnya serverless
- Tetap perlu manage cluster
Arsitektur Dasar Cloud Run #
Secara konseptual:
- User mengirim HTTP request
- Cloud Run router menerima request
- Instance container dibuat (jika belum ada)
- Request diteruskan ke container
- Response dikembalikan ke user
- Instance akan di-scale down saat idle
Cloud Run bersifat request-driven, bukan process-driven.
Konfigurasi yang Bisa Diset di Cloud Run #
Resource Configuration #
- CPU (1, 2, 4)
- Memory (512MiB – 32GiB)
- CPU Always Allocated vs CPU only during request
Pengaruh langsung ke:
- Performance
- Cold start
- Cost
Concurrency #
Menentukan berapa request yang bisa ditangani satu instance sekaligus.
- Default: 80
- Bisa diset ke 1 untuk workload berat
Concurrency tinggi = lebih hemat, tapi perlu thread-safe.
Autoscaling #
- Min instances
- Max instances
Use case:
- Min instance > 0 untuk mengurangi cold start
- Max instance untuk mencegah spike tak terkendali
Environment Variables & Secrets #
- Env var biasa
- Integrasi Secret Manager
Best practice:
- Jangan hardcode credential
- Semua secret di Secret Manager
Networking & Access #
- Public (unauthenticated)
- Private (IAM-based)
- VPC Connector untuk akses internal
Deployment Configuration #
- Region
- Traffic splitting (blue-green / canary)
- Revision-based deployment
Apa Saja yang Bisa Dimonitor di Cloud Run? #
Cloud Run terintegrasi penuh dengan Google Cloud Observability.
Metrics #
- Request count
- Latency (p50, p95, p99)
- Error rate (4xx, 5xx)
- CPU & memory usage
- Instance count
Logging #
- Stdout / stderr otomatis masuk Cloud Logging
- Structured logging sangat dianjurkan
Tracing #
- Integrasi Cloud Trace
- Cocok untuk distributed tracing
Alerting #
Bisa membuat alert berbasis:
- Error rate
- Latency threshold
- Instance spike
Pros & Cons Cloud Run #
✅ Pros #
- Fully serverless
- Scale to zero
- Billing sangat granular
- Mendukung container standar
- Deployment cepat
- Integrasi native dengan GCP
❌ Cons #
- Cold start (terutama bahasa berat)
- Hanya mendukung HTTP-based workload
- Tidak cocok untuk long-running connection
- Vendor lock-in (meski container-based)
Kapan Cloud Run Tidak Tepat? #
Cloud Run bukan solusi universal.
Kurang cocok jika:
- Butuh websocket long-lived
- Butuh background job tanpa HTTP trigger
- Perlu kontrol OS/kernel
Alternatif:
- GKE
- Compute Engine
- Cloud Functions (untuk event-driven murni)
Best Practice #
Buat Aplikasi Stateless #
Gunakan:
- Cloud SQL
- Firestore
- Redis / Memorystore
Untuk state eksternal.
Optimalkan Cold Start #
- Gunakan base image ringan (distroless, alpine)
- Minimize dependency
- Set min instance jika perlu
Atur Concurrency dengan Bijak #
- CPU-bound → concurrency rendah
- I/O-bound → concurrency tinggi
Gunakan IAM, Bukan API Key #
- Service-to-service pakai IAM
- Lebih aman & terkontrol
Logging Terstruktur #
Gunakan JSON logging agar:
- Mudah di-query
- Mudah di-alert
Batasi Max Instance #
Untuk:
- Mencegah biaya tak terduga
- Melindungi dependency downstream
Penutup #
Google Cloud Run adalah salah satu implementasi serverless container paling matang saat ini. Ia menawarkan kombinasi ideal antara fleksibilitas container dan kesederhanaan serverless.
Jika Anda mengembangkan:
- API
- Microservices
- Web backend modern
Cloud Run adalah kandidat yang sangat kuat, baik untuk startup maupun enterprise.
Dengan pemahaman konfigurasi, monitoring, dan best practice yang tepat, Cloud Run bisa menjadi fondasi arsitektur cloud yang efisien, scalable, dan cost‑effective.