Production Deployment Architecture
Merancang arsitektur deployment produksi berlapis: edge, reverse proxy, aplikasi, cache, database, storage, dan zona jaringan.
Arsitektur produksi yang baik memisahkan komponen, membatasi akses, dan menyediakan redundansi. Halaman ini memberi blueprint sebelum Anda mengotomasi deployment.
Blueprint umum
Internet
│
▼
Cloudflare / DNS
│
▼
Reverse Proxy / Load Balancer (NPM/Nginx)
│
├── App instance 1 ──┐
├── App instance 2 ──┼──▶ Redis (cache/session)
└── App instance N ──┘ │
▼
PostgreSQL (primary)
│
└──▶ Replica / backupKomponen pendukung:
- Object storage untuk upload dan backup.
- Monitoring (Prometheus/Grafana/Loki).
- Secret management.
- CI/CD runner yang terpisah dari produksi.
Lapisan arsitektur
| Lapisan | Fungsi | Contoh |
|---|---|---|
| Edge | DNS, CDN, WAF, TLS | Cloudflare |
| Proxy | Routing, TLS, rate limit | Nginx, NPM |
| Application | Logika bisnis | Node.js, PM2, Docker |
| Cache | Mempercepat dan session | Redis |
| Database | Data persisten | PostgreSQL |
| Storage | File/backup | S3, MinIO, NFS |
| Observability | Metrik, log, alert | Prometheus, Loki, Grafana |
Zona jaringan
- Public zone — hanya reverse proxy/tunnel yang terbuka.
- Private app zone — aplikasi tidak punya public IP.
- Data zone — database dan cache hanya bisa diakses app.
- Management zone — SSH/admin lewat Tailscale atau bastion.
Database jangan terbuka ke internet
Port database dan Redis tidak boleh diekspos ke publik. Batasi dengan firewall dan jaringan internal. Akses admin cukup lewat Tailscale/SSH tunnel.
Environment
| Environment | Tujuan | Data |
|---|---|---|
| Development | Eksperimen | Dummy |
| Staging | Uji rilis | Mirip produksi, anonim |
| Production | Pengguna nyata | Nyata |
| Preview | Per PR (opsional) | Sementara |
Staging sebaiknya memakai konfigurasi, versi, dan topologi yang mendekati produksi.
Alur artefak
commit → CI test → build image → registry → deploy → health checkAturan penting: build sekali, deploy berkali-kali. Image yang sama dipakai di staging dan production, hanya konfigurasi yang berbeda.
Redundansi
| Komponen | Redundansi |
|---|---|
| App | Minimal 2 instance |
| Proxy | Dua node + VIP/DNS failover |
| Database | Primary + replica, backup |
| Cache | Replica/sentinel bila kritis |
| Storage | Replikasi/backup |
| Network | Dua jalur bila memungkinkan |
Kebutuhan deployment
- Domain dan TLS.
- Reverse proxy.
- Dua instance aplikasi.
- Database privat.
- Backup terjadwal.
- Monitoring dan alert.
- Log terpusat.
- Prosedur rollback.
- Dokumentasi arsitektur.
Praktik: topologi Proxmox sederhana
- VM/LXC
proxy— NPM di jaringan publik. - LXC
app-1danapp-2— aplikasi Node.js. - LXC
db— PostgreSQL, hanya di jaringan internal. - LXC
cache— Redis, hanya di jaringan internal. - Host Proxmox — backup dan monitoring.
- Tailscale — akses admin.
Dengan topologi ini, hanya proxy yang terbuka; aplikasi dan data terlindungi.
Ringkasan
- Pisahkan edge, aplikasi, data, dan management.
- Gunakan minimal dua instance aplikasi untuk redundansi.
- Build sekali dan deploy artefak yang sama.
- Dokumentasikan topologi dan prosedur pemulihan.
Selanjutnya
Otomasi rilis di Automated Deployment.