Paket 2 · Praktik LanjutanModul D — Reverse Proxy, Load Balancing & High Availability

High Availability Architecture

Menghilangkan single point of failure dengan redundansi, failover, VIP, replikasi database, dan pengujian chaos.

High Availability (HA) berarti layanan tetap tersedia meskipun satu komponen gagal. HA bukan sekadar menambah server; ia menghilangkan single point of failure (SPOF) dan menyiapkan failover.

Single point of failure

KomponenJika gagalMitigasi
Satu app instanceLayanan matiMultiple instance
Satu proxySemua trafik matiDua proxy + VIP/DNS
Database tunggalData tidak bisa diaksesReplica + failover
Redis tunggalCache/session hilangReplica/Sentinel
Satu switch/jalurJaringan terputusRedundansi jaringan
Backup di server yang samaHilang saat server rusakBackup offsite

Level HA

LevelDeskripsiContoh
99%~3,65 hari downtime/tahunSingle server
99,9%~8,7 jam/tahunRedundansi dasar
99,99%~52 menit/tahunMulti-node, failover otomatis
99,999%~5 menit/tahunMulti-region, sangat kompleks

Biaya meningkat tajam seiring level HA. Pilih sesuai kebutuhan bisnis.

Failover proxy dengan Keepalived

Dua server Nginx dengan IP virtual (VIP):

Client
  │
  ▼
VIP 192.168.1.100
  ├── nginx-1 (MASTER)
  └── nginx-2 (BACKUP)

Keepalived memindahkan VIP jika master gagal.

Konfigurasi sederhana di kedua node:

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass rahasia
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
}

Node backup memakai state BACKUP dan priority lebih rendah.

VRRP membutuhkan jaringan yang mendukung multicast

Pastikan jaringan mengizinkan VRRP/multicast. Di cloud tertentu, fitur ini dibatasi.

Failover DNS

Alternatif tanpa VIP: dua alamat IP dengan health check DNS.

  • DNS round robin — sederhana, tetapi failover bergantung TTL.
  • DNS failover — provider memeriksa health dan mengubah record.
  • Anycast — skala besar, kompleks.

DNS bukan mekanisme failover instan karena cache TTL. Untuk aplikasi kritis, gunakan load balancer dengan health check.

Database HA

Primary + replica

App ──write──▶ Primary
  └──read────▶ Replica
  • Primary menangani write.
  • Replica menangani read dan menjadi kandidat failover.
  • Replikasi bisa asynchronous atau synchronous.

Failover

  • Manual — promosikan replica, ubah koneksi app.
  • Otomatis — Patroni/repmgr untuk PostgreSQL, Orchestrator untuk MySQL.

Risiko utama: split brain (dua primary). Gunakan quorum dan fencing.

Redis HA

ModeFungsi
ReplicaRead scaling dan cadangan
SentinelFailover otomatis
ClusterSharding dan HA

Untuk session/cache, kehilangan Redis sementara bisa ditoleransi dengan fallback, tetapi session pengguna bisa hilang.

Load balancer HA

  • Dua instance Nginx + Keepalived.
  • Atau load balancer cloud terkelola.
  • Health check ke backend.
  • Jangan biarkan load balancer menjadi SPOF.

Backup dan HA bukan hal yang sama

HA menjaga layanan tetap hidup saat komponen gagal. Backup melindungi dari data loss, korupsi, atau kesalahan manusia. Keduanya diperlukan.

Menguji HA

  1. Matikan satu app instance — trafik tetap jalan.
  2. Matikan proxy master — VIP pindah.
  3. Hentikan database primary — failover berjalan.
  4. Putuskan jaringan sementara — cek perilaku.
  5. Restore backup di lingkungan terpisah.

Uji sebelum insiden

HA yang belum diuji hanya asumsi. Lakukan game day/chaos test secara berkala dan catat hasilnya.

Checklist HA

  • Tidak ada SPOF pada jalur trafik.
  • Minimal dua app instance.
  • Proxy redundan.
  • Database memiliki replica dan prosedur failover.
  • Cache memiliki strategi fallback.
  • Backup offsite dan teruji.
  • Health check di semua lapisan.
  • Monitoring dan alert.
  • Runbook failover.
  • HA diuji berkala.

Ringkasan

  • HA menghilangkan SPOF dan menyiapkan failover.
  • Redundansi harus mencakup app, proxy, database, dan jaringan.
  • Database HA membutuhkan quorum dan pencegahan split brain.
  • Backup tetap wajib meskipun sistem HA.

Selanjutnya

On this page