Strategi Deployment
Cara kita men-deploy versi baru aplikasi sangat memengaruhi downtime, risiko, dan rollback speed.
1. Recreate (Big Bang)
Versi Lama: ████████████
↓ downtime
Versi Baru: ████████████
- Stop semua instance lama, start instance baru
- Ada downtime
- Simple, cocok untuk development/staging
2. Rolling Update
Instance 1: ██████████ → ▓▓▓▓▓▓▓▓▓▓ (new)
Instance 2: ██████████████ → ▓▓▓▓▓▓▓▓▓▓ (new)
Instance 3: ██████████████████ → ▓▓▓▓▓▓▓▓▓▓ (new)
- Update satu per satu
- Zero downtime
- Sementara ada mixed version
3. Blue-Green Deployment
- Dua environment identik, hanya satu yang terima traffic
- Switch DNS/load balancer ke versi baru saat smoke test lolos
- Rollback instant: arahkan router kembali ke blue
- Trade-off: butuh 2x infrastruktur selama window cutover
4. Canary Deployment
Old version: ████████████ (90% traffic)
Canary (new): ▓▓ (10% traffic)
Jika OK:
Old version: ████ (20%)
New version: ▓▓▓▓▓▓▓▓▓▓▓▓ (80%)
- Deploy ke sebagian kecil user dulu
- Monitor error rate & performance
- Gradually increase traffic
Kapan Pakai Apa?
- Recreate — Dev/staging, atau jika downtime acceptable
- Rolling — Default untuk kebanyakan app
- Blue-Green — Butuh rollback instant
- Canary — Perubahan berisiko tinggi, butuh confidence bertahap