You are on page 1of 30

t devient facile !

Avec les Nuls, tou

Balancing Le Load

A mettre dans toutes les poches!


Avec la participation de

Rpartition de charge et haute disponibilit des services Web

Willy Tarreau
Concepteur dHAProxy

Le Load Balancing
Rpartition de charge et haute disponibilit des services Web

POUR

LES NULS
Willy Tarreau Concepteur d'HAProxy Wilfried Train Chef de produit ALOHA

Le Load Balancing pour les Nuls


Copyright 2010 Wiley Publishing, Inc. Pour les Nuls est une marque dpose de Wiley Publishing, Inc. For Dummies est une marque dpose de Wiley Publishing, Inc. Edition franaise publie en accord avec Wiley Publishing, Inc. 2010 ditions First 60 rue Mazarine 75006 Paris - France Tl. 01 45 49 60 00 Fax 01 45 49 60 01 E-mail : rstinfo@erst.com Web : www.editionsrst.fr Dpt lgal : 1er trimestre 2010 Collection dirige par Jean-Pierre Cano Edition : Pierre Chauvot Imprim en France Tous droits rservs. Toute reproduction, mme partielle, du contenu, de la couverture ou des icnes, par quelque procd que ce soit (lectronique, photocopie, bande magntique ou autre) est interdite sans autorisation par crit des Editions First. Limites de responsabilit et de garantie. Lauteur et lditeur de cet ouvrage ont consacr tous leurs efforts prparer ce livre. Les Editions First, Wiley Publishing, Inc. et lauteur dclinent toute responsabilit concernant la abilit ou lexhaustivit du contenu de cet ouvrage. Ils nassument pas de responsabilits pour ses qualits dadaptation quelque objectif que ce soit, et ne pourront tre en aucun cas tenus responsables pour quelque perte, prot ou autre dommage commercial que ce soit, notamment mais pas exclusivement particulier, accessoire, consquent, ou autres. Marques dposes. Toutes les informations connues ont t communiques sur les marques dposes pour les produits, services et socits mentionns dans cet ouvrage. Wiley Publishing, Inc. et les Editions First dclinent toute responsabilit quant lexhaustivit et linterprtation des informations. Tous les autres noms de marque et de produits utiliss dans cet ouvrage sont des marques dposes ou des appellations commerciales de leur propritaire respectif.

Sommaire
Introduction ....................................................................................................... 5
Contexte, problmatiques et enjeux ..................................................................................5 Objectifs de louvrage ..........................................................................................................6 Les icnes utilises dans ce livre .......................................................................................6

Chapitre 1 : Architecture, dnitions et concepts........................................... 7


Larchitecture rseau type...................................................................................................7 Dnitions et concepts ........................................................................................................8

Chapitre 2 : La rpartition de charge sans rpartiteur ............................... 9 r


Le DNS (Domain Name Server) ...........................................................................................9 Loptimisation applicative .................................................................................................10 La sparation des contenus statiques et dynamiques...........................................10 Loptimisation du serveur HTTP ...............................................................................11

Chapitre 3 : Le rpartiteur de charge............................................................. 13


Les diffrents niveaux daction .........................................................................................13 La rpartition de charge de niveau 3/4 (Rseau)....................................................14 La rpartition de charge de niveau 7 (Applicatif)...................................................15 Les fonctions principales dun rpartiteur .....................................................................17 Equilibrer dynamiquement la charge sur les serveurs ..........................................18 Surveiller ltat des serveurs.....................................................................................19 Les fonctions "intelligentes" du rpartiteur applicatif ...........................................21

Chapitre 4 : Comment choisir son load balancer ? ....................................... 25


Se poser les bonnes questions .........................................................................................25 La meilleure solution : la combinaison ............................................................................26

Conclusion........................................................................................................ 29 A propos dExceliance..................................................................................... 31

Introduction

otre entreprise dispose dun site Web ? Dun Intranet ou dun Extranet ? Dapplications ou services en ligne ? Alors cet ouvrage est fait pour vous. Bienvenue dans lunivers du Load Balancing !

Contexte, problmatiques et enjeux


Lhistoire commence par un site vitrine sur le Web. Une faon comme une autre, mais nouvelle, de prsenter son entreprise, ses produits. Nous sommes la n du XXme sicle. Dix ans, et mme un peu plus, se sont couls depuis. Une ternit : laccs linformation distante est partout. Tout, ou presque, se fait aujourdhui partir dun navigateur Web. Un arbre de services Web qui cache la fort de linfrastructure indispensable la disponibilit et aux performances de ces services distants. Car aussi pratique et efcace soit-il, le modle "orient services" comporte aussi ses risques : engorgement du trac, baisse des performances, coupures de service, scurit de linformation, etc. Avec des consquences parfois lourdes en termes de productivit des quipes, dimage de marque voire mme de baisse de chiffre daffaires.

Le Load Balancing pour les Nuls _________________________________

Objectifs de louvrage
Du client au serveur, le parcours est parfois long et trs souvent sem dembuches. Tout lenjeu de ce livre est de vous apporter les cls de comprhension dune dmarche de rpartition de charge des ux dinformation des services Web. Il napporte pas de rponse universelle (chaque cas est unique) mais guidera les responsables dapplications, DSI et autres chefs dentreprises dans leurs choix en matire darchitecture applicative et rseau. Dans ce livre, vous retrouverez notamment les outils et les mthodes de rpartition de charge mais aussi les bonnes pratiques dune dmarche de load balancing, en fonction de vos besoins et de vos contraintes.

Les icnes utilises dans ce livre


Dans ces encadrs, stop aux ides prconues. Aprs, vous ne pourrez pas dire que vous ne saviez pas !

Les limites, parfois mmes les inconvnients, de telle ou telle technique.

Ce quil faut retenir

Pour approfondir vos connaissances sur l'un des thmes abords.

Chapitre 1

Architecture, dnitions et concepts

Larchitecture rseau type


Dun ct un serveur. De lautre un poste client. Entre les deux, tout un ensemble dquipements relis entre eux pour permettre aux informations de circuler de lun lautre : le rseau. Simple dans son concept, le rseau est plus complexe quil ny parat. De nombreux lments le composent, regroups en "couches" dans le modle OSI, sur lequel repose le fonctionnement dun rseau informatique.

Le Load Balancing pour les Nuls _________________________________

Chaque composant participe, sa manire, au bon droulement des oprations de circulation des informations. Une solution de load balancing peut intervenir g deux niveaux : Niveaux 3/4 : Rseau et transport (protocole TCP/ IP) ; Niveau 7 : Applications (protocole HTTP, RDP). Nous dtaillerons plus loin les leviers daction manuvrer chaque niveau pour amliorer les performances et assurer la disponibilit des services qui sappuient sur cette architecture.

Dnitions et concepts
Avant de plonger dans le vif du sujet, quelques rappels de base. Paquet : an de circuler plus facilement, les infort mations changes sont segmentes en "paquets". La couche 4-Transport soccupe de cette segmentation et de leur transmission, en sappuyant la couche 3-Rseau. Application : ce sont les logiciels utiliss pour lchange des donnes, tels que les navigateurs, les clients de messagerie, les outils de CRM ou encore dchange FTP. Load balancing : littralement "rpartition de g charge" ou "quilibrage de charge". Haute disponibilit : fait de garantir l'utilisateur une continuit de service, la bonne marche et/ou l'accessibilit aux applications.

Chapitre 2

La rpartition de charge sans rpartiteur

a mthode la plus simple doprer une rpartition de charge consiste ddier des serveurs des groupes dutilisateurs prdnis. Si cette mthode est simple mettre en uvre pour un Intranet, elle est trs complexe, voire impossible, pour des serveurs Internet. Dans ce cas, un paramtrage spcique du DNS (Domain Name Server) au niveau rseau et/ou loptimisation applicative (niveau 7) sont un premier pas vers une dmarche de rpartition de charge sans rpartiteur.

Le DNS (Domain Name Server)


Dans la majorit des cas, la mthode du DNS en rotation (round robin) est un bon dbut en matire de rpartition de charge. Pour un mme nom de serveur particulier, le serveur DNS dispose de plusieurs adresses IP de serveurs, quil prsente tour de rle aux clients, dans un ordre cyclique. Pour lutilisateur, cette mthode est totalement transparente : il ne verra que ladresse du site. On utilise gn-

10

Le Load Balancing pour les Nuls _________________________________

ralement la rpartition par DNS pour des moteurs de recherche, des serveurs POP (messagerie) ou des sites proposant du contenu statique.

La mthode du DNS souffre de deux limites majeures :


Elle nest pas adapte la gestion de contexte (cas dune application ncessitant louverture dune session utilisateur) ; Elle ne fournit pas elle seule des moyens de vrier la disponibilit des serveurs, le cache DNS conservant des informations errones en cas de panne dun serveur ou dinaccessibilit dun site. Des moyens additionnels sont ncessaires pour tester ltat des serveurs et basculer de lun lautre le cas chant.

Loptimisation applicative
Il sagit le plus souvent de recettes simples mais particulirement efcaces, mme en prsence dun rpartiteur.

La sparation des contenus statiques et dynamiques


Dans la plupart des applications, on peut estimer seulement un quart la part des contenus dynamiques. Pour les y objets statiques, lutilisation dun cache reverse proxy en frontal de la ferme de serveurs permet aux serveurs de se concentrer uniquement sur les requtes concernant les contenus dynamiques.

______________ Chapitre 2 : La rpartition de charge sans rpartiteur

11

Une tche qui incombe trs simplement un serveur HTTP lger (lighttpd ou thttpd par exemple), et qui ne ncessite pas forcment linstallation de serveurs ddis.

Loptimisation du serveur HTTP


Quel que soit le serveur Web retenu (Apache, IIS, etc.), son paramtrage jouera un rle essentiel quant son niveau dabsorption de la charge.

Ne ngligez pas cette tape d'optimisation du serveur HTTP !


Elle favorisera considrablementles performances de vos applications. Reportez-vous aux spcications de l'diteur pour une conguration optimale de votre serveur HTTP.
Sans rpartiteur, il est donc possible dengager une dmarche de rpartition de charge. Nanmoins, les mthodes dcrites ci-dessus ne fournissent aucun contrle de la disponibilit et exigent donc des moyens additionnels pour tester en permanence ltat des serveurs et basculer le trac dun serveur dfectueux vers un autre le cas chant. Ces mthodes ne constituent donc pas une solution de rpartition de charge principale mais conservent leur intrt et restent complmentaires la mise en place dun rpartiteur.

Chapitre 3

Le rpartiteur de charge

ogiquement, la mise en uvre dun rpartiteur de charge est la mthode la plus pertinente et efcace lorsquil sagit dengager une dmarche de rpartition de charge de la population des utilisateurs sur plusieurs serveurs, voire plusieurs sites. Le rpartiteur peut indiffremment prendre la forme dun matriel spcique, dun logiciel install sur un serveur ddi ou sur les serveurs dapplication. Cette dernire solution tant la plus risque, en raison notamment du risque de dysfonctionnent lors du dploiement de nouveaux composants. En fonction des besoins, un rpartiteur agira au niveau rseau (couche 3/4) et/ou au niveau applicatif (couche 7).

Les diffrents niveaux daction


Matriel ou logiciel, le rpartiteur de charge (ou load balancer) est la couche supplmentaire qui permet r doptimiser et de rguler le trac, tout en soulageant les serveurs, en rpartissant la charge selon des algorithmes prdnis (niveaux 3/4 et 7) et/ou selon des fonctions

14

Le Load Balancing pour les Nuls _________________________________

intelligentes capables de tenir compte du contenu de chaque requte (niveau 7).

La rpartition de charge de niveau 3/4 (Rseau)


La rpartition de charge de niveau 3/4 consiste travailler sur les paquets rseau en agissant sur leur routage (TCP/IP). Le rpartiteur de niveau 3/4 intervient donc louverture de la connexion TCP puis aiguille les paquets en fonction des algorithmes retenus, selon 3 mthodes : Le routage direct Avec cette mthode, le rpartiteur "distribue les cartes" : il se charge de rpartir les requtes sur une mme adresse entre les serveurs locaux. Les serveurs rpondent ensuite directement aux clients : on parle alors de "retour direct du serveur" (DSR : Direct Server Return). Simple mettre en uvre car ne ncessitant aucune modication au niveau IP, cette mthode requiert de solides comptences du modle TCP/IP pour obtenir une conguration correcte et optimale. Elle implique en outre la proximit des serveurs, qui doivent se trouver sur le mme segment rseau que le rpartiteur. Le tunneling Le tunneling est une volution du routage direct qui permet de samender de la problmatique de proximit des serveurs grce la mise en place de tunnels entre des serveurs distants et le rpartiteur.

______________________________ Chapitre 3 : Le rpartiteur de charge

15

La translation dadresses IP (NAT) Dans ce cas, le rpartiteur centralise tous les ux : les requtes (comme dans le cas du routage direct, il les rpartit entre les serveurs), mais aussi les rponses. Il "masque" ainsi lensemble de la ferme de serveurs, qui ne ncessitent aucun paramtrage particulier. En revanche, cette mthode implique une conguration applicative trs stricte an notamment que les serveurs vitent de retourner leurs adresses internes dans les rponses. En outre, cette mthode augmente considrablement la charge du rpartiteur qui doit convertir les adresses dans les deux sens, maintenir lui-mme une table de sessions et supporter la charge de trac retour.

La rpartition de charge de niveau 7 (Applicatif)


En sattaquant la couche applicative, le rpartiteur de charge ne se contente plus daiguiller "aveuglment" les requtes. Il analyse le contenu de chaque requte HTTP, RDP ou autre pour dcider du routage.

Le reverse proxy
Dans son rle de transmission du trac, le rpartiteur y de niveau 7 agit comme un reverse proxy et prtend tre le serveur. Il a alors pour rle d'accepter les connexions destination du client et d'tablir des connexions avec les serveurs pour faire transiter les donnes (requtes et rponses). Cette mthode implique que les serveurs ne puissent pas tre joints directement par les utilisateurs et ne ncessite aucune conguration particulire ct serveur.

16

Le Load Balancing pour les Nuls _________________________________

Dans ce cas, le rpartiteur de niveau 7 ncessite plus de puissance que les solutions matrielles agissant au niveau du rseau. Ils fournissent cependant un premier niveau de scurit en ne transmettant au serveur que ce quils comprennent.

Le reverse proxy transparent


Parfois, la rpartition de charge de niveau 7 peut se heurter des contraintes dintgration des serveurs (surveillance des logs ou pare-feu de niveau 3/4) ou de protocole (FTP). Auquel cas, le rpartiteur peut simuler l'adresse IP du client en source des connexions qu'il tablit vers les serveurs. On parle alors de reverse proxy transparent. Ncessitant un mode coupure, le reverse proxy transpay rent implique que les serveurs doivent non seulement tre congurs pour joindre les clients travers le load balancer, mais aussi se trouver sur un segment rseau diffrent des clients.

En matire de rpartition de charge, il n'y a pas de bons ou mauvais choix.


Arbitrer entre un rpartiteur de niveau rseau et un rpartiteur de niveau applicatif est une affaire de besoins distincts ou cumulatifs. Dans ce cas, deux rpartiteurs de niveaux 3/4 et 7 peuvent cohabiter dans la mme infrastructure.

______________________________ Chapitre 3 : Le rpartiteur de charge

17

Milliers ou millions de sessions concurrentes ?


Pourquoi, quand il s'agit de rpartiteur de niveau 3/4, voque-t-on un support de plusieurs millions de connexions quand les rpartiteurs de niveau 7 n'en grent que quelques millers ? Simplement parce qu'au niveau TCP (Rseau), le rpartiteur ne fait que distribuer la ferme de serveurs les requtes qui lui parviennent, en comptabilisant les sessions actives et inactives. Il peut donc utiliser toute sa puissance ce travail. Tandis qu'un rpartiteur applicatif (qui gre les connexions http) doit consulter chaque requte, l'analyser, an de la transmettre au bon serveur qui, lui, ne comptabilise que les sessions actives. Ce travail, beaucoup plus long et gourmand en ressources, restreint la capacit de traitement du nombre de connexions concurrentes.

Les fonctions principales dun rpartiteur


Nous lavons vu, un rpartiteur peut revtir plusieurs aspects : matriel et logiciel. Et travailler plusieurs niveaux : rseau ou application. Pourtant, dans sa dnition fonctionnelle, un rpartiteur, quel quil soit, assumera au moins deux missions principales : lquilibrage de charge entre les serveurs et la surveillance de ces derniers.

18

Le Load Balancing pour les Nuls _________________________________

Equilibrer dynamiquement la charge sur les serveurs


En pratique, le rpartiteur sappuie sur des algorithmes de rpartition. Il en existe de nombreux qui rpondent des critres bien diffrents : les dures de sessions, les variations de charge, les capacits de serveurs, etc. Parmi eux, on peut citer : Round Robin Dans ce cas, le rpartiteur utilise chaque serveur la suite, selon un ordre cyclique. Si les serveurs sont de capacits ingales, il est possible dajouter une pondration (weighted round robin). Cest la mthode la plus efcace pour des serveurs Web. Least Conn Cet algorithme consiste envoyer la nouvelle requte sur le serveur le moins charg. Idal pour des sessions longues, cette mthode est inadapte des serveurs dont la charge varie dune seconde lautre. Le hachage durl ou dadresse IP Plus dterministe, cette mthode permet de crer une afnit plus ou moins efcace (sous certaines conditions) entre un client et un serveur.

Priorit au serveur le plus rapide : faux !


Envoyer la requte au serveur qui rpond le plus vite n'est pas une solution pertinente car cela peut rapidement entraner un dsquilibre l'intrieur de la ferme de serveur.

______________________________ Chapitre 3 : Le rpartiteur de charge

19

Priorit au serveur le moins charg : faux !


Nous l'avons vu prcdemment, l'algorithme Least Conn (Least Connections : le moins de connexion) permet d'envoyer systmatiquement les requtes au serveur le moins charg. Cette mthode n'est pas du tout adapte des serveurs Web par exemple, dont la charge peut varier d'une seconde l'autre.

Surveiller ltat des serveurs


Cest lun des aspects les plus complexes de la rpartition de charge. Mais nanmoins indispensable : en cas de dfaillance de lun des serveurs, toutes les requtes seront rparties automatiquement entre les autres serveurs de la ferme. Et ceci, de faon totalement transparente pour lutilisateur. On parle alors de haute disponibilit applicative. Baptises health checks (contrles de vitalit), les mthodes de surveillance des serveurs prennent de nombreuses formes telles quun ping, une tentative de connexion TCP ou bien encore lenvoi dune requte HTTP (niveau 7 uniquement). En effet, un serveur dfaillant peut parfois rpondre au ping mais pas aux connexions TCP ou accepter ces dernires mais refuser de rpondre aux requtes HTTP. Parfois mme, lorsquil sagit dun serveur dapplication Web multi-niveaux, certaines requtes HTTP retourneront une rponse immdiate tandis que dautres choueront. Cest la raison pour laquelle, an de garantir la haute disponibilit des services Web, il sagira avant tout de btir

20

Le Load Balancing pour les Nuls _________________________________

la srie de tests rguliers la plus pertinente possible, en fonction du type dapplication.

Les contrles de vitalit des serveurs ncessitent un paramtrage trs n, an de trouver le meilleur quilibre entre performances ddies aux applications et surveillance des serveurs.
En matire de surveillance des serveurs, les rpartiteurs logiciels sont de loin les plus exibles. Ils permettent en effet de crer des scnarios automatiss qui pourront tre rapidement modis et corrigs en trs peu de temps.

Le cas des ux chiffrs (https)


Face l'utilisation croissante des ux chiffrs, de nombreux rpartiteurs de niveau 7 fournissent le support du protocole SSL, agissant ainsi comme un reverse proxy et servant de terminaison SSL. Attention : gourmand en ressources, le dchiffrement de requtes SSL peut rapidement saturer le rpartiteur Dans ce cas, la bonne solution consiste isoler les traitements SSL en disposant d'une ferme de reverse proxies SSL ddis. Ce qui a pour consquence de soulager la fois le rpartiteur et les serveurs Web du dchiffrement des requtes.

______________________________ Chapitre 3 : Le rpartiteur de charge

21

Les fonctions "intelligentes" du rpartiteur applicatif


Pour rpondre certains besoins particuliers, le rpartiteur de niveau 7 dispose de fonctions supplmentaires, issues de sa capacit danalyse des requtes.

La persistance
La persistance rpond au cas o toutes les requtes dun mme utilisateur doivent imprativement tre adresses un mme serveur sur une session donne, an de conserver en mmoire les informations relatives cette session (le "contexte" de lutilisateur), telles que le contenu du panier sur un site de e-commerce par exemple. On parle alors de sessions persistantes ou "collantes" ( (sticky sessions) et de rpartition de charge avec afnit de serveur. Diffrentes mthodes permettent la mise en uvre de la persistance : La redirection : c'est lune des solutions les plus conomiques. Elle consiste faire en sorte que l'application redirige la demande vers l'adresse locale du serveur concern (en cas de panne du serveur, l'utilisateur sera tout de mme redirig vers ce dernier). L'afnit de sessions : le rpartiteur associe un utilisateur un serveur. La manire la plus simple tant didentier le serveur sur lequel s'est connecte l'adresse IP de l'utilisateur lors de la dernire connexion. Lapprentissage de cookie : larrive dune requte utilisateur, le rpartiteur vrie la prsence du cookie de lapplication dans len-tte de la requte et compare les valeurs de ce dernier sa table de

22

Le Load Balancing pour les Nuls _________________________________

sessions, pour rediriger ensuite l'utilisateur vers le bon serveur. Sil ny a pas de correspondance, la requte sera dirige vers nimporte quel serveur, via lalgorithme choisi. Lors de la rponse du serveur la requte du client, le rpartiteur collectera l'information d'identication du serveur (par apprentissage) pour ensuite l'enregistrer dans sa table de sessions. A la seconde requte du client, l'enregistrement alors effectu permettra de rediriger le client vers le bon serveur. Linsertion de cookie : sur le fond, le principe est le mme que prcdemment, ceci prs que le cookie est insr directement sur la machine utilisateur

Limites de ces mthodes :


L'afnit de sessions sur ladresse IP source nest pas able car s bon nombre dutilisateurs surfe sur internet avec des adresses IP variables. Lapprentissage de cookie implique l'usage d'une table de sese sions. En cas de dfaillance du rpartiteur principal, son backup ne sera pas en mesure de recrer l'association client-serveur. Seule une synchronisation de la table de sessions permettrait de rsoudre cette difcult. Or, il est trs difcile de maintenir une table de sessions jour entre deux rpartiteurs. Si linsertion de cookies gomme les limites lies l'apprentissage s de cookie, elle est conditionne l'acceptation des cookies par l'utilisateur ? L'usage de terminaux mobiles, parfois limits un seule cookie, rend cette mthode inexploitable. Une solution de contournement consiste par exemple dcliner cette mthode en modiant le cookie exixtant et en le prxant avec l'identiant du serveur.

______________________________ Chapitre 3 : Le rpartiteur de charge

23

par le rpartiteur (qui n'a plus alors maintenir une table de sessions), lors de la rponse du serveur. A partir de la seconde requte, le cookie est lu par le rpartiteur et les requtes sont alors immdiatement rediriges vers le mme serveur tout au long de la session.

Lamlioration de la qualit de service


Limites de connexion : an dviter toute saturation des applications et des serveurs, le rpartiteur limite le nombre de connexions simultanes. Gestion de la le dattente et des tampons : plac entre les postes clients et les serveurs, le rpartiteur rgule et optimise le trac, absorbant ainsi les pics de charge et soulageant les serveurs en privilgiant ceux qui ne sont pas saturs. Commutation dynamique : en fonction du contenu, des dossiers, du nom dhte, de lIP ou du port, le rpartiteur dirige la requte vers le serveur adquat.

La protection contre les attaques


Filtrage des en-ttes HTTP et validation protocolaire : sa capacit analyser les requtes permet au rpartiteur de vrier la validit de la requte, ainsi que la cration de rgles sur tous les champs de len-tte HTTP. Protection contre les DoS et DDoS : en sinterposant entre les responsables de lattaque par dni de service (DoS) ou dni de service distribu (DDoS), le rpartiteur va non seulement maintenir et ralentir les requtes incrimines mais aussi simuler une russite en leur renvoyant un message derreur serveur.

24

Le Load Balancing pour les Nuls _________________________________

Liste des contrles daccs IP : ractif, un rpartiteur de niveau 7 peut faciliter le reprage dadresses IP responsables dune attaque, permettant ainsi la cration et/ou la modication automatique de rgles, de faon bloquer lattaque.

Chapitre 4

Comment choisir son load balancer ?

ous lavons constat, il existe de nombreuses solutions de rpartition de charge. Toutes ne sappuient pas sur les mmes outils et ne rpondent pas aux mmes besoins.

Se poser les bonnes questions


Avant de choisir la ou les bonnes solutions, il convient danalyser ses besoins et ses attentes dune solution de load balancing. Performances : combien de connexions simultanes lapplication concerne ncessite-t-elle ? Cest un point crucial an dviter que le rpartiteur ne devienne le point de congestion du rseau (une situation difcile remdier). Fiabilit : Matriel ? Logiciel ? Sur les serveurs Web ? Sur un serveur ddi ? Dans tous les cas, la abilit de la solution est prioriser, lensemble du trac tant alors support par le rpartiteur. Fonctionnalits : Simple routeur ? Provenance des requtes ? Besoin danalyse des requtes ? Multisites ? Dterminantes certes, les fonctionnalits ne

26

Le Load Balancing pour les Nuls _________________________________

sont en revanche pas critiques dans le choix dune solution.

Frquemment les diteurs annoncent pouvoir tout faire d'un point de vue fonctionnel grce l'usage de scripts, qui s'apparentent plus du dveloppement spcique.

La meilleure solution : la combinaison


Indpendamment, chacune des solutions de load balancing rpond un besoin particulier. Pour une rpartition g globale, la meilleure solution est donc la combinaison multi-niveaux. Un premier niveau de rpartiteurs rseau (matriel ou logiciel selon les performances attendues) assurera : La rpartition de charge de niveau 3/4 entre les reverse proxies SSL et les rpartiteurs de niveau 7 ; La surveillance des rpartiteurs de niveau 7. Le second niveau de rpartiteurs applicatifs permettra doffrir le niveau "dintelligence" adquate, notamment quant au maintien du contexte utilisateurs. La combinaison est aussi la meilleure solution pour garantir lvolutivit de lensemble. En effet, lorsque les reverse proxies satureront, il sera facile den ajouter jusqu saturation des rpartiteurs de niveau 3/4, ce qui correspond dj des rseaux multi-gigabits. Enn, et si cela tait ncessaire, il serait possible daller encore plus loin en utilisant la mthode du DNS cyclique (round robin) pour adresser de multiples rpartiteurs de niveau 3/4, de prfrence rpartis sur plusieurs sites.

___________________ Chapitre 4 : Comment choisir son load balancer ?

27

Il est noter que dans la majorit des cas, les architectures et plateformes Web restent peu sollicites par rapport aux capacits techniques des solutions actuelles. Dans ce cas, la gestion combine des niveaux 3/4 et 7 peut parfaitement tre assure par le mme produit, rduisant d'autant le cot global de la solution.

Conclusion

ne dgradation des temps de rponse ou une indisponibilit du service, lie un serveur satur (en cas de pic de charge) ou momentanment indisponible (en cas de panne ou de maintenance) ? Limpossibilit darrter la production en pleine journe ? Avec la mise en place dune solution de rpartition de charge, ces problmatiques ne sont plus que de lointains souvenirs, le rpartiteur redirigeant automatiquement les requtes sur dautres serveurs pour absorber la hausse de trac ou procder la maintenance. Le dploiement de load balancer permet en outre un pir lotage plus sain et plus serein du systme d'informations (connaissance et matrise du SI, anticipation des besoins, etc.) et une optimisation des ressources en place. Nanmoins, la rpartition de charge n'accomplira pas de miracle et ne comblera pas les carences et les points de blocage dune application mal crite (lente, coteuse en ressources systmes, etc.) ni dune architecture mal pense, qui crera invariablement des problmes dans les ux rseau. En rsum, larchitecture idale peut ressembler au schma de la page suivante.

30

Le Load Balancing pour les Nuls _________________________________

Ainsi "segmente", larchitecture gagne en agilit et en scalabilit. Elle volue alors facilement au gr des besoins additifs de lentreprise.

L'architecture idale est forcment onreuse : faux !


L'optimisation des performances des serveurs obtenue grce aux outils de rpartition de charge permet de s'quiper de machines plus lgres. Mme en plus grand nombre, elles restent nanmoins administrables, plus exibles et moins gourmandes en nergie que des serveurs traditionnels.

A propos dExceliance

xceliance propose une gamme dappliances de rpartition de charge et de haute disponibilit pour amliorer les performances, assurer la disponibilit et optimiser linfrastructure des plateformes applicatives critiques dentreprise (Web, SGBD, messagerie, Terminal Server, ERP...). Initialement dveloppes partir du logiciel de load balancing open source HAProxy, les solutions ALOHA g permettent doptimiser les ux rseaux et applicatifs. Reconnues pour leurs performances de traitement, leur abilit et leur richesse fonctionnelle, elles sont proposes sous trois formats (logiciel embarqu sur une plateforme matrielle ddie, sur un disque SSD ou dans une machine virtuelle) des prix plus abordables que les autres solutions du march, pour mettre la rpartition de charge et la haute disponibilit des applications et services Web la porte de toutes les entreprises. Base Jouy en Josas (78), Exceliance est labellise jeune entreprise innovante depuis 2005. www.exceliance.fr

Enfin des livres qui vous ressemblent !

DCOUVREZ
Les dfinitions et concepts

Tout ce que vous avez toujours voulu savoir sur le load balancing !
Votre entreprise dispose dun site Web ? Dun Intranet ou dun Extranet ? Dapplications ou services en ligne ? Alors cet ouvrage est fait pour vous ! Tout, ou presque, se fait aujourdhui partir dun navigateur Internet. Un arbre de services Web qui cache la fort de linfrastructure indispensable pour absorber les pics de charge, garantir des performances optimales et viter les coupures de service

La rpartition de charge sans rpartiteur Les niveaux daction dun rpartiteur Les fonctions principales dun rpartiteur Comment choisir son load balancer ?

Les mthodes, les outils et les bonnes pratiques


Ce livre a pour objectif de vous apporter les cls de comprhension dune dmarche globale de rpartition de charge et de haute disponibilit des services Web, parfois mme de chasser quelques ides reues. Vous y (re)dcouvrirez -de manire synthtique- les diffrentes mthodes, les diffrents niveaux daction et les outils de load balancing, ainsi que leurs avantages, leurs limites et leurs inconvnients selon les contextes. Cet ouvrage napporte pas de rponse universelle (chaque cas est unique), mais il vous guidera dans vos choix en matire darchitecture de plateformes applicatives.

SUIVEZ LE GUIDE
Cette icne prvient d'un danger et vous indique gnralement ce qu'il ne faut pas faire. Dans ces encadrs, stop aux ides prconues. Aprs, vous ne pourrez pas dire que vous ne saviez pas ! Pour approfondir vos connaissances sur l'un des thmes abords. Ce quil faut retenir

You might also like