ARCL — architecture hybride résiliente
Un socle self-service redondé entre Azure et un cloud privé, décrit intégralement en Infrastructure as Code.
Contexte
L'objectif : un socle self-service qui reste disponible quand l'un des deux clouds tombe. Pas une architecture hybride de principe — une architecture hybride qui survit à la perte d'un côté, et dont on peut le prouver.
Architecture
Azure porte les frontaux et la répartition de charge ; le cloud privé sous MicroStack/OpenStack porte l'état. Les deux côtés sont reliés par un tunnel chiffré WireGuard, qui sert de plan de communication unique entre les composants.
La donnée vit dans un cluster PostgreSQL géré par Patroni : élection du primaire, bascule automatique, réplication continue. Les volumes sont provisionnés via Cinder côté privé.
Azure · Azure Load Balancer · OpenTofu · MicroStack / OpenStack · WireGuard · PostgreSQL · Patroni · Cinder
Ce que j'ai fait
- Interconnexion WireGuard entre Azure et le cloud privé, avec le plan d'adressage et les routes associées.
- Cluster PostgreSQL redondé par Patroni : bascule automatique du primaire, sans intervention humaine.
- Répartition de charge Azure devant les frontaux, avec sondes de santé.
- Description complète de l'environnement en OpenTofu — l'infrastructure est reconstructible depuis zéro, pas documentée dans un wiki.
Résultat
[TODO: métrique] RTO mesuré de la bascule Patroni, ou temps de reconstruction complète de l'environnement depuis l'IaC. Ce sont les deux seuls chiffres qui prouvent qu'une architecture est réellement résiliente ; tant qu'ils ne sont pas mesurés, le reste est une intention.
Ce que j'en retire
La haute disponibilité ne se décrète pas au niveau du diagramme. Elle se joue sur les détails : le comportement du load balancer pendant l'élection Patroni, ce qui se passe quand le tunnel bat, et le fait de savoir — ou non — reconstruire l'ensemble d'une seule commande.