Deployment dan Runtime
Tujuan
Menjalankan stack dengan konfigurasi eksplisit dan memverifikasi status dari sumber yang benar.
Prasyarat
- Lingkungan development: Docker Compose tersedia.
- Satu sumber kebenaran untuk kredensial (jangan duplikasi di override).
- Lingkungan produksi: belum ada klaim production-ready; lakukan gate operasional sebelum digunakan.
Topologi Compose development
- Baca
compose.yamldi root repository untuk daftar service saat ini. - Jalankan
docker compose up --build. - Lihat log startup tiap service; jangan menganggap container hidup = sehat.
Peringatan konflik port-sumber: pastikan port host yang dipetakan tidak dipakai service/proses lain. Konflik port-sumber membuat bind gagal atau kontainer tidak dapat dijangkau; diagnosis dari log service, bukan dari asumsi.
Variabel lingkungan
Sediakan seluruh variabel yang diwajibkan service sesuai compose.yaml dan env example, termasuk kredensial database yang konsisten satu sumber. Jangan menyalin secret ke file yang masuk kontrol versi.
Health dan readiness
Verifikasi status dari endpoint yang benar-benar tersedia pada deployment. Tidak ada health endpoint yang tidak berdasar: jika endpoint health/readiness belum diimplementasikan service, jangan menyatakan sehat hanya karena container berjalan. Jangan memakai metrik sebagai pengganti health tanpa membuktikan artinya.
CORS, rate limit, dan body size
- Konfigurasi CORS hanya untuk origin yang diizinkan.
- Aktifkan rate limit dan uji threshold-nya.
- Tetapkan body size limit sesuai kebutuhan dan dokumentasikan.
Keamanan
- Selalu gunakan TLS untuk traffic yang melewati jaringan tidak tepercaya.
- Jangan menonaktifkan verifikasi HMAC, origin check, atau access control sebagai workaround.
- Jangan menonaktifkan TLS untuk memudahkan debugging lokal yang terhubung lingkungan bersama.
Metrik publik
Endpoint metrik publik dapat mengekspos detail operasional yang sensitif. Batasi akses metrik dan data kinerja hanya untuk pihak berwenang; jangan membuka dashboard ke publik tanpa kontrol akses.
Tanda berhasil
Service menjawab health/readiness jujur, seluruh variabel environment terisi, port tidak bentrok, dan dashboard serta metrik hanya bisa diakses sesuai izin.
Jika terjadi masalah
Lihat Troubleshooting. Konflik port dan env salah adalah penyebab paling umum kegagalan startup; perbaiki di sumber konfigurasi, bukan dengan mengabaikan error.
Batasan
Migrasi database, backup/restore, dan CI belum menjadi pengganti backup yang diuji. Recovery harus diuji, bukan diasumsikan.