Load Balancing : Comment les pro font-ils pour toujours avoir une connection internet active ?

Aujourd’hui, que ce soit dans une petite ou une grande entreprise, une coupure internet peut vite coûter cher à la structure professionnelle qui la subit. En effet, le coût potentiel d’une panne due à la défaillance d’un serveur web clé est significatif et une étude du groupe Aberdeen a estimé le coût horaire d’une telle panne pour une petite entreprise à plus de 6 800 €. Le coût général d’une telle panne dépends beaucoup de l’organisation (son utilisation d’internet, sa dépendance à certaines applications web…) mais ces pannes poussent les clients à aller ailleurs, laissent les employés inactifs et frustrés et peuvent être extrêmement préjudiciables à la réputation d’une entreprise. Il est impératif que les entreprises évaluent l’impact d’une défaillance et prennent les mesures appropriées pour minimiser le risque de défaillance d’un serveur.

Mais comment assurer une connexion internet en toutes circonstances ? Si votre problème viens de votre connexion internet, je vous conseille de consulter mon comparatif des FAI pour trouver un forfait internet plus adapté à vos besoins.

[Note importante] : Cet article est un peu plus compliqués que les tutoriels que je vous propose habituellement. Si vous voulez avoir recours à ce genre de solution pro, je vous conseille vivement de faire appel à un professionnel qui pourra vous assister au cours de l’installation.

Qu’est ce que le Load Balancing (Répartition de charge) ?

L’équilibrage des charges ou « Load Balancing » en anglais, est un composant clé des infrastructures « always online » (« Toujours en-ligne » en Français) généralement utilisées pour améliorer les performances et la fiabilité des sites Web, des applications, des bases de données et d’autres services en répartissant la charge de travail sur plusieurs serveurs.

Vous n’avez pas compris ? Une joli dessin vaudra toujours mieux qu’une longue explication… Voici à quoi ressemble un réseau classique connecté à internet (sans load balancing) :

Dans cet exemple, l’utilisateur se connecte directement au serveur Web sur undomaine.com. Si ce serveur Web unique tombe en panne, l’utilisateur ne pourra plus accéder au site Web. En outre, si de nombreux utilisateurs tentent d’accéder au serveur simultanément et qu’il est incapable de supporter la charge, ils peuvent rencontrer des temps de chargements lents ou ne pas pouvoir se connecter du tout.

Ce point de défaillance peut être évité en utilisant un Load Balancer et un serveur Web supplémentaire sur le backend. Généralement, tous les serveurs principaux fournissent un contenu identique afin que les utilisateurs reçoivent un contenu cohérent, quel que soit le serveur qui répond.

Dans cet exemple, l’utilisateur accède au Load Balancer qui transmet sa requête à un serveur principal, ce dernier réponds alors directement à la demande de l’utilisateur. Dans ce scénario, le point de défaillance est le load balancer lui-même. Cela peut-être atténué en ajoutant un second atténuateur de charges, mais avant de s’y intéresser voyons ensemble comment fonctionnent les load balancer.

Quel type de trafic peuvent gérer les Load Balancer ?

L’administrateur du répartiteur de charges peut créer des règles de transfert pour les 4 principaux types de trafic web :

  • HTTP : L’équilibrage HTTP standard dirige les demandes en fonction des mécanismes HTTP classiques. Le Load Balancer défini les données d’en-tête X-Forwarded-For, X-Forarded-Proto et X-Fowarded-Port pour donner plus d’informations sur la demande d’origine.
  • HTTPS : L’équilibrage HTTPS fonctionne de la même manière que le HTTP, avec le cryptage en plus. Le cryptage peut être géré de deux manière dans cette situation, on peut utiliser le Passthrough SSL qui maintient le cryptage jusqu’au backend ou avec la terminaison SSL qui place la charge de décryptage sur le Load Balancer mais envoie un trafic non crypté au Backend.
  • TCP : Pour les applications web qui n’utilisent ni HTTP, ni HTTPS, il est aussi possible d’équilibrer la charge du trafic TCP. Par exemple, le trafic sur un cluster de base de données peut-petre réparti sur tous les serveurs.
  • UDP : Plus récemment, certains équilibreurs de charge ont ajouté la prise en charge des protocoles Internet de base d’équilibrage de charge tels que DNS et syslogd qui utilisent UDP.

Ces règles de transfert définissent le protocole et le port sur l’équilibreur de charge lui-même et les mappent au protocole et au port que l’équilibreur de charge utilisera pour acheminer le trafic vers le backend.

Comment le Load balancer choisi le serveur backend ?

L’équilibreur de charges va choisir le serveur vers lequel transférer une requête en fonction d’une combinaison de deux facteurs. Ils s’assureront d’abord que tous les serveurs qu’ils peuvent choisir répondent réellement aux demandes envoyées et ils utilisent ensuite une règle pré-configurée pour choisir parmi cette sélection saine.

Choisir un serveur sain

Le Load Balancer ne dois envoyer du trafic qu’aux serveurs backend « sains ». Pour surveiller l’état d’un serveur, des tests d’intégrité sont réalisés par le load balancer qui tente régulièrement de se connecter aux serveurs backend en utilisant le protocole et le port défini par les règles de transfert pour s’assurer que les serveurs sont à l’écoute. Si un serveur échoue à une vérification de l’état et ne peut donc pas traiter les demandes, il est automatiquement supprimé de la sélection et le trafic ne lui est pas transmis tant qu’il ne réponds plus aux tests d’intégrité.

Algorithmes du Load Balancer

L’algorithme d’équilibrage utilisé détermine quel serveur sain du backend sera utilisé. Les algorithmes les plus couramment utilisés sont :

  • Round Robin : L’algorithme Round Robin signifie que les serveurs seront sélectionnés séquentiellement. Le Load Balancer sélectionne le premier serveur de sa liste pour sa première requête, puis descends la liste dans l’ordre, en recommençant par le haut lorsqu’il atteint la fin.
  • Least Connections : Cet algorithme permet de sélectionner le serveur avec le moins de connexions, cet algorithme est conseillé lorsque le trafic entraîne des sessions plus lentes.
  • Source : Avec l’algorithme Source, l’équilibreur de charge sélectionne le serveur à utiliser en fonction d’un hachage de l’adresse IP source de la demande, telle que l’adresse IP du visiteur. Cette méthode garantit qu’un utilisateur particulier se connecte systématiquement au même serveur.

Les algorithmes disponibles à l’administrateur réseau dépendent de la technologie de Load Balancing utilisée.

Gestion de l’état par le Load Balancer

Certaines applications nécessitent que leurs utilisateurs restent toujours connectés au même serveur Backend. L’algorithme Source permet de créer une affinité en fonction de l’adresse IP de l’utilisateur. Il existe cependant une autre manière de gérer cela au niveau de l’application Web qui consiste à utiliser des sessions persistantes, où le Load balancer définit un cookie de navigation et toutes les demandes de cette session seront dirigées vers le même serveur Backend.

Load Balancer redondants

Pour éviter que le Load Balancer devienne le point de défaillance de votre système, il est possible d’ajouter un second Load Balancer pour former un Cluster, où chacun surveille la santé des autres. Chacun est également capable de détecter les défaillances et de récupérer.

Si jamais le Load Balancer principal venais à dysfonctionner, le DNS va rediriger les utilisateurs vers le second Load Balancer. Etant donné que la modification DNS peut prendre beaucoup de temps à se diffuser sur internet (entre 5 min et 48h) pour rendre la modification effective, de nombreux utilisateurs utiliseront des systèmes permettant un remappage (re-attribution) des adresses IP, comme des adresses IP flottantes. Le ramappage des adresses IP permet d’éviter les problèmes de propagation DNS en fournissant une adresse IP statique facilement remappable au besoin. Le nom de domaine peut rester associé à la même adresse IP, mais c’est l’adresse IP elle même qui va être déplacée entre les serveurs.

Voici a quoi ressemblerais une telle infrastructure :

Conclusion

Dans cet article je vous ai présenté la technologie Load Balancer utilisées par de nombreuses entreprises pour éviter d’avoir des coupures internet, si vous subissez trop souvent ce genre de coupures au bureau ou même à la maison, je vous conseille vivement d’envisager cette solution !

Le load Balancer est avant tout un outil à l’attention des professionnels qui ne peuvent pas se permettre de perdre 1h de travail en semaine. Cependant de plus en plus de particuliers y ont recours aussi à la maison pour corriger une connexion internet peu stable. Un de mes amis a eu l’idée de rassembler ainsi sa connexion filaire XDLS de bout de ligne (sa connexion saute au moins 2 fois par semaine pendant plus d’une heure et il travaille depuis son domicile) et une connexion 4G sans fil. Ainsi il peut profiter de sa connexion filaire lorsqu’elle fonctionne et le load balancer passe sur la connexion 4G dès que le débit est insuffisant !

Si cette solution vous semble trop compliquée, je peux aussi vous conseiller l’offre Over The Box de OVH. Pour les plus curieux, ce projet est disponible en OpenSource sur GitHub.

PS : Attention, cette technologie permet d’utiliser deux connexions simultanément avec une connexion qui prendra le dessus lorsque l’autre a un problème et inversement. Cette manipulation ne permet certainement pas d’améliorer le débit de votre connexion en additionnant le débit de chaque connexion utilisée, une autre technologie Web permet ce genre de montage et s’appelle le Bonding (Liaison en Français).

1 Partage = 1 routeur sauvé en Alaska
Click Here to Leave a Comment Below 0 comments

Leave a Reply: