Dalam dunia software engineering modern, perdebatan antara serverless dan container-based infrastructure (seperti Kubernetes, Docker Swarm, ECS, dll) tidak pernah berhenti.
Keduanya punya filosofi dan trade-off yang berbeda — dan keputusan untuk memilih salah satunya bisa menentukan arah arsitektur jangka panjang perusahaanmu.
Artikel ini akan membahas perbandingan keduanya tanpa bias, dengan perspektif teknis, bisnis, dan real-world use case seperti yang digunakan oleh perusahaan unicorn.
⚙️ Apa Itu Kubernetes (Container Orchestration)
Kubernetes, atau biasa disebut K8s, adalah sistem orchestrator yang mengatur deployment, scaling, dan manajemen container (misalnya dari Docker).
🧩 Filosofinya:
Jalankan apapun, di mana pun — tapi dengan kontrol penuh.
Kubernetes cocok untuk tim yang ingin mengelola sendiri infrastrukturnya, terutama saat aplikasi mulai memiliki:
Banyak microservice,
Dependensi antar service,
Traffic besar yang tidak bisa diprediksi,
Kebutuhan observability (metrics, tracing, logging).
⚙️ Contoh:
Backend e-commerce dengan 50+ microservice (cart, checkout, notification, payment).
Sistem AI/ML yang butuh node GPU.
Event-driven system (Kafka, Redis, RabbitMQ) yang butuh integrasi rumit.
☁️ Apa Itu Serverless
Serverless (seperti AWS Lambda, Cloudflare Workers, Vercel Edge Functions, dan Google Cloud Functions) berarti kamu tidak perlu memikirkan server sama sekali.
Kamu hanya menulis fungsi — dan cloud provider yang men-deploy, men-scale, dan menutupnya otomatis.
🧩 Filosofinya:
Jangan urus infrastruktur — fokus pada logika bisnis.
Serverless cocok untuk:
Fungsi stateless (tidak menyimpan sesi di RAM). Setiap permintaan ke serverless diperlakukan sebagai peristiwa yang benar-benar baru dan terisolasi. Jika sebuah serverless dipicu dua kali berturut-turut, kedua eksekusi tersebut tidak akan berbagi memori atau variabel lokal apa pun.
API ringan.
Event-driven workflow (webhook, cron job, form submission).
Edge computation dekat pengguna.
⚔️ Perbandingan Langsung
Aspek | Kubernetes (Container) | Serverless |
|---|---|---|
Arsitektur | Container orchestration | Function-as-a-Service |
Control Level | Sangat tinggi (full OS/network) | Terbatas (sandboxed) |
Statefulness | Bisa stateful & stateless | Stateless saja |
Startup Time | Detik–menit | Milidetik |
Scaling | Manual + autoscale (HPA, VPA) | Otomatis sepenuhnya |
Cost Model | Bayar per node (24/7) | Bayar per eksekusi |
Complexity | Butuh DevOps & CI/CD | Sangat mudah di-deploy |
Latency Konsisten | ✅ Stabil | ⚠️ Cold start |
Vendor Lock-in | Rendah (portable) | Tinggi (spesifik provider) |
Use Case Ideal | Sistem kompleks, multi-service | API ringan, event kecil |
Contoh Tools | K8s, Docker, ECS, Nomad | Cloudflare Worker, AWS Lambda |
💬 Analogi Cepat
Analogi | Kubernetes | Serverless |
|---|---|---|
🍽️ Restoran | Kamu punya dapur sendiri, kontrol penuh | Pesan makanan lewat GoFood |
🚗 Transportasi | Punya mobil pribadi, bisa ke mana saja | Panggil ojek hanya saat perlu |
🏗️ Arsitektur | Build custom rumah besar | Sewa kamar sesuai kebutuhan |
🧠 Realita di Dunia Unicorn
Hampir semua perusahaan besar seperti Gojek, Tokopedia, Shopee, Grab, Traveloka menggunakan kombinasi keduanya.
Alasannya sederhana: mereka butuh keseimbangan antara kontrol dan efisiensi operasional.
⚙️ Biasanya seperti ini:
Layer | Platform | Alasan |
|---|---|---|
Frontend Edge | Serverless (Cloudflare Worker, Vercel Edge) | Latency rendah, caching cepat |
API Core | Kubernetes / Docker | Butuh state, integrasi antar sistem |
Payment Event | Serverless | Event-driven & asynchronous |
Background Job | Kubernetes (KEDA) | Load tinggi, long-running |
Data Pipeline | Kubernetes + Kafka | High throughput |
Monitoring | Kubernetes + Prometheus | Observability penuh |
💸 Biaya dan Skala
Skenario | Serverless Lebih Baik | Kubernetes Lebih Baik |
|---|---|---|
Proyek kecil atau prototipe | ✅ | ❌ |
Traffic tidak menentu | ✅ | ⚙️ Bisa, tapi perlu konfigurasi |
Traffic stabil & tinggi | ❌ Bisa jadi mahal | ✅ Lebih efisien |
Butuh koneksi long-lived (WebSocket, DB pooling) | ❌ | ✅ |
Ingin multi-cloud deployment | ⚠️ Sulit | ✅ Portable |
🧩 Kombinasi Ideal (Hybrid Architecture)
Kebanyakan arsitektur modern menggabungkan keduanya:
Client → Cloudflare Worker (Edge) → Kubernetes API → Database
Keuntungan:
Edge layer cepat & global (serverless)
Backend stabil & fleksibel (container)
Observability & deployment tetap manageable
🔍 Kesimpulan
Kebutuhan | Pilihan Tepat |
|---|---|
API ringan, latency rendah, tanpa ops | Serverless |
Sistem kompleks, banyak dependensi | Kubernetes / Container |
Butuh performa tinggi & kontrol penuh | Kubernetes |
Startup kecil atau MVP cepat | Serverless dulu |
Enterprise-scale product | Hybrid (K8s + Serverless) |
💬 Kesimpulan Akhir
Serverless membuat developer cepat bergerak,
tapi Kubernetes memberi kontrol dan stabilitas jangka panjang.
Unicorn modern tidak memilih salah satu — mereka menggabungkannya:
Serverless untuk kecepatan,
Kubernetes untuk kekuatan,
Cloud orchestration untuk otomatisasi.
🧠 “The future isn’t serverless or containerized — it’s both.”