L’architecture de haute disponibilité démystifiée

L’architecture de haute disponibilité démystifiée

Qu’est-ce que l’architecture haute disponibilité ?

Une architecture à haute disponibilité se produit lorsqu’un certain nombre de composants, modules ou services différents fonctionnent ensemble pour maintenir des performances optimales, quelles que soient les charges aux heures de pointe.

Dans son sens le plus pur, ce système permet aux entreprises de travailler en continu sans panne sur une période de temps donnée. De nombreuses entreprises ne peuvent pas se permettre ne serait-ce qu’une minute d’arrêt. Étant donné que les données constituent l’élément vital de nombreuses entreprises, même une courte période d’indisponibilité peut s’avérer incroyablement coûteuse. 

Dans certains scénarios réels, des vies peuvent dépendre d’une base de données conçue pour une haute disponibilité . Lorsqu’un patient arrive aux urgences, les professionnels de la santé ont besoin d’un accès instantané à leur dossier médical pour comprendre quelles sont les meilleures décisions de traitement. Tout retard dans l’accès à ces informations pourrait avoir un impact dévastateur. 

Remarque : La haute disponibilité est souvent mesurée en pourcentage de temps pendant lequel un service est disponible pour les utilisateurs. Selon le Microsoft Network Developer Glossary, pour qu’un serveur soit considéré comme « hautement disponible », il doit atteindre une disponibilité réseau de 99,999 %.

Que sont les clusters à haute disponibilité ?

Les clusters à haute disponibilité sont un groupe d’hôtes qui fusionnent en un seul système pour éviter les temps d’arrêt. Si un serveur d’un cluster à haute disponibilité tombe en panne, l’application critique est immédiatement transférée vers un autre serveur dès que la panne est détectée.  

Aucun système n’est à l’abri d’une panne, et les clusters à haute disponibilité garantissent le maintien de niveaux de performances optimaux, quelles que soient les pannes inévitables. Par conséquent, ils ont tendance à être utilisés pour les applications, les sites Web et les systèmes de traitement des transactions les plus critiques.

Comment fonctionne le clustering haute disponibilité ?

Un cluster à haute disponibilité utilisera plusieurs systèmes déjà intégrés. Ainsi, si une panne entraîne la défaillance d’un système, un autre peut être efficacement exploité pour maintenir la continuité du service ou de l’application utilisé. 

Le cluster d’équilibrage de charge à haute disponibilité joue un rôle crucial dans la prévention des pannes système. La mise en place d’un équilibreur de charge répartit essentiellement le trafic sur différents nœuds Web qui servent les mêmes utilisateurs de sites Web ou d’applications. Cela réduit la pression sur un serveur donné, ce qui permet à chaque cluster de fonctionner de manière plus optimale tout en permettant au trafic d’être envoyé uniquement vers des serveurs sains.

Concepts de cluster à haute disponibilité

Cluster actif-passif

Le cluster actif/passif est constitué d’au moins deux nœuds. Comme son nom l’indique, tous les nœuds ne seront pas actifs. Si un nœud est actif, le second est en lecture seule et en veille. Le serveur passif fait office de serveur de secours et sera utilisé en cas de panne du serveur actif. 

Cluster actif-actif

Ce type de cluster utilise généralement au moins deux nœuds qui exécutent le même service en même temps. Dans un cluster actif-actif, les deux nœuds agissent comme des nœuds principaux, ce qui signifie que l’un ou l’autre peut accepter des lectures ou des écritures. En cas de défaillance d’un nœud, l’utilisateur sera automatiquement connecté à l’autre pour assurer la continuité du service. Une fois le premier nœud remplacé, les utilisateurs seront alors répartis entre les deux nœuds d’origine. 

L’avantage primordial du cluster actif/actif est qu’il vous permet d’atteindre l’équilibre nœud-réseau. Si des instances de panne de serveur sont détectées, un équilibreur de charge transmettra les requêtes des utilisateurs aux serveurs facilement disponibles, puis analysera l’activité nœud-réseau. L’équilibreur de charge poussera ensuite le trafic vers les nœuds capables de desservir ce trafic, permettant ainsi des niveaux plus élevés de tolérance aux pannes.

Cette stratégie suit un processus cyclique, similaire au modèle round-robin, dans lequel les utilisateurs sont répartis de manière aléatoire sur les nœuds disponibles ou, inversement, peuvent adhérer à un système de pondération dans lequel un nœud est prioritaire sur un autre en fonction d’un pourcentage.

Clusters sans partage ou clusters à disques partagés

Une règle générale qui s’applique au calcul distribué est d’éviter à tout prix les points de défaillance uniques. Cela nécessite que les ressources soient activement répliquées ou remplaçables, sans qu’aucun facteur ne soit perturbé en cas de panne du service complet. 

Imaginez que vous disposiez de cinquante nœuds en cours d’exécution alimentés par une seule base de données. Si l’un des nœuds tombe en panne, cela n’aura aucun impact sur l’état persistant des autres, quel que soit le nombre de nœuds en cours d’exécution. 

Mais si la base de données tombe en panne, le cluster tout entier tombera en panne, faisant de la base de données un point de défaillance unique ? C’est ce qu’on appelle un cluster de disques partagés. 

D’un autre côté, si chaque nœud maintient sa base de données, une panne de nœud n’aura pas d’impact sur l’ensemble du cluster. C’est ce qu’on appelle un cluster sans partage. 

Remarque : si vous souhaitez en savoir plus sur la technologie de clustering à haute disponibilité , assurez-vous de regarder ce webinaire . Avec plus de 20 ans d’expérience dans l’industrie du logiciel, George Carbonnel vous expliquera tout ce que vous devez savoir sur la manière dont la technologie de clustering avec Redis Enterprise offre des performances élevées ainsi qu’une haute disponibilité.

Exigences d’une architecture hautement disponible

Il existe un certain nombre d’exigences différentes dont vous aurez besoin pour maximiser la durabilité et la haute disponibilité . Celles-ci incluent :

L’équilibrage de charge

L’équilibrage de charge est crucial pour toute architecture hautement disponible . Sa fonction principale est de répartir le trafic sur les serveurs backend afin de transmettre les données plus efficacement et d’éviter les surcharges des serveurs. Une condition préalable à tout système d’équilibrage de charge est d’identifier quel processus de basculement doit être effectué en cas de panne de nœud.

Évolutivité des données

La possibilité de faire évoluer les bases de données ou les unités de stockage sur disque doit être prise en compte par toutes les architectures hautement disponibles. Vous pouvez choisir entre deux solutions pour atteindre l’évolutivité : 

  • En utilisant la base de données principale de l’architecture et en utilisant la réplication ou le partitionnement pour la rendre hautement disponible ; ou
  • S’assurer que les instances d’application individuelles sont capables de maintenir leur propre stockage de données

Diversité géographique

Nous vivons dans un monde numérique en constante évolution, où il est désormais indispensable de pouvoir distribuer des clusters hautement disponibles à travers le monde. Cela permettra de garantir qu’en cas de catastrophe naturelle touchant un seul endroit, l’impact ne compromettra pas la capacité de ces derniers à fournir le service. 

Sauvegarde et récupération (reprise après sinistre)

Malgré toute leur cohérence, les architectures hautement disponibles seront toujours sujettes à une sorte de dysfonctionnement pouvant perturber le service. Par conséquent, en cas de panne d’un service, les entreprises doivent disposer d’une stratégie de récupération pour que l’ensemble du système fonctionne à nouveau le plus rapidement possible. 

C’est ce que l’on appelle souvent la reprise après sinistre : un ensemble de politiques et de procédures conçues pour redonner à un service toutes ses fonctionnalités en cas d’événement perturbateur.

Comment mesurer la haute disponibilité

La haute disponibilité est souvent mesurée en pourcentage de temps pendant lequel un service est disponible pour les utilisateurs. Pour cela, il faut diviser le temps de disponibilité total par la période système, qui est ensuite multipliée par 100 pour obtenir un pourcentage. Selon le glossaire des développeurs réseau de Microsoft, pour qu’un serveur soit considéré comme « hautement disponible », il doit atteindre un temps de disponibilité du réseau de 99,999 %. 

Très souvent, le pourcentage de disponibilité est appelé le nombre de neuf dans les chiffres. Donc quatre neuf équivaudraient à 99,99 %. 

Remarque : une disponibilité de 99,99 % est considérée comme la norme de l’industrie.

Bonnes pratiques pour la haute disponibilité

Il existe un certain nombre de mesures que vous pouvez prendre pour maximiser la haute disponibilité, allant du nombre de composants que vous devez vérifier jusqu’au remplacement des serveurs défaillants. Voici quelques pratiques que vous pouvez utiliser pour atteindre la haute disponibilité.

Atteindre la redondance géographique

La géo-redondance est une ligne de défense essentielle contre l’apparition de catastrophes naturelles pouvant entraîner des pannes de service. Cette pratique consiste à déployer de nombreux serveurs dans différents emplacements géographiques, ce qui permet de répartir le risque et de permettre à l’architecture de se rabattre sur un serveur différent en cas de catastrophe naturelle dans une région. 

Remarque : vous pouvez facilement y parvenir avec une base de données dotée d’une géodistribution active-active .

Utiliser des solutions de basculement

Les architectures à haute disponibilité impliquent généralement de nombreux serveurs faiblement couplés qui offrent des capacités de basculement. Un basculement est considéré comme un mode opérationnel de secours qui est automatiquement utilisé lorsque les fonctions d’un système principal sont interrompues. 

Mettre en œuvre des équilibreurs de charge

Comme mentionné précédemment, un équilibreur de charge répartit le trafic entrant sur différents serveurs pour atténuer le risque de temps d’arrêt. Assurez-vous de configurer votre équilibreur de charge pour utiliser un algorithme adapté à vos besoins afin d’optimiser pleinement cette solution.

Assurez-vous que la synchronisation de vos données répond à votre objectif de point de récupération (RPO)

Le RPO est un marqueur de la quantité maximale de données que vous pouvez perdre sans nuire à votre organisation. Cela met en évidence la tolérance à la perte de données de votre entreprise dans son ensemble et elle a tendance à être mesurée en unités de temps, par exemple 1 minute ou 1 jour.

La définition d’un RPO inférieur ou égal à 60 secondes vous aidera à maintenir une disponibilité maximale . Cela garantira qu’en cas de défaillance de la source principale, vous ne perdrez pas plus de 60 secondes de données. 

Rôle de Redis dans l’architecture hautement disponible

Redis Enterprise est une solution puissante pour toute grande entreprise cherchant à atteindre une disponibilité maximale. Il s’agit d’une plate-forme de données en temps réel qui garantit une disponibilité de cinq à neuf et offre une résilience de base de données automatisée d’élite tout en atténuant les risques de panne matérielle et de pannes de cloud. 

Redis Enterprise répond aux besoins de haute disponibilité des applications d’entreprise les plus critiques. Il offre des fonctionnalités de pointe pour fournir une disponibilité de 99,999 % en utilisant : la distribution géographique active-active , le basculement automatique, le clustering intelligent, une architecture sans partage et la distribution mondiale.

Vous souhaitez en savoir plus sur la manière d’atteindre la haute disponibilité ?

Leave a Reply

Your email address will not be published. Required fields are marked *