L’un des points cruciaux dans une architecture des systèmes d’information, et dont tout le monde rêve : la haute disponibilité infaillible et résiliente à toute épreuve.

Soyons honnêtes : celle-ci n’existe pas.
Mais différentes méthodes permettent tout de même de dormir sur nos deux oreilles en limitant les risques de panne.

Afin de garantir convenablement une haute disponibilité, passons en revue les méthodes que nous utilisons au sein d’uh!ive.

La redondance physique

“On ne met pas tous ses œufs dans le même panier.”

La redondance physique est l’une des étapes les plus déterminantes.
Regrouper tous ses services sur un même serveur ou un même lieu géographique peut sembler économique, mais c’est incompatible avec une sécurité réelle.

Notre SI est réparti sur au minimum deux datacenters distants de plus de 100 km, avec une latence faible et stable.
Nous collaborons avec OVH Cloud, partenaire de confiance depuis plusieurs années.

Cette organisation nous permet de fonctionner en actif-actif et même de basculer temporairement sur un seul datacenter en cas de coupure inter-DC ou de panne réseau.
La technologie VRACK d’OVH Cloud relie ces environnements de manière sécurisée et privée.

Pour certains services critiques – Elasticsearch, Redis, RabbitMQ – l’ouverture d’un troisième datacenter a été nécessaire. Nous migrons progressivement nos services pour mieux répartir la charge et accompagner les besoins de nos clients.

La redondance des services

Cette redondance logicielle complète la redondance physique : tous nos services sont dupliqués sur chaque datacenter.

Opter pour la virtualisation

À l’exception de cas très gourmands en ressources CPU, RAM ou stockage, notre infrastructure repose sur VMWare et Proxmox.
Des règles automatisées permettent la migration instantanée des VM en cas de défaut matériel ou de mise à jour.

Doubler les proxies

Chaque proxy est doublé et partage une adresse IP virtuelle (VIP).
Cela nous permet d’actualiser serveurs et services sans interruption.

Les paires de proxies sont réparties sur des hôtes et datastores différents, assurant une double redondance : physique + logicielle.

Des outils comme keepalived régissent l’adressage IP virtuelle et automatisent le failover.

Réplication des données

Nos bases MariaDB et PostgreSQL sont répliquées nativement sur chaque datacenter.

Simplification du déploiement

Une haute disponibilité implique de réagir rapidement, surtout lors de montées en charge soudaines. Nous nous appuyons sur :

  • Déploiement de serveurs via des templates prédéfinis
  • Déploiement d’outils via Puppet et Ansible
  • Déploiement des services via Ansible et Docker

La sauvegarde du système

La sauvegarde n’est pas à proprement parler de la redondance, mais elle est indispensable pour garantir une reprise d’activité rapide.

Nous sauvegardons quotidiennement tout ce qui est nécessaire à la reconstruction complète du SI, avec une fréquence plus élevée pour certains éléments :

  • Bases de données
  • Configuration des routeurs
  • Configurations applicatives

Nous testons ces sauvegardes tous les six mois. C’est un point non négociable.

Et l’humain ?

Les puces électroniques, les câbles RJ45 et les clusters distribués sont fascinants, mais l’humain reste au centre de chaque architecture.

Nous veillons à garantir un bon niveau de connaissance grâce à :

  • Organisation en binôme
  • Présentations régulières des avancées techniques
  • Documentation précise
  • Veille technologique partagée
  • Organisation de hackathons internes

Le monitoring

Le monitoring n’est pas uniquement lié à la redondance, mais il est indispensable pour suivre l’état du système.

Une redondance n’est pas toujours automatique : certaines situations exigent une intervention humaine, notamment pour la redirection des flux réseau.

Nous ajoutons aussi :

  • Horodatage des logs pour une traçabilité fine
  • Centralisation des logs pour une recherche plus simple
  • Alertes multichannels : SMS, tchat interne, e-mails…

Conclusion

Il n’existe aucune solution parfaite pour maintenir une haute disponibilité à toute épreuve. Chaque architecture possède ses propres règles.

Une multitude d’outils et d’approches existent pour bâtir sa propre méthodologie. L’aspect matériel compte, mais l’aspect humain est primordial.

Le travail interéquipes, la documentation claire, les procédures solides et les tests réguliers sont souvent ce qui sauve véritablement une infrastructure.