Le Load Balancing est une technique essentielle pour garantir la disponibilité, la scalabilité et la sécurité des applications. Il permet de répartir le trafic des clients entre plusieurs serveurs, assurant ainsi une répartition adéquate de la charge.
Qu’est-ce qu’un Load Balancer ?
Un Load Balancer peut être un logiciel ou un matériel installé sur un appareil qui répartit les connexions des clients entre un ensemble de serveurs. Il agit en tant que “reverse-proxy”, présentant les serveurs d’application au client via une adresse IP virtuelle (VIP). Cette technologie est connue sous le nom de Server Load Balancing (SLB). Le SLB est conçu pour les pools de serveurs d’application situés dans un seul site ou un réseau local (LAN).
Les Load Balancers sont utilisés pour garantir la disponibilité et la scalabilité de l’application. L’application peut être étendue au-delà de la capacité d’un seul serveur. Le Load Balancer dirige le trafic vers un pool de serveurs disponibles à l’aide de divers algorithmes de répartition de charge. Si des ressources supplémentaires sont nécessaires, des serveurs supplémentaires peuvent être ajoutés.
Les Load Balancers effectuent des contrôles d’état de l’application sur le serveur pour déterminer sa disponibilité. Si la vérification de l’état échoue, le Load Balancer retire cette instance de l’application de son pool de serveurs disponibles. Lorsque l’application est de nouveau en ligne, la vérification de l’état confirme sa disponibilité et le serveur est réintégré dans le pool de disponibilité.
En plus de gérer la connexion entre le client et le serveur d’application, le Load Balancer peut également effectuer d’autres fonctions. Il peut effectuer des commutations de contenu, offrir une sécurité basée sur le contenu telle que les pare-feu d’application Web (WAF) et des améliorations d’authentification telles que l’authentification à deux facteurs (2FA).
Qu’est-ce qu’un Load Balancer supporte ?
Le Load Balancer a pour objectif d’assurer la disponibilité, la scalabilité et la sécurité de l’application. En tant que reverse-proxy, il agit comme une vanne multifonctionnelle pour diriger et contrôler le trafic entre les clients et les serveurs.
Les possibilités d’utilisation des Load Balancers
- Détecter automatiquement les pannes de serveur et rediriger le trafic client
- Permettre la maintenance des serveurs sans aucune interruption
- Assurer une reprise d’urgence automatisée pour les sites de sauvegarde
- Ajouter et supprimer des serveurs d’application sans interruption
- Surveiller et bloquer les contenus malveillants
Comment fonctionne un Load Balancer ?
Un Load Balancer est un reverse-proxy. Il présente une adresse IP virtuelle (VIP) à un client, qui représente l’application. Le client se connecte au VIP et le Load Balancer décide, à l’aide de ses algorithmes, s’il doit rediriger la connexion vers une instance d’application spécifique sur un serveur. Le Load Balancer gère et contrôle la connexion pendant toute sa durée.
Imaginez un agent sportif négociant un nouveau contrat pour un athlète de haut niveau. L’agent reçoit la demande de l’athlète et la transmet à une équipe intéressée spécifique. L’équipe répond avec des informations (une offre) que l’agent renvoie ensuite au client. Cela continue jusqu’à ce qu’une solution soit trouvée.
C’est la fonction principale du Load Balancer, appelée Server Load Balancing (SLB). L’agent peut fournir des fonctionnalités supplémentaires en fonction de son rôle dans la conversation. Il peut décider d’autoriser ou de refuser certaines informations (sécurité). Il peut s’assurer que la personne avec qui il parle est réellement l’athlète en question (authentification). Si la ligue sportive actuelle ne fonctionne pas, l’agent peut rediriger les discussions vers une autre ligue en fonction de la disponibilité ou de la localisation (GSLB).
Quels sont les types de Load Balancers ?
Pour comprendre les types de Load Balancers, il est important de comprendre leur évolution au fil du temps.
Load Balancers pour les serveurs réseau
Les Load Balancers sont apparus au milieu des années 1990 pour faire face à l’augmentation du trafic Internet. Les Load Balancers d’origine offraient des fonctionnalités de base pour agréger les ressources des serveurs afin de répondre à cette demande. Le Load Balancer gérait les connexions en se basant sur l’en-tête du paquet. Plus précisément, il prenait en compte le 5-uplet – IP source, IP destination, port source, port destination et protocole IP. C’est ainsi que le Load Balancing des serveurs réseau ou le Load Balancing au niveau 4 a été introduit.
Load Balancers pour les applications
Avec le développement technologique, les Load Balancers se sont également développés. Ils sont devenus plus avancés, offrant désormais une prise en charge de la logique applicative et du basculement de contenu. Ces Load Balancers prennent en compte le contenu, tel que l’URL, l’en-tête HTTP et d’autres éléments, pour prendre des décisions de répartition de charge. Ce sont les Load Balancers d’applications ou les Load Balancers de niveau 7.
Load Balancing mondial des serveurs
Le Global Server Load Balancing (GSLB) est en réalité une autre technologie distincte du Load Balancing classique de niveau 4 à 7. Le GSLB repose sur le DNS et agit en tant que proxy DNS, fournissant des réponses en temps réel basées sur des algorithmes de répartition de charge GSLB. Le GSLB peut être considéré comme une technologie DNS dynamique qui gère et surveille plusieurs sites via des configurations et des vérifications d’état. La plupart des solutions de Load Balancing proposent aujourd’hui le GSLB dans le cadre de leurs fonctionnalités.
Hardware vs Software vs Virtual Load Balancing
Les Load Balancers ont été initialement conçus comme des solutions matérielles. Le matériel offre une application simple qui fournit des performances optimales. Les Load Balancers basés sur le matériel sont conçus pour être installés dans des centres de données. Ce sont des solutions clés en main qui ne nécessitent pas les dépendances requises par les solutions basées sur des logiciels, telles que les hyperviseurs et le matériel COTS.
Avec l’évolution des technologies réseau, les technologies de virtualisation et de cloud définies par logiciel ont pris de l’importance. Les solutions de Load Balancing basées sur des logiciels offrent une flexibilité et la possibilité de s’intégrer aux solutions d’orchestration de virtualisation. Certains environnements, tels que le cloud, nécessitent des solutions logicielles. Les environnements basés sur des logiciels mettent souvent en œuvre des processus DevOps et/ou CI/CD. Les Load Balancers logiciels sont mieux adaptés à ces environnements en raison de leur flexibilité et de leur intégration.
Les solutions Elastic Load Balancer
Les solutions Elastic Load Balancer (ELB) sont beaucoup plus avancées et offrent aux opérateurs de cloud computing une capacité évolutive basée sur les besoins de trafic spécifiques. L’Elastic Load Balancing permet de mettre à l’échelle le trafic vers une application lorsque les besoins évoluent avec le temps. De plus, les instances de Load Balancing sont automatiquement mises à l’échelle en fonction des besoins. En utilisant l’algorithme Elastic Load Balancing pour l’acheminement des requêtes vers le trafic d’application entrant sur plusieurs instances ou pour les mettre à l’échelle au besoin, il augmente la tolérance aux pannes de vos applications.
Quels sont les algorithmes de répartition de charge ?
Les algorithmes de répartition de charge sont des formules utilisées pour déterminer vers quel serveur envoyer chaque connexion client. Les algorithmes peuvent être très simples, comme le Round Robin, ou plus avancés, comme les algorithmes basés sur des agents et adaptatifs. Dans tous les cas, l’objectif de l’algorithme est de diriger la connexion client vers le serveur d’application le mieux adapté.
L’algorithme le plus couramment recommandé est le Least Connection. Cet algorithme est conçu pour envoyer la connexion vers le serveur ayant les meilleures performances en fonction du nombre de connexions qu’il gère actuellement. L’algorithme “Least connections” prend en compte la durée de chaque connexion en ne considérant que les connexions actives sur le serveur.
Voici quelques-uns des types d’algorithmes de Load Balancing :
- Moins de connexions
- Round Robin
- Round Robin pondéré
- Moins de connexions pondéré
- Load Balancing adaptatif basé sur des agents
- Redondance pondérée (équilibrage fixe)
- Temps de réponse pondéré
- Hash d’adresse IP source
- Load Balancing adaptatif basé sur le Software Defined Networking (SDN)
Qu’est-ce qu’un Load Balancer de Kemp ?
Le LoadMaster Load Balancer de Kemp a été conçu pour optimiser le Load Balancing. LoadMaster est une solution logicielle également disponible en tant qu’appliance matérielle. Kemp se concentre sur les technologies clés du Load Balancing pour assurer une configuration et une gestion simplifiées. Cette focalisation se traduit par des économies significatives sur le coût total de possession (CTO) tout au long de la durée de vie de la technologie.
Kemp offre un support de premier ordre grâce à une organisation étendue d’experts disponibles 24 heures sur 24 pour les clients. Kemp a constitué une équipe d’experts en Load Balancing et en réseautique au fil des années et est devenu une entreprise technologique de premier plan avec plus de 100 000 installations dans 138 pays.
Pourquoi devriez-vous utiliser le Load Balancer de Kemp ?
Le Kemp LoadMaster est le Load Balancer leader sur le marché actuel. Des Load Balancers abordables sont disponibles en tant que Load Balancers virtuels et matériels.
Le Kemp LoadMaster est compatible avec les hyperviseurs les plus courants, notamment :
- VMWare
- Hyper-V
- XEN
- KVM
Kemp LoadMaster est certifié par les principaux fournisseurs, dont :
- Microsoft
- Cisco
- Dell
- VMWare
- SAP
- Citrix
Kemp propose des solutions de Load Balancing pour :
- Les e-mails d’entreprise
- Les communications unifiées
- Les outils de travail collaboratif
- Les applications ERP/CRM et autres workflows
- Les contenus web
- Les systèmes de commerce électronique
- Les applications d’approvisionnement en libre-service
J’espère que cet article vous a permis de mieux comprendre le Load Balancing et son importance pour garantir la disponibilité, la scalabilité et la sécurité des applications. Si vous avez des questions spécifiques sur le Load Balancing, n’hésitez pas à en savoir plus en consultant nos articles sur les différents aspects du Load Balancing.