Managed Compute #
Ada jurang yang cukup besar antara mengelola VM sendiri (maksimum kontrol, maksimum tanggung jawab) dengan serverless (nol kontrol, nol tanggung jawab infrastruktur). Di antara keduanya ada spektrum managed compute — layanan yang mengabstraksi sebagian atau seluruh infrastruktur di bawah container atau fungsi kamu, tanpa perlu mengelola cluster Kubernetes sendiri. Managed compute menjawab pertanyaan: “bagaimana menjalankan container di produksi tanpa tim ops yang besar?”
Spektrum Abstraksi Compute #
Spektrum dari kontrol penuh ke abstraksi penuh:
Bare Metal
→ Kelola hardware fisik sendiri
→ Kontrol total, tanggung jawab total
↓
Virtual Machine (IaaS)
→ Kelola OS, runtime, dan seterusnya
→ Hypervisor dikelola provider
↓
Self-managed Kubernetes
→ Kelola control plane dan worker nodes
→ Orkestrasi container di tangan kamu
↓
Managed Kubernetes (EKS, GKE, AKS)
→ Control plane dikelola provider
→ Kamu kelola worker nodes dan workload
↓
Managed Container Service (ECS, Cloud Run, Container Apps)
→ Tidak perlu tahu tentang cluster atau nodes
→ Push container → platform jalankan
↓
Serverless / FaaS
→ Tidak ada konsep server sama sekali
→ Push fungsi → platform jalankan saat ada event
Makin ke bawah: lebih sedikit yang dikelola, lebih sedikit kontrol
Makin ke atas: lebih banyak yang dikelola, lebih banyak kontrol
Managed Container Service — Deploy Tanpa Cluster #
Managed container service adalah kategori di mana kamu mendeploy container langsung tanpa perlu mengelola cluster Kubernetes atau bahkan worker nodes. Platform yang menangani semua infrastruktur di bawahnya.
Alur Deploy di Managed Container Service:
1. Build container image
docker build -t myapp:v1.0 .
2. Push ke registry
docker push registry/myapp:v1.0
3. Define service (CPU, RAM, port, scaling policy)
{
"image": "registry/myapp:v1.0",
"cpu": "1",
"memory": "2GB",
"port": 8080,
"min_instances": 1,
"max_instances": 10,
"concurrency": 100
}
4. Deploy
→ Platform otomatis provisioning compute
→ Container berjalan, endpoint tersedia
→ Auto-scaling berdasarkan trafik
Kamu tidak perlu tahu:
✓ Di server fisik mana container berjalan
✓ Berapa node yang ada di "cluster"
✓ Bagaimana load balancing dikonfigurasi
✓ Bagaimana health check dan restart bekerja
Perbandingan Managed Kubernetes vs Managed Container Service #
Managed Kubernetes Managed Container Service
────────────────────────────────────────────────────────────────────
Yang kamu kelola Worker nodes + Hanya container image
workload dan konfigurasi service
Kontrol Tinggi (bisa custom Terbatas (hanya yang
networking, storage, platform ekspos)
scheduling, dll)
Kompleksitas Signifikan Rendah
Portabilitas Tinggi (Kubernetes Sedang-rendah
standar industri) (lebih provider-specific)
Cocok untuk Workload kompleks, Microservices sederhana,
custom requirements, startup yang ingin cepat
tim yang punya deploy tanpa ops burden
expertise K8s
Biaya Bayar nodes + Bayar compute yang
managed control plane digunakan saja (bisa
scale ke nol)
Scale to Zero — Keunggulan Managed Container #
Salah satu fitur paling menarik dari beberapa managed container service adalah kemampuan scale to zero: ketika tidak ada trafik, instance turun ke nol dan tidak ada biaya compute yang berjalan.
Scale to Zero:
Trafik ada → container berjalan (bayar)
Tidak ada trafik → container scale ke nol (tidak bayar compute)
Trafik datang lagi → cold start, lalu berjalan (bayar lagi)
Perbedaan dengan VM biasa:
VM running 24/7: bayar 720 jam/bulan
Managed container
dengan scale-to-zero: bayar hanya jam saat ada trafik
Skenario ideal:
✓ Internal tools yang dipakai jam kerja saja
✓ API staging/preview environment
✓ Microservice yang dipanggil tidak menentu
Trade-off:
✗ Cold start — request pertama setelah idle sedikit lambat
(lebih cepat dari FaaS, lebih lambat dari container yang
selalu warm)
✓ Bisa set minimum instances = 1 untuk hindari cold start,
dengan biaya minimal
Managed Compute untuk Batch dan Job Processing #
Selain service yang selalu berjalan (long-running), managed compute juga mencakup layanan untuk pekerjaan yang bersifat sementara — jalankan, selesaikan, berhenti.
Batch Job dengan Managed Compute:
Tanpa managed batch:
Buat VM → install environment → jalankan job →
tunggu selesai → terminate VM
(banyak overhead manual)
Dengan managed batch service:
Submit job (container image + perintah + resource requirement)
│
▼
Platform otomatis:
→ Provision compute sesuai kebutuhan job
→ Jalankan container hingga selesai
→ Terminate compute setelah job selesai
→ Laporan status dan log tersedia
Cocok untuk:
✓ Data processing yang tidak real-time
✓ ML training job
✓ Video transcoding
✓ Report generation harian/mingguan
✓ ETL pipeline
Kapan Managed Compute Paling Memberikan Nilai #
Managed compute tepat digunakan jika:
✓ Tim tidak punya kapasitas untuk kelola Kubernetes cluster
→ Startup, tim kecil, atau tim yang fokus ke product
✓ Workload yang bervariasi dan butuh scale to zero
→ Bayar hanya saat dipakai, tidak ada idle cost
✓ Deployment yang sederhana dan cepat
→ Push container, siap serving trafik dalam menit
✓ Microservices individual yang tidak butuh custom networking
→ Setiap service di-deploy sebagai managed service terpisah
Pertimbangkan Kubernetes jika:
✓ Butuh kontrol mendalam atas networking (service mesh, custom ingress)
✓ Workload yang sangat beragam dengan kebutuhan spesifik per workload
✓ Tim sudah punya expertise Kubernetes
✓ Multi-cloud portabilitas adalah prioritas tinggi
✓ Stateful workload yang butuh persistent volume management khusus
Ringkasan #
- Managed compute adalah spektrum antara VM dan serverless — kamu deploy container tanpa mengelola cluster, platform yang mengurus infrastruktur di bawahnya.
- Managed container service vs managed Kubernetes — yang pertama untuk kesederhanaan dan kecepatan, yang kedua untuk kontrol dan fleksibilitas tinggi.
- Scale to zero menghilangkan biaya idle — cocok untuk workload yang tidak selalu aktif, tapi perlu dipertimbangkan trade-off cold start.
- Managed batch service untuk job sementara — submit job sebagai container, platform provision dan terminate compute secara otomatis.
- Nilai terbesar managed compute: tim kecil bisa jalankan workload production — tanpa overhead operasional yang biasanya butuh tim ops dedicated.
- Portabilitas lebih rendah dari Kubernetes — managed container service lebih provider-specific; pertimbangkan ini jika portabilitas adalah kebutuhan utama.