2.1 A propos de la mise en grappe des serveurs d’applications

Une grappe est un groupe d’instances de serveur d’applications qui s’exécutent simultanément. Ce groupe agit comme un système unique, ce qui permet une haute disponibilité et un équilibrage de la charge. Dans une grappe, plusieurs instances de serveur peuvent être exécutées sur le même ordinateur (grappe verticale), se trouver sur plusieurs ordinateurs (grappe horizontale) ou former une combinaison des grappes verticale et horizontale. Avec la mise en grappe, le travail du client peut être réparti sur plusieurs nœuds, au lieu d’être traité par un seul serveur d’applications.

Dans une configuration en grappe, les instances de serveur d’applications sont des membres de la grappe et doivent toutes présenter le déploiement des mêmes composants d’applications. Toutefois, sauf pour les applications configurées, les membres d’une grappe ne partagent pas nécessairement les autres paramètres de configuration. Par exemple, vous pouvez mettre en grappe plusieurs instances de serveur sur un ordinateur, ainsi qu’une instance unique sur un autre ordinateur, à condition qu’elles exécutent toutes la même version de serveur d’applications.

Grâce à la mise en grappe, vous bénéficiez d’au moins un des avantages suivants. Les avantages réels dépendent de la méthode de mise en œuvre de la mise en grappe :

  • Basculement

  • Equilibrage de la charge

  • Evolutivité

2.1.1 Basculement

Le basculement permet à une ou plusieurs instances de serveur d’applications d’agir comme sauvegarde d’une instance de serveur d’applications qui a échoué et de rétablir le traitement de la tâche, autorisant ainsi un autre serveur d’applications à poursuivre le traitement. Toutefois, si un serveur d’applications échoue lors d’une transaction, le serveur d’applications de sauvegarde ne rétablit pas l’état de l’instance échouée. Par exemple, si un serveur échoue alors qu’un utilisateur entre des données dans un formulaire, il est possible qu’il soit nécessaire d’entrer de nouveau les données.

2.1.2 Equilibrage de la charge

L’équilibrage de la charge est une technique permettant de répartir le travail sur plusieurs systèmes, afin qu’aucun périphérique ne soit surchargé. Si un serveur commence à être saturé ou surchargé, les requêtes sont transférées vers un autre serveur doté d’une plus grande capacité.

2.1.2.1 Equilibrage de la charge sur les serveurs d’applications

L’équilibrage de la charge sur les serveurs d’applications permet de gérer la charge sur plusieurs serveurs d’applications. Les serveurs d’applications peuvent être configurés pour utiliser une stratégie de routage séquentiel pondéré, qui permet une répartition équilibrée du routage, en fonction des jeux de poids de serveur attribués aux membres d’une grappe. Si tous les serveurs de la grappe sont configurés pour avoir le même poids, la charge est répartie et chaque serveur reçoit sensiblement le même nombre de requêtes. Si le poids est plus important sur certains serveurs, ceux-ci reçoivent plus de requêtes.

Les configurations de routage peuvent également être configurées pour vérifier, par exemple, que seuls les membres de la grappe situés sur ce nœud sont sélectionnés (à l’aide d’une méthode de pondération séquentielle) et que les membres de la grappe situés sur des nœuds distants ne sont sélectionnés qu’en cas d’indisponibilité du serveur local. L’équilibrage de la charge sur les serveurs d’applications est la meilleure méthode pour un équilibrage sur plusieurs niveaux.

2.1.2.2 Equilibrage de la charge sur les serveurs Web

L’équilibrage de la charge sur les serveurs Web permet de mettre en attente et de limiter les requêtes. Pour le serveur Apache HTTP, la méthode d’équilibrage de la charge la plus utilisée est le système DNS séquentiel.

Le système DNS séquentiel est une méthode d’équilibrage de la charge relativement simple. Un serveur de noms de domaine (DNS) attribue un nom à la résolution d’adresses et s’active dès qu’un nom d’hôte est inclus dans une URL. Un serveur DNS séquentiel peut décomposer un nom d’hôte unique en plusieurs adresses IP, de manière à ce que les requêtes d’une URL (contenant un nom d’hôte) indiquent en réalité différents serveurs Web. Le client demande une résolution de noms pour le nom d’hôte, mais il reçoit en fait différentes adresses IP et répartit donc la charge entre les serveurs Web. Dans une configuration simple, le serveur DNS séquentiel consulte sans cesse la liste des serveurs disponibles.

2.1.3 Evolutivité et disponibilité

L’évolutivité d’une grappe signifie qu’un administrateur peut augmenter la capacité de l’application en fonction de la demande, sans pour autant interrompre ou affecter négativement son fonctionnement. Les grappes permettent aux administrateurs de supprimer des nœuds d’une grappe pour mettre à niveau des composants, tels que la mémoire, ou d’ajouter des nœuds à la grappe, sans détruire la grappe elle-même.