Le load balancing permet de répartir uni­for­mé­ment les accès au serveur entre plusieurs serveurs à l’aide d’un ré­par­ti­teur de charge (load balancer) placé en amont. Ainsi, des temps d’accès stables sont garantis, ce qui est essentiel pour générer des prospects et des clients.

Qu’est-ce que le load balancing ?

Le load balancing, ou ré­par­ti­tion des charges, est par­ti­cu­liè­re­ment populaire dans le domaine de la tech­no­lo­gie des serveurs et décrit un processus dans lequel les requêtes sont réparties en arrière-plan entre dif­fé­rents serveurs, sans que les uti­li­sa­teurs s’en aper­çoi­vent. Le load balancer (ré­par­ti­teur de charges) utilisé à cette fin peut être mis en œuvre sous forme ma­té­rielle ou lo­gi­cielle. Il permet d’associer plusieurs serveurs à un même domaine, sans qu’il y ait de conflit d’adresses et est ac­ces­sible sous le domaine public.

Les serveurs Web se­con­daires sont souvent iden­ti­fiés par des sous-domaines tels que www1, www2, www3, etc. Le load balancing permet de rendre un site Internet dis­po­nible sous la même URL, même si plusieurs serveurs se cachent derrière. Ceci allège la charge d’un serveur puisque la demande venant de l’extérieur est dis­tri­buée sur plusieurs or­di­na­teurs au sein d’un cluster.

Le load balancing peut également jouer un rôle en dehors des serveurs Web, par exemple sur les or­di­na­teurs à pro­ces­seurs multiples. Dans ce cas, le load balancer assure une ré­par­ti­tion uniforme des besoins entre les dif­fé­rents pro­ces­seurs afin de générer plus de puissance de calcul. De plus, les load balancers sont po­pu­laires pour l’uti­li­sa­tion de logiciels de con­te­neu­ri­sa­tion comme Ku­ber­netes. Ils veillent ici à ce que les charges de travail soient réparties de manière ju­di­cieuse entre dif­fé­rents pods.

Comment fonc­tionne le load balancing ?

Les requêtes à un serveur Web, par exemple sous la forme de char­ge­ment d’une page, s’exécutent d’abord sur le load balancer. Celui-ci prend alors en charge la ré­par­ti­tion de la charge en trans­fé­rant les accès aux dif­fé­rents serveurs. Le load balancer peut être matériel ou logiciel, mais le principe reste le même : une requête lui parvient et, selon la méthode utilisée, l’appareil ou le logiciel transmet les données au serveur approprié.

La base technique est le processus DNS : les uti­li­sa­teurs accèdent à un site Web uni­que­ment via une URL. Le site est alors converti à l’aide du DNS en une adresse IP, qui renvoie à son tour vers le load balancer.

Image: Illustration du fonctionnement du load balancing
Un load balancer répartit la charge des accès clients via Internet ou le Web sur dif­fé­rents serveurs.

Les avantages d’un load balancing équilibré

Les prin­ci­paux avantages d’une bonne ré­par­ti­tion des charges sont les suivants :

  • Des temps d’accès optimisés : la ré­par­ti­tion du trafic sur plusieurs serveurs permet de réduire les temps d’accès, même lors de nom­breuses requêtes si­mul­ta­nées.
  • Une plus grande fiabilité : un load balancer garantit une meilleure pro­tec­tion contre les pannes, puisque le trafic provenant d’un serveur trop lent est au­to­ma­ti­que­ment transféré vers d’autres serveurs du cluster. Même si un serveur n’est pas ac­ces­sible, le site Web hébergé reste dis­po­nible.
  • Une main­te­nance sim­pli­fiée du système : les con­fi­gu­ra­tions et les mises à jour peuvent être ef­fec­tuées pendant le fonc­tion­ne­ment des serveurs, sans perte de per­for­mance notable. Le load balancer détecte l’état de main­te­nance et redirige les requêtes en con­sé­quence.

Les dif­fé­rentes méthodes de load balancing

La façon dont les demandes entrantes sont réparties dépend du choix de l’al­go­rithme. Les al­go­rithmes po­pu­laires pour le load balancing sont : Round Robin, Weighted Round Robin, Least Con­nec­tions et Weighted Least Con­nec­tions.

Round Robin

Round Robin désigne un procédé cyclique dans lequel les demandes de serveurs entrants sont gérées par le load balancer dans une sorte de file d’attente et dis­tri­buées aux serveurs connectés en série. Chaque nouvelle requête est attribuée au serveur suivant dans la file d’attente afin de répartir les accès de manière uniforme sur le cluster de load balancing. Dans le processus Round Robin, tous les processus sont traités de manière égale, in­dé­pen­dam­ment de l’urgence de la requête ou de la charge du serveur qui la génère. Un load balancer fonc­tion­nant selon ce principe est donc par­ti­cu­liè­re­ment adapté aux en­vi­ron­ne­ments dans lesquels toutes les instances disposent à peu près des mêmes res­sources.

Weighted Round Robin

Les fai­blesses de l’al­go­rithme classique du Round Robin dans les clusters de serveurs hé­té­ro­gènes peuvent être com­pen­sées par une ré­par­ti­tion Round Robin pondérée. Les requêtes entrantes sont réparties en tenant compte de la pon­dé­ra­tion statique des dif­fé­rents serveurs. Cette pon­dé­ra­tion est définie au préalable par l’ad­mi­nis­tra­teur.

Le serveur le plus per­for­mant peut ainsi se voir attribuer la valeur « 100 », tandis que les serveurs moins efficaces reçoivent la valeur « 50 ». Dans une telle con­fi­gu­ra­tion, le serveur pondéré « 100 » recevrait deux requêtes du load balancer à chaque tour, tandis que le serveur pondéré « 50 » ne recevrait qu’une seule requête. Le Weighted Round Robin doit être utilisé prin­ci­pa­le­ment pour l’équi­li­brage de charges lorsque les serveurs connectés au cluster disposent de res­sources dif­fé­rentes.

Least Con­nec­tions

Lors de la ré­par­ti­tion des requêtes serveur, les al­go­rithmes Round Robin men­tion­nés pré­cé­dem­ment ne tiennent pas compte du nombre de con­nexions déjà actives sur chaque serveur. Il peut donc arriver qu’un serveur soit surchargé, même s’il a été moins sollicité au départ. L’al­go­rithme Least Con­nec­tions corrige ce problème en at­tri­buant chaque nouvelle requête au serveur qui a ac­tuel­le­ment le moins de con­nexions actives. Cette méthode est par­ti­cu­liè­re­ment adaptée aux clusters homogènes, dans lesquels les serveurs disposent de res­sources si­mi­laires.

Weighted Least Con­nec­tions

Si un cluster de serveurs présente des capacités dif­fé­rentes, il convient d’utiliser, à la place de l’al­go­rithme Least Con­nec­tions, une méthode de load balancing à ré­par­ti­tion pondérée en fonction des con­nexions exis­tantes. Cela permet de prendre en compte à la fois le nombre de con­nexions actives d’un serveur et la pon­dé­ra­tion définie par l’ad­mi­nis­tra­teur. Ainsi, une ré­par­ti­tion équi­li­brée de la charge au sein du cluster de serveurs est garantie. Les nouvelles requêtes sont au­to­ma­ti­que­ment at­tri­buées par le load balancer aux serveurs dont le rapport entre les con­nexions actives et la pon­dé­ra­tion res­pec­tive du serveur indique la charge actuelle la plus faible.

Quels problèmes peuvent survenir lors de l’uti­li­sa­tion du load balancing ?

L’E-commerce est par­ti­cu­liè­re­ment confronté à des problèmes de load balancing, par exemple quand les visiteurs d’un site Web rem­plis­sent leur panier avec les articles qu’ils sou­hai­tent acheter. Ces articles restent en­re­gis­trés pendant la durée d’une session, quelle que soit la page consultée par les uti­li­sa­teurs sur la boutique en ligne. Un load balancer normal ré­par­ti­rait les requêtes entre dif­fé­rents serveurs, mais cela aurait pour con­sé­quence la perte du panier.

Deux approches sont en­vi­sa­geables pour résoudre ce problème. En premier lieu, le load balancer peut réagir à l’adresse IP de l’uti­li­sa­teur. Le dis­tri­bu­teur achemine alors toujours les requêtes provenant de la même adresse IP vers le même serveur. Une autre méthode consiste à lire un iden­ti­fiant de session dans la requête elle-même afin de dé­ter­mi­ner vers quel serveur elle doit être redirigée.

Pourquoi les load balancers sont-ils si im­por­tants ?

Si vous gagnez de l’argent sur Internet, votre en­tre­prise ne peut pas se permettre une panne de serveur. Et si vous n’utilisez qu’un seul serveur et qu’il tombe en panne en raison d’une surcharge, votre site Web n’est plus ac­ces­sible aux clients po­ten­tiels. Cela entraîne plusieurs problèmes : d’une part, vous ne pouvez générer aucun chiffre d’affaires pendant la surcharge. En effet, les services ne peuvent pas être réservés et les achats ne peuvent pas être effectués. D’autre part, la confiance de vos clients po­ten­tiels diminue également. Les uti­li­sa­teurs qui ren­contrent une surcharge du serveur lors du processus de commande sont dou­ble­ment pénalisés. Souvent, il subsiste une grande in­cer­ti­tude et les personnes con­cer­nées ne savent pas si la commande est réel­le­ment arrivée dans le système et si elle a été en­re­gis­trée.

Mais même si vous ne proposez pas de services en ligne, votre site Web doit être ac­ces­sible à tout moment. Il s’agit en effet de l’un des prin­ci­paux canaux d’in­for­ma­tion à propos de votre en­tre­prise : si des clients cherchent des ren­seig­ne­ments mais ne par­vien­nent pas à accéder à votre site, ils se tour­ne­ront vers des con­cur­rents. Un load balancer vous permet de minimiser ces risques.

Mettre en place le load balancing dans votre en­tre­prise

Le load balancing peut être mis en place sur un serveur virtuel à l’aide de solutions ma­té­rielles ou lo­gi­cielles. De nombreux four­nis­seurs proposent des packs complets pro­fes­sion­nels sous forme d’In­fras­truc­ture-as-a-Service (IaaS) ou de com­po­sants réseau pour votre in­fras­truc­ture in­for­ma­tique.

L’ac­qui­si­tion de load balancers pro­prié­taires étant gé­né­ra­le­ment coûteuse, les petites en­tre­prises ont souvent recours à des solutions open source telles que NGINX. Il s’agit d’une solution éco­no­mique per­met­tant d’assurer la haute dis­po­ni­bi­lité du site Web de votre en­tre­prise grâce à une ré­par­ti­tion efficace de la charge au sein du réseau de serveurs. Dans le domaine de l’hé­ber­ge­ment Web, le load balancing peut également être proposé comme fonc­tion­na­lité sup­plé­men­taire pour les serveurs Cloud.

Aller au menu principal