Paket 2 · Praktik LanjutanModul C — Production Deployment

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 / backup

Komponen pendukung:

  • Object storage untuk upload dan backup.
  • Monitoring (Prometheus/Grafana/Loki).
  • Secret management.
  • CI/CD runner yang terpisah dari produksi.

Lapisan arsitektur

LapisanFungsiContoh
EdgeDNS, CDN, WAF, TLSCloudflare
ProxyRouting, TLS, rate limitNginx, NPM
ApplicationLogika bisnisNode.js, PM2, Docker
CacheMempercepat dan sessionRedis
DatabaseData persistenPostgreSQL
StorageFile/backupS3, MinIO, NFS
ObservabilityMetrik, log, alertPrometheus, 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

EnvironmentTujuanData
DevelopmentEksperimenDummy
StagingUji rilisMirip produksi, anonim
ProductionPengguna nyataNyata
PreviewPer PR (opsional)Sementara

Staging sebaiknya memakai konfigurasi, versi, dan topologi yang mendekati produksi.

Alur artefak

commit → CI test → build image → registry → deploy → health check

Aturan penting: build sekali, deploy berkali-kali. Image yang sama dipakai di staging dan production, hanya konfigurasi yang berbeda.

Redundansi

KomponenRedundansi
AppMinimal 2 instance
ProxyDua node + VIP/DNS failover
DatabasePrimary + replica, backup
CacheReplica/sentinel bila kritis
StorageReplikasi/backup
NetworkDua 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

  1. VM/LXC proxy — NPM di jaringan publik.
  2. LXC app-1 dan app-2 — aplikasi Node.js.
  3. LXC db — PostgreSQL, hanya di jaringan internal.
  4. LXC cache — Redis, hanya di jaringan internal.
  5. Host Proxmox — backup dan monitoring.
  6. 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.

On this page