Guide de planification du déploiement de Sun Java Enterprise System 2005Q4

Chapitre 5 Conception du déploiement

Au cours de la phase de conception du déploiement de la solution, vous préparez une architecture de déploiement de haut niveau et une spécification d'implémentation de bas niveau, et élaborez un ensemble de plans et de spécifications nécessaires à l'implémentation de la solution. L'approbation du projet intervient au cours de cette phase.

Il se compose des sections suivantes:

À propos de la conception du déploiement

La conception du déploiement se fonde sur le scénario de déploiement créé au cours des phases de conception logique et de spécifiation technique du cycle de vie de la solution. Un scénario de déploiement présente l'architecture logique associée aux exigences de qualité de service (QoS) pour cette solution. Pour créer une architecture de déploiement, vous mappez les composants identifiés dans l'architecture logique sur les serveurs physiques et les autres périphériques réseau. Les exigences de qualité de service permettent de configurer le matériel en vue d'obtenir des performances, une disponibilité et une évolutivité optimales.

La conception de l'architecture de déploiement est un processus itératif. Celui-ci consiste généralement à réexaminer les exigences de qualité de service et les conceptions préliminaires. Vous devez tenir compte des relations existant entre les différentes exigences de qualité de service ainsi que des problèmes liés aux coûts de possession et, après avoir évalué les avantages et les inconvénients, parvenir à une solution optimale permettant d'atteindre les objectifs d'exploitation du projet.

Approbation du projet

L'approbation du projet intervient au cours de la phase de conception du déploiement, généralement après la création de l'architecture de déploiement. À l'aide de l'architecture de déploiement et, éventuellement, des spécifications d'implémentation décrites ci-dessous, le coût réel du déploiement est estimé et soumis aux parties prenantes pour approbation. Une fois le projet approuvé, les contrats relatifs à l'exécution du déploiement sont signés et les ressources destinées à l'implémentation du projet sont acquises et allouées.

Résultats de la conception du déploiement

Lors de la phase de conception du déploiement, vous pouvez préparer les spécifications et les plans suivants :

Facteurs influant sur la conception du déploiement

Les décisions prises lors de la conception du déploiement sont influencées par un certain nombre de facteurs. Ces facteurs sont les suivants :

Méthodologie de conception du déploiement

Au même titre que les autres aspects du déploiement, la conception ne relève pas uniquement de la science pure ; c'est pourquoi elle ne peut faire l'objet de procédures et de processus systématiques. L'expérience en matière de conception, une connaissance de l'architecture des systèmes, la compréhension du domaine et un effort de réflexion créative constituent autant de facteurs contribuant à la réussite d'un déploiement.

L'objectif principal de la conception du déploiement consiste à répondre aux exigences de performances tout en satisfaisant celles relatives à la qualité de service. Les stratégies adoptées doivent présenter des avantages malgré les compromis impliqués par vos décisions de conception afin d'optimiser la solution. La méthodologie utilisée comprend généralement les étapes suivantes :

Estimation de la puissance de traitement

Cette section décrit un processus permettant d'estimer le nombre de processeurs et la quantité de mémoire nécessaires pour prendre en charge les services d'une conception de déploiement. Elle présente un exemple de processus appliqué à un déploiement dans le secteur des communications.

L'estimation de la puissance de traitement des CPU est un processus itératif prenant en compte les éléments suivants :

Le processus d'estimation s'articule autour des étapes décrites ci-dessous. Bien qu'il ne soit pas essentiel, l'ordre de ces étapes fournit un exemple de méthode à suivre lors de la prise en compte des facteurs susceptibles d'influencer le résultat final.

  1. Définissez une estimation du nombre de CPU requises pour les composants identifiés en tant que points d'entrée utilisateur dans le système.

    Vous devez décider si les CPU doivent supporter une charge complète ou partielle. Une charge complète augmente la capacité du système. L'augmentation de la capacité vous expose néanmoins à une hausse des coûts de maintenance et à des temps d'indisponibilité dus à l'ajout de CPU. Dans certains cas, vous pouvez décider d'ajouter des machines pour répondre à l'augmentation des exigences en matière de performances.

    Une charge partielle permet de faire face aux exigences de performances supplémentaires sans hausse immédiate des coûts de maintenance. Toutefois, un système sous-utilisé entraîne une augmentation des frais directs.

  2. Modifiez l'estimation du nombre de CPU requises en fonction des interactions entre composants.

    Examinez ces interactions dans l'architecture logique afin de déterminer la charge supplémentaire entraînée par les dépendances entre composants.

  3. Dans l'analyse d'utilisation, examinez les cas d'utilisation afin d'identifier les charges de pointe, puis effectuez les ajustements nécessaires pour les composants qui gèrent ces charges.

    Commencez par les cas pour lesquels la charge est la plus importante, puis passez en revue tous les autres cas pour prendre en compte l'intégralité des scénarios d'utilisation prévus.

  4. Modifiez le nombre de CPU estimé en fonction des exigences de sécurité, de disponibilité et d'évolutivité.

Les estimations établies constituent un point départ à partir duquel déterminer la puissance de traitement réelle dont vous avez besoin. Elles vous permettront également de créer des prototypes de déploiement, que vous soumettrez à des tests rigoureux en fonction des cas d'utilisation prévus. Seul un test itératif vous permettra de déterminer les besoins réels d'une conception de déploiement en termes de puissance de traitement.

Exemple d'estimation de la puissance de traitement

Cette section illustre une méthode d'estimation de la puissance de traitement requise pour un exemple de déploiement. Cet exemple est fondé sur l'architecture logique d'une solution de communications basées sur les identités pour une entreprise de taille moyenne d'environ 1 000 à 5 000 salariés, tel que décrit dans la section Exemple de communications basées sur les identités.

Les estimations mentionnées pour les CPU et la mémoire sont arbitraires et fournies à titre d'exemple uniquement. Elles sont fondées sur les données arbitraires sur lesquelles s'appuie l'exemple. Seule une analyse exhaustive de divers facteurs permet d'établir les besoins en termes de puissance de traitement. Cette analyse porte notamment sur les éléments suivants :


Attention – Attention –

Les informations présentées dans les exemples ci-après ne constituent pas des conseils d'implémentation à proprement parler. Elles sont uniquement destinées à illustrer un processus que vous serez peut-être amené à utiliser lors de la conception d'un système.


Estimation du nombre de CPU requises pour les points d'entrée utilisateur

Commencez par évaluer le nombre de CPU nécessaires pour gérer la charge incombant à chaque composant représentant un point d'entrée utilisateur. Le schéma ci-dessous illustre l'architecture logique d'un scénario de communications basées sur les identités décrit dans la section Exemple de communications basées sur les identités.

Figure 5–1 Architecture logique d'un scénario de communications basées sur les identités

Diagramme montrant les composants logiques d'un scénario de communications basées sur les identités déployé dans une architecture à plusieurs niveaux.

Le tableau ci-dessous répertorie les composants du niveau présentation de l'architecture logique qui fournissent une interface directe aux utilisateurs finals du déploiement. Il présente une estimation de base du nombre de CPU requises, obtenue à partir de l'analyse des exigences techniques, des cas d'utilisation, de l'analyse d'utilisation spécifique et de l'expérience acquise grâce à des déploiements similaires.

Tableau 5–1 Estimation du nombre de CPU pour les composants contenant des points d'entrée utilisateur

Composant 

Nombre de CPU 

Description 

Portal Server 

Composant constituant un point d'entrée utilisateur. 

Communications Express 

Achemine les données vers les canaux de messagerie et de calendrier de Portal Server. 

Inclusion du nombre de CPU estimé pour les services dépendants

Les composants fournissant des points d'entrée utilisateur doivent être secondés par d'autres composants Java Enterprise System. Au cours de la définition des exigences de performances, incluez les estimations de performances requises pour les composants de support. Les types d'interactions entre composants doivent être décrits en détail lors de la conception de l'architecture logique, comme le montrent les exemples d'architecture logique présentés à la section Exemple d'architecture logique.

Tableau 5–2 Estimation du nombre de CPU pour les composants de support

Composant 

Nombre de CPU 

Description 

Messaging Server MTA (entrant) 

Achemine les messages entrants depuis Communications Express et les clients de messagerie. 

Messaging Server MTA (sortant) 

Achemine les messages sortants vers les destinataires. 

Messaging Server MMP

Accède à la mémoire des messages de Messaging Server pour les clients de messagerie. 

Messaging Server STR (Message Store)

Extrait et stocke les messages. 

Access Manager

Fournit des services d'authentification et d'autorisation. 

Calendar Server (arrière-plan)

Extrait et stocke les données de calendrier pour Communications Express, composant frontal de Calendar Server.  

Directory Server

Fournit les services d'annuaire LDAP. 

Web Server

Fournit la prise en charge de conteneur Web pour Portal Server et Access Manager. 

(Aucun cycle de CPU supplémentaire n'est nécessaire.) 

Étude des cas d'utilisation pour les charges de pointe

Revenez aux cas d'utilisation et à l'analyse d'utilisation pour identifier les situations de charge de pointe et modifiez vos estimations en conséquence.

Toujours dans le cadre de notre exemple, supposons que vous releviez les conditions de charge de pointe suivantes :

Pour prendre en compte ces conditions, vous devez effectuer des ajustements pour les composants fournissant ces services. Le tableau ci-dessous décrit les ajustements à effectuer.

Tableau 5–3 Ajustement de l'estimation du nombre de CPU pour les charges de pointe

Composant 

Nombre de CPU (ajusté) 

Description 

Messaging Server MTA (entrant) 

Ajoutez une CPU pour les messages entrants supplémentaires 

Messaging Server MTA (sortant) 

Ajoutez une CPU pour les messages sortants supplémentaires 

Messaging Server MMP 

Ajoutez une CPU pour la charge supplémentaire 

Messaging Server STR (Message Store) 

Ajoutez une CPU pour la charge supplémentaire 

Directory Server 

Ajoutez une CPU pour les recherches LDAP supplémentaires 

Modification des estimations pour les autres conditions de charge

Poursuivez votre estimation du nombre de CPU en tenant compte des autres exigences de qualité de service susceptibles d'avoir un impact sur la charge :

Mise à jour du nombre de CPU estimé

Il est généralement préférable d'avoir un nombre pair de CPU. Cela permet de diviser équitablement le nombre de CPU entre deux serveurs physiques et d'ajouter un petit facteur pour la capacité latente. Toutefois, lorsque vous définissez le nombre de CPU, tenez compte de vos besoins spécifiques en matière de réplication des services.

Comptez normalement deux gigaoctets de mémoire pour chaque CPU. La quantité réelle de mémoire requise dépend de vos besoins spécifiques. Elle peut être déterminée en phase de test.

Le tableau ci-dessous indique les estimations finales pour l'exemple de communications basées sur les identités. Ces estimations ne tiennent pas compte de la puissance de traitement éventuellement ajoutée à des fins de sécurité et de disponibilité. Ces valeurs seront ajoutées dans les sections qui suivent.

Tableau 5–4 Ajustement de l'estimation du nombre de CPU pour les composants de support

Composant 

Nombre de CPU 

Mémoire 

Portal Server 

8 Go 

Communications Express 

4 Go 

Messaging Server (MTA, entrant) 

4 Go 

Messaging Server (MTA, sortant) 

4 Go 

Messaging Server (MMP) 

4 Go 

Messaging Server (Message Store) 

4 Go 

Access Manager 

4 Go 

Calendar Server 

4 Go 

Directory Server 

8 Go (valeur arrondie à partir de 3 CPU pour 6 Go de mémoire) 

Web Server  

Estimation de la puissance de traitement requise pour les transactions sécurisées

Le transport sécurisé de données implique le traitement des transactions par le biais d'un protocole de transport sécurisé tel SSL (Secure Sockets Layer) ou TLS (Transport Layer Security). Ces transactions exigent généralement une puissance de traitement supplémentaire pour établir une session sécurisée (handshake), puis pour chiffrer et déchiffrer les données transportées. Selon l'algorithme de chiffrement utilisé (40 ou 128 bits, par exemple), cette puissance supplémentaire peut être significative.

Pour que les transactions sécurisées puissent s'exécuter au même niveau que les transactions non sécurisées, vous devez prévoir une puissance de traitement supplémentaire. Selon leur nature et les services Sun JavaTM Enterprise System qui les gèrent, les transactions sécurisées peuvent exiger une puissance de traitement jusqu'à quatre fois supérieure à celle des transactions non sécurisées.

Lors de l'évaluation de la puissance de traitement destinée à gérer les transactions sécurisées, analysez les cas d'utilisation afin de déterminer le pourcentage de transactions nécessitant un transport sécurisé. Si les exigences de performances des transactions sécurisées sont identiques à celles des transactions non sécurisées, modifiez l'estimation du nombre de CPU en tenant compte de la puissance de traitement supplémentaire requise par les transactions sécurisées.

Dans certains scénarios d'utilisation, le transport sécurisé est requis uniquement pour l'authentification. Une fois l'utilisateur authentifié sur le système, aucune mesure de sécurité supplémentaire n'est appliquée au transport des données. Dans d'autres scénarios, le transport sécurisé est exigé pour toutes les transactions.

Par exemple, lors de la consultation d'un catalogue de produits sur un site d'e-commerce en ligne, il n'est pas nécessaire de sécuriser les transactions tant que le client n'a pas choisi tous ses articles et qu'il n'est pas prêt à effectuer le paiement. Toutefois, dans certains scénarios de déploiement appliqués à des banques ou à des agences immobilières, par exemple, la plupart des transactions doivent être sécurisées et les mêmes performances sont attendues de toutes les transactions, qu'elles soient ou non sécurisées.

Estimation du nombre de CPU pour les transactions sécurisées

Cette section utilise le même exemple de déploiement pour illustrer le mode de calcul du nombre de CPU nécessaires pour un cas d'utilisation hypothétique mettant en œuvre à la fois des transactions sécurisées et non sécurisées.

Pour estimer le nombre de CPU requises pour les transactions sécurisées, effectuez les calculs suivants :

  1. Partez d'une estimation du nombre de CPU requises (voir la section précédente, Exemple d'estimation de la puissance de traitement).

  2. Calculez le pourcentage de transactions exigeant un transport sécurisé, puis le nombre de CPU nécessaires pour ces transactions.

  3. Comptez un nombre de CPU inférieur pour les transactions non sécurisées.

  4. Additionnez les valeurs obtenues pour parvenir à une estimation du nombre total de CPU nécessaires.

  5. Arrondissez cette estimation à une valeur paire.

La section Estimation du nombre de CPU pour les transactions sécurisées montre un exemple de calcul fondé sur des cas d'utilisation et une analyse d'utilisation pour Portal Server et tenant compte des hypothèses suivantes :

Tableau 5–5 Modification du nombre de CPU estimé pour les transactions sécurisées

Étape 

Description 

Calcul 

Résultat 

Partez d'une estimation de base pour toutes les transactions Portal Server. 

Cette estimation, issue de la section Étude des cas d'utilisation pour les charges de pointe est de 4 CPU.

- - - - - 

Calculez l'estimation du nombre de CPU supplémentaires pour les transactions sécurisées. Supposez que celles-ci exigent une puissance de traitement quatre fois supérieure à celle des transactions non sécurisées. 

10% des transactions (estimation de base) doivent faire l'objet d'un transport sécurisé : 

 

0.10 x 4 CPUs = 0.4 CPUs

 

Augmentez la puissance de traitement pour les transactions sécurisées selon un facteur de 4 : 

 

4 x 0.4 = 1.6 CPUs

1,6 CPU 

Comptez un nombre de CPU inférieur pour les transactions non sécurisées. 

90% des transactions (estimation de base) ne sont pas sécurisées : 

 

0.9 x 4 CPUs = 3.6 CPUs

3,6 CPU 

Calculez le nombre total de CPU estimé pour les transactions sécurisées et non sécurisées.  

Transactions sécurisées + non sécurisées = total : 

 

1.6 CPUs + 3.6 CPUs = 5.2 CPUs

5,2 CPU 

Arrondissez le résultat à une valeur paire.  

5.2 CPUs ==> 6 CPUs

6 CPU 

Sur la base des calculs effectués pour les transactions sécurisées dans cet exemple, vous devez modifier le nombre total de CPU estimé à la section Estimation du nombre de CPU pour les transactions sécurisées en ajoutant deux CPU et quatre gigaoctets de mémoire afin de parvenir au total ci-dessous pour Portal Server :

Composant 

Nombre de CPU 

Mémoire 

Portal Server 

12 Go 

Matériel dédié au traitement des transactions SSL

Du matériel spécialisé, tel des cartes d'accélération SSL et d'autres équipements, est disponible pour fournir la puissance de traitement nécessaire à l'établissement de sessions sécurisées et au chiffrement/déchiffrement des données. Lorsque ce type de matériel est utilisé, une partie de la puissance de traitement est consacrée à certains calculs SSL, notamment l'opération de « handshake » permettant d'établir la session sécurisée.

L'utilisation de ce type de matériel peut être un avantage pour votre architecture de déploiement. Toutefois, en raison de son caractère spécialisé, il est préférable d'estimer les exigences de performances des transactions sécurisées d'abord en termes de puissance de traitement, puis d'envisager les avantages liés à l'utilisation de ce matériel pour gérer la charge supplémentaire.

Avant d'utiliser ce type de matériel, vous devez déterminer s'il est pris en charge par les cas d'utilisation (ceux qui nécessitent un grand nombre d'opérations de handshake SSL, par exemple) et tenir compte du surcroît de complexité qu'il engendre en termes de conception. Cette complexité se retrouve dans les opérations d'installation, de configuration, de test et d'administration du matériel.

Identification des stratégies de disponibilité

Lors de l'établissement d'une stratégie relative aux exigences de disponibilité, examinez les interactions entre composants et l'analyse d'utilisation pour identifier les solutions de disponibilité à envisager. Effectuez cette analyse composant par composant pour trouver la solution répondant le mieux aux exigences de disponibilité et de basculement.

Vous pouvez par exemple vous poser les questions suivantes pour mettre en place votre stratégie de disponibilité :

La stratégie de disponibilité choisie doit également tenir compte des exigences en termes d'entretien (voir section Conception pour une utilisation optimale des ressources). Évitez les solutions complexes exigeant des efforts de maintenance et d'administration importants.

Stratégies de disponibilité

Les stratégies de disponibilité possibles pour les déploiements Java Enterprise System sont les suivantes :

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.

Système à serveur unique

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.

Figure 5–2 Système à serveur unique

Serveur unique avec 10 CPU répondant aux exigences de performances.

Sun fournit des serveurs haut de gamme permettant de bénéficier des avantages suivants :

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.

Systèmes à redondance horizontale

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.

Figure 5–3 Système à basculement N+1 avec deux serveurs

Deux serveurs répliqués dotés chacun de 10 CPU afin de répondre aux exigences de performances (10 CPU).

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.

Figure 5–4 Équilibrage de charge et basculement entre deux serveurs

Deux serveurs dotés chacun de six CPU afin de répondre aux exigences de performances (10 CPU).

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.

Figure 5–5 Répartition de la charge entre n serveurs

Cinq serveurs dotés chacun de deux CPU afin de répondre aux exigences de performances (10 CPU).

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 :

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.

Logiciel Sun Cluster

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.

Exemples de conceptions de disponibilité

Cette section présente deux exemples de stratégies de disponibilité appliqués à une solution de communications basées sur les identités pour une entreprise de taille moyenne de 1 000 à 5 000 salariés, tel que décrit dans la section Exemple de communications basées sur les identités. La première stratégie illustre l'équilibrage de charge pour Messaging Server. La seconde illustre une solution de basculement faisant appel au logiciel Sun Cluster.

Exemple d'équilibrage de charge pour Messaging Server

Le tableau ci-dessous présente le nombre de CPU requises estimé pour chaque composant logique de Messaging Server dans l'architecture logique. Il reprend l'estimation finale calculée dans la section Mise à jour du nombre de CPU estimé .

Tableau 5–6 Ajustement de l'estimation du nombre de CPU pour les composants de support

Composant 

Nombre de CPU 

Mémoire 

Messaging Server (MTA, entrant) 

4 Go 

Messaging Server (MTA, sortant) 

4 Go 

Messaging Server (MMP) 

4 Go 

Messaging Server (Message Store) 

4 Go 

Pour cet exemple, supposons qu'au cours de la phase de spécification technique, les exigences de qualité de service suivantes aient été formulées :

Pour répondre aux exigences de disponibilité, prévoyez deux instances de chaque composant de Messaging Server, une sur chaque serveur. Si un serveur ou un composant ne fonctionne plus, l'autre le remplace. Le schéma ci-dessous présente un diagramme du réseau correspondant à cette stratégie de disponibilité.

Diagramme d'architecture montrant la disponibilité des composants Messaging Server MMP et MTA.

Sur le schéma ci-dessus, le nombre de CPU a doublé par rapport à l'estimation initiale. Cette augmentation est intervenue pour les raisons suivantes :

Exemple de basculement à l'aide du logiciel Sun Cluster

Le schéma ci-dessous montre un exemple de stratégie de basculement pour le composant d'arrière-plan Calendar Server et la mémoire de messages de Messaging Server. Le composant d'arrière-plan Calendar Server et la mémoire de messages sont répliqués sur des serveurs matériels différents et configurés pour le basculement à l'aide du logiciel Sun Cluster. Le nombre de CPU et la mémoire correspondante sont répliqués sur chaque serveur dans Sun Cluster.

Figure 5–6 Conception avec basculement utilisant le logiciel Sun Cluster

Diagramme d'architecture illustrant le composant d'arrière-plan de Calendar Server et la mémoire de messages de Message Server utilisant le logiciel Sun Cluster pour le basculement.

Exemple de réplication des services d'annuaire

Les services d'annuaire peuvent être répliqués de sorte que les transactions soient réparties sur différents serveurs, ce qui accroît la disponibilité. Directory Server fournit diverses stratégies de réplication des services, dont les suivants :

Les stratégies de disponibilité pour Directory Server sont un sujet complexe que le présent manuel ne traite pas. Les sections Réplication monomaître et Réplication multimaître fournissent une présentation générale des stratégies de réplication de base. Pour plus d'informations, reportez-vous au chapitre 12, Designing a Highly Available Deployment, dans Sun Java System Directory Server 5 2005Q1 Deployment Plannning Guide.

Réplication monomaître

Le schéma ci-dessous représente une stratégie de réplication monomaître illustrant les concepts de réplication de base.

Figure 5–7 Exemple de réplication monomaître

Diagramme montrant le flux de données pour une stratégie de réplication monomaître.

Dans le cadre de la réplication monomaître, une instance de Directory Server gère la base de données d'annuaire maître et consigne toutes les modifications. La base de données maître est répliquée sur un certain nombre de bases de données consommateur. Les instances consommateur de Directory Server sont optimisées pour les opérations de lecture et de recherche. Toute opération d'écriture reçue par un consommateur est renvoyée vers le maître, et celui-ci met à jour les bases de données consommateur de manière régulière.

Les avantages de la réplication monomaître sont les suivants :

Réplication multimaître

Le schéma ci-dessous illustre une stratégie de réplication multimaître permettant une distribution globale des accès à l'annuaire.

Avec la réplication multimaître, une ou plusieurs instances de Directory Server gèrent la base de données d'annuaire maître. Chacun de ces maîtres dispose d'un contrat de réplication décrivant les procédures de synchronisation des bases de données maître. Chaque maître est répliqué sur un nombre quelconque de bases de données consommateur. Comme dans le cadre de la réplication monomaître, les instances consommateur de Directory Server sont optimisées pour l'accès en lecture et en recherche. Toute opération d'écriture reçue par un consommateur est renvoyée vers le maître, et celui-ci met à jour les bases de données consommateur de manière régulière.

Figure 5–8 Exemple de réplication multimaître

Diagramme montrant le flux de données pour une stratégie de réplication multimaître.

La stratégie de réplication multimaître présente les mêmes avantages que la réplication monomaître, auxquels vient s'ajouter une disponibilité permettant l'équilibrage de charge lors des mises à jour du maître. Vous pouvez également implémenter une stratégie de disponibilité fournissant un contrôle local des opérations d'annuaire, importante pour les entreprises utilisant des centres de données distribués.

Identification des stratégies d'évolutivité

L'évolutivité se définit comme la possibilité d'augmenter la capacité du système, généralement via l'ajout de ressources système, sans pour autant modifier l'architecture de déploiement. Au cours de l'analyse des exigences, vous planifiez la croissance prévue du système en fonction des exigences de l'entreprise et des analyses d'utilisation correspondantes. Ces estimations du nombre d'utilisateurs et de la capacité du système à répondre à leurs besoins peuvent être très différentes des chiffres réels observés sur le système déployé. Votre conception doit fournir la souplesse nécessaire pour prendre en compte les différences par rapport aux estimations.

Une conception évolutive prévoit une capacité latente suffisante pour gérer les augmentations de charge de travail, jusqu'à ce que des ressources supplémentaires soient ajoutées au système. Elle doit pouvoir être adaptée sans être entièrement repensée.

Capacité latente

La capacité latente est un aspect de l'évolutivité consistant à ajouter des ressources de performances et de disponibilité au système de sorte que celui-ci soit en mesure de faire face aux charges de pointe. Dans un système déployé, vous pouvez également contrôler son utilisation afin de déterminer le moment où des ressources doivent être ajoutées au système. La capacité latente est un facteur de sécurité de votre conception.

L'analyse des cas d'utilisation peut permettre d'identifier les scénarios susceptibles d'entraîner des charges de pointe inhabituelles. Utilisez cette analyse et un facteur représentant la croissance imprévue du système pour définir la capacité latente et améliorer la sécurité du système.

La conception du système doit permettre de gérer la capacité prévue pendant un délai raisonnable, c'est-à-dire pendant les 6 à 12 premiers mois d'utilisation. Les cycles de maintenance peuvent être utilisés pour ajouter des ressources ou augmenter la capacité en cas de besoin. Idéalement, vous devriez pouvoir planifier des mises à niveau régulières du système, mais il est généralement difficile de prévoir les augmentations de capacité nécessaires. Pour savoir quand le système doit être mis à niveau, contrôlez attentivement vos ressources et fondez-vous sur les prévisions d'exploitation.

Si vous envisagez d'implémenter votre solution par phases incrémentielles, vous pouvez planifier les augmentations de capacité du système en même temps que les modifications prévues lors de chaque phase incrémentielle.

Exemple d'évolutivité

L'exemple de cette section illustre une mise à l'échelle horizontale et verticale pour une solution implémentant Messaging Server. La mise à l'échelle verticale consiste à ajouter des CPU à un serveur afin de gérer les augmentations de charge. La mise à l'échelle horizontale consiste à ajouter des serveurs supplémentaires afin de répartir la charge.

Cet exemple s'appuie sur une hypothèse de 50 000 utilisateurs et de deux instances de mémoire de messages réparties pour l'équilibrage de charge. Chaque serveur est équipé de deux CPU, pour un total de quatre. Le schéma ci-dessous montre comment ce système peut être mis à l'échelle pour gérer des charges de 250 000 et de 2 000 000 d'utilisateurs.


Remarque –

L'Exemple d'évolutivité met en évidence les différences existant entre une mise à l'échelle verticale et une mise à l'échelle horizontale. Ce schéma ne prend pas en compte les autres facteurs à considérer lors de la mise à l'échelle, tels l'équilibrage de charge, le basculement et les changements de types d'utilisation.


Figure 5–9 Exemples de mise à l'échelle horizontale et verticale

Diagrammes d'architecture permettant de faire une comparaison entre des mises à l'échelle verticale et horizontale et une architecture de base.

Identification des goulots d'étranglement des performances

Pour bien réussir votre déploiement, vous devez identifier les goulots d'étranglement de performances potentiels et établir une stratégie permettant de les éviter. On appelle goulot d'étranglement le moment où la vitesse d'accès aux données dépasse les exigences système spécifiées.

Les goulots d'étranglement peuvent être classés selon différentes catégories de matériel, comme le montre le tableau ci-dessous répertoriant les points d'accès aux données d'un système. Ce tableau fournit également des solutions permettant d'éviter les goulots d'étranglement pour chaque catégorie de matériel.

Tableau 5–7 Points d'accès aux données

Catégorie de matériel 

Vitesse d'accès relative 

Solutions pour améliorer les performances 

Processeur 

Nanosecondes 

Mise à l'échelle verticale : ajoutez de la puissance de traitement, augmentez le cache du processeur. 

Mise à l'échelle horizontale : ajoutez de la puissance de traitement parallèle pour l'équilibrage de charge. 

Mémoire système (RAM) 

Microsecondes 

Allouez de la mémoire système à des tâches spécifiques. 

Mise à l'échelle verticale : ajoutez de la mémoire supplémentaire. 

Mise à l'échelle horizontale : créez des instances supplémentaires pour le traitement parallèle et l'équilibrage de charge. 

Lecture et écriture sur les disques 

Millisecondes 

Optimisez l'accès aux disques à l'aide de baies de disques (RAID). 

Limitez l'accès aux disques à des fonctions spécifiques (lecture ou écriture seule).  

Mettez en cache les données fréquemment utilisées. 

Interface réseau 

Varie selon la bande passante et la vitesse d'accès des nœuds du réseau. 

Augmentez la bande passante. 

Ajoutez du matériel d'accélération pour le transport des données sécurisées. 

Améliorez les performances des nœuds du réseau de sorte que l'accès aux données soit plus rapide. 


Remarque –

À la section Identification des goulots d'étranglement des performances, les catégories de matériel sont répertoriées en fonction de leur vitesse d'accès relative. Les points d'accès lents, tels les disques par exemple, sont plus susceptibles de provoquer des goulots d'étranglement. Toutefois, les processeurs dont la puissance ne permet pas de traiter les charges importantes représentent également des sources probables de goulots d'étranglement.


La conception du déploiement commence généralement par une estimation de la puissance de traitement requise pour chaque composant et leurs éléments dépendants. Vous déterminez ensuite la façon d'éviter les goulots d'étranglement liés à la mémoire système et à l'accès aux disques. Ensuite, vous examinez l'interface réseau pour identifier les éventuels goulots d'étranglement et élaborer des stratégies destinées à les surmonter.

Optimisation de l'accès aux disques

La vitesse d'accès aux disques contenant les données fréquemment utilisées, telles que les annuaires LDAP, est un élément essentiel de la conception du déploiement. L'accès aux disques est le mode d'accès aux données le plus lent et il constitue une source possible de goulots d'étranglement.

Pour optimiser l'accès aux disques, vous pouvez séparer les opérations d'écriture des opérations de lecture. En effet, les opérations d'écriture coûtent plus cher que les opérations de lecture et ces dernières (recherches dans les annuaires LDAP) sont beaucoup plus fréquentes que les premières (mises à jour des données des annuaires LDAP).

Vous pouvez également consacrer l'utilisation des disques à différents types d'opérations d'E/S. Par exemple, prévoyez des accès séparés pour les opérations de journalisation de Directory Server dans les journaux de transactions et d'événements, par exemple, et pour les opérations de lecture et d'écriture LDAP.

Enfin, vous pouvez envisager d'implémenter une ou plusieurs instances de Directory Server dédiées aux opérations de lecture et d'écriture et d'utiliser des instances répliquées, distribuées sur les serveurs locaux pour les accès en lecture et en recherche. Les fonctions de chaînage et de liaison sont également disponibles pour optimiser l'accès aux services d'annuaire.

Le chapitre Defining System Characteristics du manuel Sun Java System Directory Server 5 2005Q1 Deployment Plannning Guide présente divers facteurs à prendre en compte lors de la planification de l'accès aux disques. Les sujets traités sont les suivants :

Conception pour une utilisation optimale des ressources

La conception du déploiement ne consiste pas simplement à évaluer les ressources nécessaires pour répondre aux exigences de qualité de service. Au cours de cette phase, vous devez également analyser toutes les solutions disponibles et choisir celle qui vous permettra de répondre aux exigences de qualité de service tout en minimisant les coûts. Vous devez analyser tous les compromis impliqués par vos décisions de conception afin de vous assurer qu'un bénéfice dans un domaine n'est pas annulé par un coût dans un autre.

Par exemple, la mise à l'échelle horizontale peut améliorer la disponibilité globale mais engendrer des coûts supplémentaires en termes de maintenance et de service. De même, la mise à l'échelle verticale peut accroître la puissance de traitement à moindres frais mais cette puissance supplémentaire risque de ne pas être utilisée de manière efficace par certains services.

Avant de mettre au point votre stratégie de conception, revoyez vos décisions pour vérifier que les avantages financiers offerts par la solution proposée compensent suffisamment l'utilisation des ressources. Au cours de cette analyse, il vous faut étudier l'impact des avantages du système dans un domaine sur les avantages du système dans d'autres domaines. Le tableau ci-dessous répertorie certains avantages du système et les éléments à prendre en compte en termes de gestion des ressources.

Tableau 5–8 Gestion des ressources

Qualité du système 

Description 

Performances

Si vous optez pour une solution dans laquelle les CPU sont rassemblés sur des serveurs individuels, les services pourront-ils utiliser efficacement la puissance de traitement ? En effet, pour certains services, le nombre de CPU pouvant être utilisés de manière efficace est limité. 

Capacité latente 

Votre stratégie peut-elle gérer les charges dépassant les estimations de performances ? 

Les charges excessives sont-elles gérées par mise à l'échelle verticale sur les serveurs, par équilibrage de charge vers d'autres serveurs ou les deux ? 

La capacité latente est-elle suffisante pour gérer les charges de pointe jusqu'à la prochaine étape de mise à l'échelle du déploiement ? 

Sécurité

Avez-vous pris en compte les performances supplémentaires nécessaires au traitement des transactions sécurisées? 

Disponibilité

Dans le cas des solutions à redondance horizontale, avez-vous estimé correctement les coûts de maintenance à long terme ? 

Avez-vous pris en compte les temps d'indisponibilité planifiés nécessaires aux opérations de maintenance du système ?  

Avez-vous comparé les coûts de serveurs haut de gamme et de serveurs d'entrée de gamme ? 

Évolutivité

Avez-vous prévu des étapes de mise à l'échelle du déploiement ? 

Avez-vous établi une stratégie fournissant une capacité latente suffisante pour gérer les augmentations de charge prévues entre chaque étape de mise à l'échelle du déploiement ? 

Entretien

Votre conception de disponibilité tient-elle compte des coûts d'administration, de contrôle et de maintenance ? 

Avez-vous envisagé des solutions de délégation permettant aux utilisateurs finals d'effectuer certaines tâches d'administration afin de réduire les coûts ? 

Gestion des risques

La plupart des données sur lesquelles repose la conception du déploiement (exigences de qualité de service, analyse d'utilisation) ne sont pas empiriques. Il s'agit d'estimations et de projections issues des analyses d'exploitation. Bien des facteurs peuvent fausser ces projections, comme des situations imprévues liées au contexte économique, des méthodes de collecte des données inadaptées ou simplement des erreurs humaines. Avant de terminer une conception de déploiement, réexaminez les analyses sur lesquelles elle est fondée et vérifiez qu'elle prend en compte une marge d'erreur raisonnable par rapport aux estimations et aux projections.

Par exemple, si l'analyse d'utilisation sous-estime l'utilisation réelle du système, celui-ci risque d'être incapable de faire face au trafic auquel il est soumis. Une conception dont les performances ne sont pas satisfaisantes sera probablement considérée comme un échec.

A contrario, si la puissance de votre système est supérieure aux exigences, des ressources qui pourraient être utilisées à d'autres fins sont monopolisées inutilement. La bonne méthode consiste à prévoir une marge de sécurité suffisante tout en utilisant les ressources à bon escient.

Une utilisation inadaptée des ressources entraîne un échec de la conception car les ressources sous-utilisées auraient pu être employées pour d'autres activités. En outre, des solutions jugées inappropriées risquent d'être considérées par les parties prenantes comme ne respectant pas les termes du contrat.

Exemple d'architecture de déploiement

Le schéma ci-dessous représente une architecture de déploiement complète correspondant à l'exemple décrit plus haut dans ce document. Il donne un aperçu de la manière dont une architecture de déploiement peut se présenter.


Attention – Attention –

L'architecture de déploiement illustrée par le schéma ci-dessous est fournie à titre d'exemple uniquement. Il ne s'agit pas d'un déploiement ayant été conçu, mis en place et testé en conditions réelles et ne doit donc pas être considéré comme une recommandation.


Figure 5–10 Exemple d'architecture de déploiement

Exemple de présentation d'une architecture de déploiement.