3.5. Server Farm et Web Farm (fermes de serveurs).
Les fermes de serveurs se sont développées au
début des années 2000 pour répondre aux besoins de la
bulle internet. Ces « fermes » hébergent jusqu'à
plusieurs centaines de serveurs montés en « Cluster ». Le nom
« Farm » a été choisi par analogie avec les grandes
granges américaines qui servent au stockage des céréales.
La haute disponibilité permet de garantir
l'accomplissement des tâches même en cas de défaillance d'un
des noeuds) du « Cluster ». Malgré la haute
disponibilité, l'utilisateur peut ressentir des baisses de performance,
mais ne perdra pas complètement l'accès au service qu'il est en
train de consommer. Pour répondre à ce besoin de « haute
disponibilité » dans les « Web Farms », deux concepts
sont primordiaux : celui de la Scalabilité et celui de la
Répartition de charge.
ü La Scalabilité.
Elle permet de facilement augmenter la taille du «
Cluster » en ajoutant des machines. Cette propriété permet
de faciliter la montée en charge grâce à l'augmentation de
la puissance de calcul et de la mémoire offerte dans la ferme. Ce
concept permet aussi de garantir la « haute disponibilité » en
permettant le remplacement d'une machine sans interruption de service.
ü La répartition de charge (Load
Balancing).
La répartition de charge est un énorme
défit pour les ingénieurs et fait l'objet de nombreuses
publications. L'objectif de toutes les solutions proposées est de
minimiser le temps de réponse moyen et d'éviter de surcharger une
machine particulière. Pour atteindre ce but, les paramètres
à prendre en compte sont divers et varient en fonction des projets.
La solution la plus simple, pour le « Load
Balancing », est basée sur la répartition de charge au
niveau du serveur DNS (Domain Name System). Cette première solution ne
fait que convertir un nom de domaine en une adresse IP. Cette solution est
externe au « Cluster » et elle ne permet pas d'éviter de
diriger l'utilisateur sur une machine surchargée ou qui ne répond
plus.
La seconde solution consiste à utiliser un
serveur frontal, appelé communément
« Dispatcheur», pour répartir la charge. Le
« dispatcheur », pour faire son travail, prend en compte plusieurs
paramètres tels que la nature du site (statique ou dynamique), l'URL
demandée, les cookies ou la popularité momentanée du site.
La principale difficulté, pour le développement
des services hébergés dans ces fermes, est liée au fait
que chaque machine reste indépendante, malgré qu'elles fassent
toutes parties du même « Cluster ».
|