Les stratégies de disponibilité possibles pour les déploiements Java Enterprise System sont les suivantes :
Équilibrage de charge : utilisez des composants matériels et logiciels redondants pour répartir la charge de traitement. Un équilibreur de charge dirige une demande de service vers une des instances symétriques de ce service. Si une instance échoue, les autres peuvent assumer sa charge de travail.
Basculement : implique la gestion de matériels et de logiciels redondants afin que l'accès aux services et que la sécurité des données essentielles ne soient pas compromis en cas de problème lié à un composant.
Le logiciel Sun Cluster propose une solution de basculement pour les données essentielles gérées par des composants d'arrière-plan tels la mémoire des messages pour Messaging Server et les données de calendrier pour Calendar Server.
Réplication des services : cette fonction fournit plusieurs sources d'accès aux même données. Directory Server propose de nombreuses stratégies de réplication et de synchronisation pour l'accès aux annuaires LDAP.
Les sections ci-après décrivent des exemples de solutions de disponibilité fournissant divers niveaux d'équilibrage de charge, de basculement et de réplication des services.
Toutes les ressources de traitement d'un service sont placées sur un seul serveur. Si ce dernier tombe en panne, le service ne peut plus fonctionner.
Sun fournit des serveurs haut de gamme permettant de bénéficier des avantages suivants :
remplacement et reconfiguration des composants matériels en cours d'exécution du système ;
possibilité d'exécuter plusieurs applications dans des domaines sécurisés sur le serveur ;
possibilité de mettre à niveau la capacité, les performances et la configuration des E/S sans redémarrer le système.
Un serveur haut de gamme coûte généralement plus cher qu'un système multiserveur comparable. Toutefois, il se révèle plus économique en termes d'administration, de contrôle et d'hébergement. Les systèmes multiserveurs offrent une plus grande souplesse en termes d'équilibrage de charge, de basculement et de suppression de points de panne uniques.
Les serveurs redondants parallèles offrant des fonctions d'équilibrage de charge et de basculement, ils permettent d'améliorer la disponibilité de plusieurs façons. Le schéma ci-dessous montre deux serveurs répliqués constituant un système à basculement N+1. Dans ce type de système, un serveur supplémentaire est destiné à assumer 100 % de la charge en cas de panne de l'autre serveur.
La puissance de traitement de chaque serveur dans des Systèmes à redondance horizontale (voir ci-dessus) est identique. Un serveur peut à lui seul satisfaire les exigences de performances. L'autre serveur offre exactement les mêmes performances lorsqu'il est utilisé en tant que serveur de rechange.
Dans ce type de conception, 100% des performances sont assurées en cas de basculement. En revanche, les investissements matériels élevés sans amélioration des performances (puisque l'un des serveurs est utilisé en cas de basculement uniquement) représentent un inconvénient majeur.
Le schéma suivant illustre un système mettant en œuvre l'équilibrage de charge et le basculement, et répartissant les performances entre deux serveurs.
Dans le système représenté à la section Systèmes à redondance horizontale, si un serveur tombe en panne, tous les services restent disponibles, mais pas à 100 %. En effet, le second serveur comporte six CPU qui permettent de prendre en charge 60 % de la charge totale (10 CPU).
Cette conception offre l'avantage d'autoriser une capacité latente (deux CPU) lorsque les deux serveurs sont disponibles.
Le schéma ci-dessous illustre une répartition des performances et de l'équilibrage de charge entre plusieurs serveurs.
La conception illustrée à la section Systèmes à redondance horizontale comportant cinq serveurs, si l'un d'eux tombe en panne, les autres fournissent un total de huit CPU, soit 80 % des exigences de performances (10 CPU). Si vous ajoutez un serveur doté de deux CPU, vous obtenez une conception N+1. En cas de panne de l'un des serveurs, 100 % des performances sont maintenues grâce aux autres serveurs.
Cette solution offre les avantages suivants :
performance accrue en cas de panne d'un serveur ;
disponibilité même en cas de panne de plusieurs serveurs ;
possibilité de mettre les serveurs hors service pour la maintenance et les mises à niveau ;
dépenses réduites, car plusieurs serveurs d'entrée de gamme coûtent moins cher qu'un seul serveur haut de gamme.
Toutefois, plus le nombre de serveurs augmente, plus les coûts d'administration et de maintenance sont élevés, sans compter les frais d'hébergement des serveurs dans un centre de données. De plus, il arrive un moment où l'ajout de serveurs finit par entraîner plus d'inconvénients que d'avantages.
Dans les situations exigeant un degré élevé de disponibilité (quatre ou cinq neuf), vous pouvez envisager d'intégrer le logiciel Sun Cluster dans votre conception de déploiement. Un cluster associe des serveurs redondants à des ressources de stockage et d'autres ressources réseau. Les serveurs d'un cluster sont en communication permanente les uns avec les autres. En cas de mise hors ligne d'un serveur, les autres dispositifs du cluster l'isolent et font basculer les applications ou les données du nœud en panne vers un autre nœud. Le basculement s'effectue rapidement sans que les utilisateurs du système aient à subir une longue interruption des services.
Sun Cluster exige du matériel supplémentaire spécialisé et des connaissances particulières en matière de configuration, d'administration et de maintenance.