Haute disponibilité

Chaque système informatique a un objectif. Pour atteindre cet objectif, il doit être disponible. Certains systèmes informatiques sont essentiels pour une entreprise et, par conséquent, doivent être hautement disponibles, c’est-à-dire tolérer un niveau minimal (voire aucun niveau) d’indisponibilité partielle ou totale. D’autres systèmes, moins cruciaux, autorisent un certain nombre de temps d’arrêt programmés ou non programmés. Les utilisateurs peuvent se rabattre sur d’autres processus ou simplement attendre que le système soit à nouveau disponible. De nombreux systèmes se situent quelque part entre ces deux extrêmes.

Concept de disponibilité

La haute disponibilité (HA) est une approche de conception qui permet à un système de répondre à un niveau prédéterminé de performance opérationnelle sur une période spécifique. Un système hautement disponible offre aux clients une technologie et un environnement d’une grande fiabilité. Il permet de répondre ou de dépasser leurs exigences commerciales en matière de prestation de services et de fonctionner au niveau de qualité attendu.

Remarque:

Bien qu’elle soit liée à la récupération d’urgence (DR), la haute disponibilité est un concept distinct. En général, la haute disponibilité vise à éviter les temps d’arrêt imprévus pour la prestation de services, alors que la récupération d’urgence se concentre sur la conservation des données et des ressources nécessaires pour restaurer un système à un état acceptable après un sinistre. Lorsque des plans de récupération d’urgence sont mis en œuvre, il est courant que la prestation de services soit interrompue jusqu’à ce que le système soit rétabli. Pour plus d’informations, voir Sauvegardes et récupération d’urgence.

La redondance géographique est un autre terme communément employé dans ce domaine. L’objectif du point de vue conceptuel est d’avoir une application ou un système capable de survivre à une panne complète du centre de données, en disposant de systèmes supplémentaires ou d’un système de sauvegarde à un autre emplacement géographique. Cette approche permet de se protéger contre les catastrophes naturelles, les pannes de courant ou tout autre événement susceptible de nuire à la disponibilité du centre de données.

De nombreux architectes utilisent un ensemble commun de termes pour désigner et décrire en détail une approche de la haute disponibilité au niveau du système ou des composants. Les termes les plus couramment utilisés dans ce domaine sont les suivants :

  • Actif-actif : modèle de tolérance aux pannes qui repose sur deux systèmes ou plus recevant et traitant activement les requêtes. Dans un système actif-actif, chaque nœud qui reçoit une requête est égal aux autres. Les requêtes sont généralement équilibrées en charge de sorte qu’elles sont envoyées dans une proportion à peu près égale à chaque nœud principal.
  • Actif-passif : modèle de tolérance aux pannes (également appelé principal/secours) dans lequel les requêtes des utilisateurs sont entièrement transmises au système actif. Un deuxième système en attente (dit passif) est sollicité en cas de défaillance du système principal (le système actif cesse de traiter les requêtes) ou au moment prévu ou planifié. Dans un cas comme dans l’autre, le trafic utilisateur est redirigé vers le système passif qui est maintenant considéré comme le système actif.
  • Les systèmes de basculement sont conçus pour être entièrement synchronisés avec un système actif. Ils doivent être prêts à recevoir du trafic si le système principal échoue à remplir sa mission pour une raison quelconque. Un système de basculement est similaire à une configuration de type actif-passif, mais peut avoir différents processus associés au « basculement » vers ce système.

Objectifs de disponibilité

L’une des mesures permettant d’évaluer la disponibilité est le temps de fonctionnement, qui correspond généralement au pourcentage de temps pendant lequel un système a été « disponible » sur une certaine période. La notion de disponibilité reste subjective et doit être établie dès le début du processus de conception du système afin de trouver un consensus sur cet objectif. Un niveau de disponibilité souhaité est souvent défini comme un temps de fonctionnement visé, souvent exprimé sous forme d’une série de 9. Par exemple :

  • 99 % (deux neufs) : équivaut à 3,65 jours de temps d’arrêt autorisés par an
  • 99,9 % (trois neufs) : équivaut à 8,77 heures de temps d’arrêt autorisées par an

Les objectifs de disponibilité peuvent être formalisés sous la forme d’un contrat de niveau de service (SLA) entre les utilisateurs d’un système et l’organisation qui exploite ce système. Souvent, les SLA incluent d’autres indicateurs liés aux performances au-delà des objectifs de disponibilité purs (temps de réponse attendus, par exemple) et peuvent prévoir des pénalités pour atteindre ces objectifs s’il existe une relation fournisseur-client. Les SLA internes sont tout aussi importants, bien qu’ils n’incluent généralement pas les critères de pénalité et de création de rapport d’un SLA destiné aux clients.

Niveaux de criticité

Une autre approche adoptée par les organisations en matière de disponibilité consiste à établir des niveaux de criticité pour les systèmes dont elles ont la charge. Ces niveaux de criticité peuvent aller du niveau non essentiel au niveau fondamental, en fonction de l’impact qu’une panne peut avoir sur une organisation. L’expérience utilisateur, les finances, la réputation et l’impact réglementaire peuvent être pris en considération. Chaque niveau de criticité peut avoir une définition de SLA cible différente. Certaines organisations peuvent faire référence à un certain système comme étant de « niveau 1 » ou « critique pour l’entreprise », tandis que d’autres systèmes sont considérés comme étant de « niveau 2 » ou moins critiques pour l’entreprise, ce qui suppose moins de contraintes ou des configurations différentes.

La conception et la création d’un système pour répondre à un niveau de disponibilité prédéfini nécessitent une approche holistique qui prend en compte de nombreux aspects ou domaines différents :

  • Sélection minutieuse de composants logiciels et matériels de qualité supérieure spécialement conçus pour réduire le temps moyen entre les pannes (MTBF), plutôt que d’utiliser des composants de base.
  • Élimination de tout point de défaillance unique dans le système en assurant la redondance de tous les composants. Un point de défaillance unique est un logiciel ou un matériel qui, en cas de défaillance, rend l’ensemble du système indisponible. Avec un point de défaillance unique, un système peut tolérer la défaillance d’un composant sans affecter sensiblement la disponibilité.
  • Mise en place et test de plans permettant de rétablir un système s’il devenait effectivement indisponible. Cela peut consister à indiquer combien de temps il faudra pour rendre le système à nouveau opérationnel et à spécifier le niveau de perte de données acceptable.
  • Instauration de politiques et de procédures en mettant l’accent sur la gestion du changement afin de minimiser les risques d’interruptions accidentelles ou involontaires, par exemple en raison d’une erreur humaine.

La mise en place d’un système capable de répondre à des exigences de disponibilité plus élevées nécessite généralement un investissement initial et continu important en temps et en ressources, par rapport à un système de base qui ne répond qu’à un niveau standard de disponibilité. Cependant, la haute disponibilité n’est pas une question de tout ou rien. Il est souvent utile de se demander s’il existe des sous-systèmes pour lesquels les objectifs de disponibilité peuvent être assouplis sans affecter, de manière significative, la valeur commerciale d’un système informatique. 

Considérations relatives à la conception

Lorsque vous concevez un système hautement disponible, vous partez rarement d’une page blanche. Dans la plupart des cas, l’infrastructure informatique actuelle, les politiques, l’expertise et les préférences d’une organisation détermineront le cadre global qu’un système SIG d’entreprise doit prendre en charge. Il en va de même pour les attentes en matière de temps de fonctionnement ou de disponibilité des systèmes auxiliaires et les composants informatiques permettant d’atteindre un niveau élevé de disponibilité. Chaque décision en matière de conception peut donner lieu à une autre décision. Le processus de conception peut être considéré, au final, comme un ensemble de contraintes de conception qui permettent d’atteindre le compromis idéal : le système répond aux exigences globales, respecte les normes déjà définies par l’organisation et garantit l’équilibre entre les coûts, la facilité de gestion et différents autres facteurs.

Souvent, les contraintes de conception entrent dans les catégories suivantes :

  • Besoins de l’entreprise : les exigences commerciales d’une entreprise déterminent le temps d’arrêt acceptable (compris entre 0 et plusieurs heures ou jours d’immobilisation) avant que le système ne soit restauré. C’est ce qu’on appelle l’objectif de temps de reprise (RTO). Les besoins de l’entreprise permettent aussi de déterminer la perte de données, exprimée en temps, qui peut être tolérée en cas de défaillance. C’est ce qu’on appelle lobjectif de point de reprise (RPO). Celui-ci varie généralement entre zéro seconde et une semaine de perte de données.
  • Modèle de déploiement : le choix d’un modèle de déploiement donné prédétermine souvent le niveau de disponibilité pris en compte dans les décisions de conception détaillées. En d’autres termes, lors de la création d’un système reposant sur des offres SaaS ou PaaS, bon nombre de ces décisions ont déjà été prises par l’organisation qui héberge l’offre. D’autre part, le déploiement du logiciel GIS Server dans un centre de données détenu et géré par votre organisation offre le plus haut niveau de flexibilité pour répondre à vos exigences de disponibilité exactes. Il implique également des responsabilités importantes.
  • Infrastructure : dans la plupart des cas, les professionnels de l’informatique qui conçoivent et construisent des systèmes SIG à déployer dans les centres de données exploités par votre organisation n’ont pas besoin de se soucier de l’infrastructure physique de base (structures d’hébergement, alimentation, refroidissement et réseau, par exemple). Celle-ci est déjà établie et offre généralement des niveaux élevés de disponibilité pour chacune de ces fonctionnalités de base.
  • Maintenance : sur certains systèmes, la capacité de corriger ou de mettre à jour les systèmes sans temps d’arrêt est essentielle pour s’assurer que les utilisateurs ne sont pas affectés ou que d’autres systèmes sont en mesure de fonctionner en continu. Dans ce type de scénario, il peut être opportun d’appliquer régulièrement des correctifs ou d’utilisation d’un environnement bleu-vert ou principal/secours, mais l’impact potentiel des actions de maintenance souhaitées et la cadence de maintenance sont importants à prendre en compte dans toute conception de système.

De même, les services informatiques peuvent fortement limiter l’éventail des choix en matière d’infrastructure (marques et modèles spécifiques pour les équipements, les couches de virtualisation, les systèmes de stockage, les équilibreurs de charge, les proxys inverses, etc.).

L’exploitation d’une infrastructure commerciale en tant que service (IaaS) basée sur le Cloud, qu’il s’agisse de machines virtuelles ou de clusters Kubernetes, limite également vos options.

  • Logiciels : les niveaux de disponibilité élevés pris en charge par les composants logiciels qui composent un système varient. Cela peut aller d’une absence totale de prise en charge à des configurations de haute disponibilité entièrement prises en charge et documentées. Ils diffèrent également en termes de degré : tous les niveaux de disponibilité ne peuvent pas être atteints avec un logiciel donné, ce qui limite alors le SLA, le RPO ou le RTO.
  • Personnes et processus : il est souvent préférable de tirer parti de processus et de procédures établis pour créer et gérer des systèmes hautement disponibles déjà mis en place par votre organisation, afin de profiter de l’expertise existante.

Modèles de haute disponibilité

En ce qui concerne ArcGIS Enterprise, la haute disponibilité fait référence aux mesures qui accroissent la disponibilité d’un seul déploiement d’ArcGIS Enterprise. Les déploiements répliqués, normalement répartis géographiquement dans un autre centre de données ou dans une autre région du stockage Cloud, offrent une fonction de récupération d’urgence. Pour plus d’informations, voir Haute disponibilité dans ArcGIS Enterprise.

ArcGIS Enterprise offre des niveaux de disponibilité plus élevés en associant plusieurs machines dans différentes configurations. Les composants d’ArcGIS Enterprise utilisent différentes approches pour atteindre la haute disponibilité :

Portal for ArcGIS

Un site de portail à haute disponibilité (HA) se compose de deux serveurs qui sont regroupés pour créer le site HA. Chaque serveur est entièrement redondant, mais le système conserve une machine en tant que nœud principal et l’autre machine en tant que nœud de secours. En cas de défaillance de la machine principale, la machine de secours détecte le dysfonctionnement et assume le rôle de machine principale.

Au niveau du serveur Web, le système est actif-actif, car chaque nœud de portail est capable de traiter les requêtes entrantes et les index de recherche sont synchronisés sur les deux systèmes. Cependant, un seul nœud gère les changements d’état. Les mises à jour, les invitations de membres et les configurations sont enregistrées dans la base de données du portail, de sorte que le système global est considéré comme actif-passif.

Un portail à haute disponibilité nécessite également un équilibreur de charge pour répartir les requêtes entre les deux nœuds, généralement de manière circulaire (mode tourniquet ou round robin). Le nœud principal et le nœud de secours partagent leur état grâce à la communication entre les machines via les ports et la synchronisation de base de données. Ils se basent également sur le stockage de fichiers partagé pour le répertoire de contenu du portail, qui peut être un partage de fichiers NFS, un partage de fichiers UNC ou un stockage d’objets natif du Cloud.

Découvrez-en davantage sur la configuration d’un déploiement Portal for ArcGIS à haute disponibilité.

Serveur SIG

Un site de serveur SIG hautement disponible se compose d’au moins deux machines entièrement redondantes. Celles-ci sont regroupées dans un « site » ArcGIS Server où les charges de travail sont équilibrées en charge sur tous les nœuds, ce qui correspond à une configuration de type actif-actif. Un serveur SIG hautement disponible nécessite également un équilibreur de charge pour transférer les requêtes vers les machines membres. , en suivant généralement une approche circulaire (round robin), bien que le trafic Web puisse également être acheminé en appliquant le modèle principal-secours.

Les machines d’un site partagent leur état principalement par le biais d’un emplacement de stockage partagé pour les répertoires du serveur et le magasin de configuration (généralement un partage de fichiers de type NFS ou UNC). Dans le cas des systèmes Cloud, des options Cloud natives sont également disponibles pour le magasin de configuration, telles que le stockage DynamoDB et S3 dans AWS ou le stockage Azure Files dans Microsoft Azure.

note « Remarque » Il convient de noter que certains rôles de serveur SIG spécialisés, tels que GeoEvent Server, ne peuvent pas être configurés pour s’exécuter dans un site à plusieurs machines. Par conséquent, des considérations particulières s’appliquent pour atteindre des niveaux de disponibilité plus élevés pour ces rôles de serveur SIG.

Pour savoir comment effectuer un déploiement à haute disponibilité d’ArcGIS Server, voir Configurer des sites ArcGIS Server à plusieurs machines. Vous trouverez également des informations utiles dans la section Déploiement sur une seule machine haute disponibilité (actif-actif).

Web Adaptor

L’adaptateur Web Adaptor peut être déployé de manière redondante sur deux machines ou plus, chaque instance étant entièrement redondante dans une configuration de type actif-actif. Cette configuration nécessite un équilibreur de charge front-end (vers lequel sont adressées les requêtes des clients) qui répartit les requêtes sur les deux hôtes de l’adaptateur Web Adaptor. D’autres ressources sont disponibles dans la documentation.

ArcGIS Data Store

Data store relationnel : un data store relationnel à haute disponibilité est constitué d’exactement deux instances entièrement redondantes dans une configuration d’agrégat actif-actif. En cas de défaillance de la machine de data store principale, la machine de secours détecte le dysfonctionnement et assume le rôle de machine principale, ce qui permet aux clients de continuer à utiliser les services d’entités hébergés sans interruption.

Graph data store : un graph data store à haute disponibilité est constitué d’exactement trois instances entièrement redondantes dans une configuration d’agrégat actif-actif.

Object store : la haute disponibilité de l’object store est prise en charge en mode cluster. Cette architecture nécessite au moins trois machines. En mode cluster, les données sont répliquées sur les trois machines afin que le Data store reste disponible en cas de panne d’une seule machine.

Spatiotemporal Big Data Store : ce type de Data store prend également en charge le mode cluster. Les clusters doivent contenir un nombre impair de machines (ce qui est nécessaire pour trouver entre les membres) ainsi qu’un minimum de trois machines. Ces configurations sont toutes des configurations de haute disponibilité de type actif-actif.

La rubrique de la documentation Configurer des data stores gérés à haute disponibilité fournit des conseils, des étapes et des recommandations supplémentaires.

Base de données relationnelles

La disponibilité des ressources de base de données est un domaine spécialisé de l’architecture. Chaque offre de base de données donne accès à de nombreuses options spécifiques au fournisseur, y compris des modèles de configuration actif-actif et actif-passif. En général, ArcGIS peut se connecter à ces configurations lorsque le processus d’inscription des données (par l’intermédiaire duquel les services sont consultés ou publiés) utilise un alias DNS ou une adresse IP flexible. Ceux-ci sont toujours accessibles à partir d’ArcGIS, mais peuvent pointer vers une autre base de données back-end en cas de panne du système principal. Dans ce scénario, les composants ArcGIS ne sont pas conscients de la modification de la base de données back-end et continuent de fonctionner comme prévu, en supposant que les mêmes informations d’identification, schéma et lignes sont disponibles.

Recommandations relatives à la conception

Pour faire des choix éclairés et efficaces en matière de haute disponibilité, tenez compte des recommandations de conception suivantes :

  • Sauvegardes : faire des sauvegardes de votre déploiement ArcGIS est le moyen le plus simple d’éviter la perte de données et de réduire les temps d’arrêt. Cela vous permet de récupérer des éléments qui existaient au moment de la création de la sauvegarde et réduit considérablement le temps de reprise des opérations.
  • Gestion des systèmes en lecture seule et en lecture/écriture : si votre application ou votre système est un système en lecture seule (les utilisateurs se contentent d’afficher des données qui sont gérées ailleurs), il est plus simple d’obtenir une configuration à haute disponibilité, car une configuration de type actif-actif peut être utilisée. Si les modifications sont effectuées par les utilisateurs, dans un système de lecture/écriture, il existe généralement un mélange de niveaux actif-actif et actif-passif de l’architecture. Cela permet d’avoir une base de données d’enregistrements principale et active et de maintenir également le système en mode passif, de secours ou de basculement pour être prêt à recevoir du trafic en cas de panne.
  • Duplication et redondance : mettez en œuvre plusieurs instances de composants système spécifiques, y compris la redondance géographique, afin de réduire les points de défaillance uniques. Tenez compte des compétences requises pour entretenir le système. Considérez qu’une personne peut tout aussi bien être un point de défaillance unique.
  • Plans de test et surveillance du système : évaluez la capacité du système à répondre au niveau de service requis en testant les fonctions de charge, de performance et de basculement. Tous les plans de test et les activités associées doivent faire partie de la gouvernance globale de votre système. Surveillez en permanence le système pour corriger les problèmes avant qu’ils ne provoquent une panne généralisée ou irrécupérable.
  • Parmi les autres bonnes pratiques en matière de haute disponibilité, citons l’automatisation, la collaboration, l’équilibrage de charge et la séparation des charges de travail.
Top