High Availability

C’est un façon d’organiser une application ou service afin de diminuer le plus possible les chances que l’application ne soit plus disponible. Pour les systèmes critiques, comme base de donnée, c’est un aspect très important. C’est également afin d’éliminer le problème avec les Single Point Of Failure. Dans des systèmes d’haute disponibilité, il doit y avoir 3 instances du service afin de respecter le quorum du cluster.

Détection

Un aspect important des services Highly Availably est la façon que les services sont déterminé Offline. Une approche populaire est le Top Down. Les services du haut (ceux qui ont le plus de dépendances) vont monitorer les services en dessous d’eux.

Architecture

L’utilisateur accèdera au frontend de son application, sans différence. Comment il accède à l’application changera selon la configuration. Le principe reste toujours le même, on a une base de donnée qui sera distribué (ou quelque chose dans le genre) et chaque service répliqué accèderont à la même base de donnée. Des mesures de garanties de fonctionnement et de service doivent être appliqué aux bases de données aussi.

Dans des cas où il est impossible à la couche du dessus de monitorer ceux du dessous, il faut créer des services distribués. Ils existent certain algorithmes qui peuvent aider ce processus, par exemple Dns Round Robing. Cette solution n’est pas la meilleure et pas tant flexible. Une solution qui peut être plus avantageuse est d’utilisé des addresses IP flexible, donc lorsqu’un service tombe Offline, l’addresse principale se fait déplacer vers le serveur principale.

References

  1. what-is-high-availability.html
  2. what-is-high-availability