Chargement visuel

Qu'est-ce que la haute disponibilité ?

La haute disponibilité est un principe architectural qui consiste à concevoir des systèmes de manière à ce qu'ils restent opérationnels et accessibles malgré la défaillance de certains composants, grâce à la redondance, au basculement automatique et à l'isolation des pannes.

Plutôt que de partir du principe que tous les composants fonctionneront parfaitement en permanence, les architectures à haute disponibilité tiennent explicitement compte des défaillances des composants et conçoivent les systèmes de manière à ce qu'ils continuent de fonctionner même en cas de défaillance d'un élément particulier. Un serveur peut tomber en panne, un commutateur réseau peut présenter un dysfonctionnement, un contrôleur de stockage peut cesser de répondre, mais le système dans son ensemble continue de servir les utilisateurs sans interruption. Pour les grandes entreprises, la haute disponibilité est passée d'une fonctionnalité souhaitable à une exigence fondamentale : la plupart des systèmes critiques pour l'activité ne peuvent tolérer aucune interruption, même brève.

Pourquoi la haute disponibilité est-elle essentielle pour les opérations des entreprises ?

L'impact commercial des temps d'arrêt des systèmes s'est considérablement accru à mesure que les entreprises deviennent de plus en plus dépendantes des infrastructures numériques. Chaque heure d'indisponibilité représente désormais des milliers, voire des millions de dollars de pertes de revenus, une détérioration des relations avec la clientèle et des perturbations opérationnelles. La pression exercée sur les services informatiques pour qu'ils garantissent une disponibilité quasi permanente n'a jamais été aussi forte. Les architectures à haute disponibilité répondent directement à cette pression en réduisant, voire en éliminant, les interruptions de service causées par les défaillances des composants.

La haute disponibilité permet également de réduire le coût total de possession des systèmes critiques. Si la mise en place d'une redondance entraîne une augmentation des coûts d'infrastructure par rapport aux systèmes à instance unique, le coût des temps d'arrêt dépasse souvent de loin celui de la redondance. Une heure d'indisponibilité d'un système générateur de revenus peut coûter plus cher que des années d'investissement dans une infrastructure redondante. Cette réalité économique a fait de la haute disponibilité une exigence standard pour les systèmes de production dans la plupart des entreprises.

Le lien entre la haute disponibilité et la reprise après sinistre est souvent mal comprise. Bien que les deux visent à maintenir les systèmes opérationnels, elles répondent à des scénarios de défaillance différents. La haute disponibilité se concentre sur le basculement rapide en cas de défaillance de composants individuels au sein d'un site : si un serveur tombe en panne, le trafic est automatiquement redirigé vers un autre serveur. La reprise après sinistre traite des défaillances plus étendues : lorsqu'un centre de données entier devient indisponible, les opérations sont transférées vers un site de secours. La plupart des entreprises mettent en œuvre ces deux approches pour assurer une résilience par défense en profondeur.

Comment fonctionnent les architectures à haute disponibilité

La haute disponibilité implique généralement une redondance à plusieurs niveaux. Au lieu d'un seul serveur, vous déployez plusieurs serveurs exécutant la même application, avec un équilibreur de charge qui répartit le trafic entre les serveurs opérationnels. Si un serveur tombe en panne, l'équilibreur de charge cesse automatiquement de lui acheminer du trafic, et les requêtes des utilisateurs continuent d'être traitées par les serveurs restants. Cette architecture est simple et efficace pour faire évoluer la redondance au niveau de la couche applicative.

La redondance du stockage revêt une importance tout aussi grande. Les architectures à haute disponibilité ne peuvent tolérer la défaillance d'un seul système de stockage, qui entraînerait une perte de données ou une indisponibilité prolongée. Ce problème est généralement résolu par des configurations RAID (Redundant Array of Independent Disks), dans lesquelles plusieurs disques assurent la redondance, de sorte que la défaillance d'un seul disque n'entraîne ni perte de données ni interruption de service. Certains systèmes mettent en œuvre une réplication de plus haut niveau, dans laquelle des systèmes de stockage entiers sont mis en miroir.

La redondance réseau élimine les points de défaillance uniques dans la connectivité réseau. Au lieu d'une seule interface réseau reliant un serveur au réseau, les systèmes disposent de plusieurs interfaces connectées à plusieurs commutateurs réseau. Si une interface ou un commutateur tombe en panne, le trafic continue de circuler via les chemins restants. La redondance au niveau de la couche réseau est essentielle à la haute disponibilité, mais elle est souvent négligée par les équipes chargées des applications, qui se concentrent principalement sur les ressources de calcul et de stockage.

Les mécanismes de basculement automatique sont essentiels à la haute disponibilité. Les systèmes doivent détecter rapidement les défaillances des composants et rediriger automatiquement le trafic et les charges de travail vers les composants opérationnels. Cette détection et ce basculement doivent s'effectuer sans intervention manuelle : si le personnel informatique doit détecter manuellement les défaillances et intervenir, il ne s'agit pas d'une véritable haute disponibilité. Les mécanismes de vérification de l'état des composants s'assurent en permanence que ceux-ci sont réactifs et fonctionnels, et déclenchent un basculement automatique lorsqu'ils ne le sont pas.

Éléments clés à prendre en compte pour la mise en œuvre d'une solution à haute disponibilité

Pour concevoir des architectures hautement disponibles efficaces, il faut identifier les chemins critiques et les points de défaillance uniques, puis les éliminer par la mise en place de redondances. Tous les composants ne nécessitent pas le même niveau de redondance. Un service de journalisation non critique peut se contenter d'une redondance minimale, tandis que votre base de données principale exige une redondance maximale. Les entreprises doivent hiérarchiser leurs investissements en matière de redondance en fonction du niveau de criticité.

Les tests de haute disponibilité sont essentiels. Les administrateurs constatent souvent, lorsqu’ils testent concrètement des scénarios de basculement, que les systèmes ne basculent pas comme prévu. Les configurations réseau peuvent être incomplètes, les procédures de basculement peuvent ne pas fonctionner correctement, ou la conception des applications peut empêcher un basculement en douceur. Des tests réguliers, incluant l’injection délibérée de défaillances où les équipes provoquent intentionnellement des pannes de composants pour tester le basculement, permettent de s’assurer que les architectures de haute disponibilité fonctionnent réellement.

Les décisions d'investissement en matière de haute disponibilité doivent s'appuyer sur une analyse coûts-avantages. Atteindre un niveau de disponibilité de cinq neuf (99,999 % de temps de fonctionnement, soit environ 26 secondes d'indisponibilité par an) coûte exponentiellement plus cher que d'atteindre un niveau de quatre neuf (99,99 % de temps de fonctionnement, soit environ 52 minutes par an). Les entreprises doivent déterminer les niveaux de disponibilité dont leurs activités ont réellement besoin et viser ces niveaux, plutôt que de surdimensionner leurs infrastructures pour atteindre des niveaux inutiles.

La gestion de l'état constitue un défi courant dans les architectures à haute disponibilité. Lorsqu'un utilisateur est connecté à un serveur et que celui-ci tombe en panne, où se trouve l'état de la session de cet utilisateur ? Les applications doivent soit stocker l'état de la session dans un emplacement partagé accessible depuis n'importe quel serveur, soit répliquer cet état sur d'autres serveurs, soit accepter que les utilisateurs perdent leur session en cas de panne d'un serveur. La conception d'applications sans état facilite souvent la mise en place d'une haute disponibilité.

Concepts avancés de haute disponibilité

Certaines organisations mettent en œuvre la haute disponibilité géographique grâce à des architectures de reprise après sinistre en mode actif-actif , où la redondance s'étend sur plusieurs sites. La haute disponibilité traditionnelle fonctionne généralement au sein d'un seul centre de données, tandis que les approches de redondance géographique permettent de gérer les pannes touchant l'ensemble d'un site.

Il est important de bien comprendre le lien entre la haute disponibilité et l'équilibrage de charge. Les équilibreurs de charge jouent un rôle essentiel dans les architectures à haute disponibilité : ils répartissent le trafic entre plusieurs serveurs et détectent les composants défaillants. L'emplacement et la redondance des équilibreurs de charge revêtent eux-mêmes une importance cruciale : il ne faut pas qu'un seul équilibreur de charge constitue un point de défaillance unique.

Comprendre le temps moyen de récupération aide les entreprises à optimiser leurs implémentations de haute disponibilité. Plutôt que de chercher à réduire au minimum le temps de reprise, qui n'est pas mesuré lorsque le basculement est automatique, les entreprises devraient s'attacher à minimiser l'impact sur les performances en cas de défaillance d'un composant.

 

Pour en savoir plus