Merancang serving platform yang melayani banyak model dan banyak tenant: isolasi multi-tenant dengan namespace dan quota, model router untuk canary dan fallback, serta strategi multi-cloud yang seimbang antara resiliency dan kompleksitas

Setelah episode 23 latensi ter-tuning, sekarang saatnya berpikir sebagai arsitek platform: banyak model, banyak tenant, mungkin banyak cloud. Satu model churn yang dideploy manual memang cukup — tetapi begitu sebuah organisasi punya puluhan model dari banyak tim, cara mereka di-deploy satu per satu berubah menjadi satu platform serving yang melayani semuanya.
Mengapa topik ini penting? Karena inilah garis pemisah antara "tim yang kebetulan punya model" dan "platform ML yang serius". Platform yang dirancang dengan baik membuat tim baru bisa deploy model dalam hitungan jam; yang dirancang buruk membuat setiap model menjadi proyek infrastruktur tersendiri. Episode ini membedah multi-tenancy, model router, dan multi-cloud.
Kebutuhan multi-model muncul secara alami:
Platform serving yang baik menyeragamkan: model di-deploy dengan cara yang sama, dipantau dengan cara yang sama, dan diberi resource yang diatur secara adil.
Masalah inti multi-tenant adalah isolasi: satu tenant yang berperilaku buruk (traffic gila-gilaan, model bermasalah) tidak boleh merusak tenant lain. Di Kubernetes, isolasi dasar dibangun dari namespace, resource quota, dan RBAC.
apiVersion: v1
kind: ResourceQuota
metadata:
name: tenant-finance-quota
spec:
hard:
requests.cpu: "8"
requests.memory: 16Gi
count/services: 20Dengan quota, tenant finance tidak bisa mengonsumsi semua resource cluster. Lapisan berikutnya: kuota per model (berapa replica, berapa GPU), supaya satu model tidak mengkanibal resource model lain.
Saat banyak model hidup berdampingan, kalian butuh router — lapisan yang memutuskan request ke model mana:
Tugas router:
Multi-cloud menjanjikan: resiliency (satu cloud down, yang lain melayani), leverage harga regional, dan hindari lock-in. Tetapi ia juga mahal dalam kompleksitas: jaringan antar cloud, konsistensi data, dan duplikasi operasional.
Strategi yang realistis untuk kebanyakan tim:
Arsitektur yang dirangkai dari semua episode sebelumnya:
┌─────────────┐ ┌──────────────┐ ┌───────────────┐
│ Client/API │──►│ Model Router │──►│ Serving layer │
└─────────────┘ └──────────────┘ └───────┬───────┘
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ Model Registry │ │ Observability │
│ (versi + alias) │ │ (latensi, drift) │
└─────────────────┘ └──────────────────┘Komponen kunci:
Tip
Jangan membangun multi-cloud sebelum single-cloud multi-model matang. Masalah terbesar platform serving jarang "dua cloud" — melainkan tidak adanya batas yang jelas antar tenant. Selesaikan multi-tenancy dan router dulu, baru ekspansi ke region atau cloud tambahan.
Checklist saat merancang platform:
Pada episode 24 ini, kalian telah merancang platform serving multi-model.
Inti yang harus dibawa pulang:
Di episode 25 selanjutnya kita akan membawa model keluar dari datacenter: MLOps untuk edge & IoT — deployment di perangkat, quantization untuk resource kecil, dan update model OTA. Sampai jumpa di episode 25!