Haute Disponibilité · Reprise après Sinistre

Conçu pour ne jamais s'éteindre.

Chaque composant fonctionne à chaud. Les nœuds DB actif et standby se répliquent en continu. Une IP virtuelle flotte au-dessus du cluster — keepalived surveille le primaire, et dès qu'il cesse de répondre, le trafic bascule sur le standby avant que le spectateur moyen ne remarque un buffer. Ce n'est pas un tutoriel Postgres greffé sur un SaaS — c'est une infrastructure de première classe à laquelle votre opérateur n'a jamais à penser.

99.999%
Objectif de Niveau de Service
<30s
Récupération de Bascule
3×
Cibles de Réplication
0
Action Opérateur Requise
§ ATopologie
Anatomie du Cluster

Trois nœuds, une vérité.

Une paire DB actif/standby se réplique sur un réseau privé. Une paire de load-balancers nginx participe à VRRP pour une IP virtuelle qui flotte entre eux. Le cluster d'application lit via un pool de connexions qui se vide et réessaie quand le primaire se déplace. Chaque lien est à double chemin.

Topologie · HA-Cluster-0013 nodes · vrrp v3
VIRTUAL IP10.0.0.100● PRIMARYdb-01writes · accepting○ STANDBYdb-02replicating · warmAPP CLUSTERtuse · ott · prism○ LB-Anginx · keepalivedvrrp master○ LB-Bnginx · keepalivedvrrp backupCLIENT TRAFFIC ↑ 12.4M CCV
§ BBascule
Démonstration sous les 30 secondes

Ce qui se passe, seconde par seconde.

Quand un nœud primaire échoue, la récupération se fait en 4 étapes ordonnées. Action opérateur : zéro. Perturbation côté client : plus courte qu'une retransmission TCP.

T+0s

Battement perdu

Le keepalived du standby cesse de recevoir les annonces VRRP du primaire. Après 3 balises manquées (~1.5s), le standby se promeut.

Détection · 1.5s
T+2s

Promotion + STONITH

Le nouveau primaire isole l'ancien nœud — extinction via API cloud — et accepte les écritures. Le sens de réplication s'inverse ; le nœud récupéré rejoindra comme standby.

Promotion · 2s
T+5s

Migration de l'IP virtuelle

L'IP virtuelle VRRP migre vers la NIC du nouveau primaire. Le pool de connexions de l'application se vide ; les requêtes en vol sont réessayées sur le nouveau point de terminaison.

Migration VIP · 3s
T+<30s

État stable

Le service est restauré. Le nœud récupéré, quand il est joignable, se synchronise et rejoint comme standby chaud. Les entrées du journal d'audit sont écrites. L'opérateur reçoit une seule notification, après coup.

Récupération complète · 30s
§ CMatrice

Ce qui est — et n'est pas — préservé.

Lectures
Continues. Le standby sert des replicas de lecture pendant la bascule ; les clients ne voient jamais d'interruption sur le trafic de lecture.
Écritures
Brièvement suspendues (< 5 secondes) pendant la promotion. Les écritures en vol sont réessayées par le pool de connexions avec des clés d'idempotence.
Sessions utilisateur
Basées sur JWT, sans état. Les sessions persistent à travers la bascule sans ré-authentification.
Tâches en arrière-plan
Les files BullMQ sont soutenues par Redis et survivent à la bascule. Les tâches en cours se terminent sur le nouveau primaire.
Flux en direct
Les serveurs d'origine sont indépendants de la base de données. L'ingestion et la diffusion HLS ne sont pas affectées.
Tableau de bord opérateur
Se rend contre le nouveau primaire dès la migration de la VIP. Le journal d'audit montre l'événement de bascule.
§ ∞Parlez-nous
Pilote d'un cluster HA managé

Disponibilité de niveau ingénieur.