Qu'est ce que le Network Load Balancing (NLB) ?
Lorsque vous naviguez sur Internet, il y a tout un processus sous-jacent entièrement transparent pour vous. Ce processus est responsable de l’acheminement de vos requêtes (recherches par exemple) vers le serveur distant – situé potentiellement à l’autre bout du monde – hébergeant le site web. La réponse de ce serveur vous est ensuite restituée en un temps très court, et heureusement que ce délai n’est pas fonction de la distance vous séparant du serveur.
La popularité du site pouvant s’accroître, et par la même occasion son pic de trafic, il est impératif que votre expérience utilisateur soit conservée. Ainsi, la question principale qui se pose est de savoir comment garantir une qualité et une disponibilité optimale et non altérée. C’est là qu’intervient le Network Load Balancing (NLB).
Certains sites web peuvent être en mesure d’absorber plusieurs millions de requêtes par jour tout en étant en mesure de restituer le contenu souhaité (qu’il s’agisse de texte, vidéos, ou autres données) de manière fiable.
L’équilibreur de charge (load balancer) a pour mission d’acheminer les requêtes sur tous les serveurs en mesure d’y répondre, de telle sorte à maximiser la vitesse et l’utilisation de la capacité, garantissant qu’aucun serveur ne soit surchargé (ce qui aurait pour conséquence de réduire les performances). Si un serveur tombe en panne, l’équilibreur de charge redirige les requêtes vers les serveurs restants. Au contraire, si un nouveau serveur est ajouté au groupe, l’équilibreur de charge commence automatiquement à lui envoyer des requêtes.
Les charges sont réparties en fonction de divers critères, comme par exemple l’emplacement géographique des utilisateurs, ou le nombre d’utilisateurs simultanés. De fait, l’équilibreur de charge exécute les tâches suivantes :
- Distribution des requêtes ou des charges réseaux vers de multiples serveurs
- S’assure de la disponibilité en transmettant les requêtes uniquement aux serveurs en ligne
- Peut ajouter ou supprimer des serveurs automatiquement pour s’adapter à la charge.
Les algorithmes
Plusieurs algorithmes permettent de tirer différents avantages des équilibreurs de charges, dépendamment du besoin recherché :
- Round Robin : la charge est distribuée sur le groupe de serveur séquentiellement
- Least Connection : chaque nouvelle requête est envoyée au serveur avec le moins de connexions actives.
- IP Hash : l’adresse IP du client est utilisée pour déterminer le serveur recevant la requête
Les équilibreurs de charge sont généralement répartis en 2 catégories : Layer 4 (couche 4) et Layer 7 (couche 7), se référant directement à la couche du modèle OSI où ils agissent. Les équilibreurs layer 4 agissent sur les données trouvées au niveau des protocoles des couches réseaux et transport (IP, TCP, UDP, FTP), tandis que les équilibreurs layer 7 distribuent les requêtes en fonction des données trouvées dans les protocoles de la couche application (HTTP).
Les équilibreurs matériel et logiciel
Deux types de NLB existent :
- NLB matériel : ils utilisent des dispositifs matériels spéciaux (comme des commutateurs réseau) pour répartir la charge de travail.
- NLB logiciel : ils utilisent des logiciels spécifiques installés sur les serveurs eux-mêmes pour gérer la répartition de la charge.
Pour conclure
Le Network Load Balancing est une technique puissante pour améliorer les performances de vos applications en répartissant la charge de travail efficacement. Le tableau suivant vous présente les principaux avantages et inconvénients :
Avantages | Inconvénients |
---|---|
Amélioration de la disponibilité et des performances | Mise en place et configuration parfois complexe nécessitant une expertise technique |
Temps d’arrêt réduit | Nécessite une protection spécifique contre les attaques par déni de service (DoS) |
Réduction des coûts |