Par Maxime Jumelle
CTO & Co-Founder
Publié le 4 mars 2022
Catégorie Cloud / DevOps
L'équilibrage de charge (ou Load Balancing en anglais) est une technique d'architecture informatique qui permet, comme son nom l'indique, de répartir la charge (les requêtes) vers plusieurs cibles d'un même groupe. Très souvent utilisé pour les applications Web, l'équilibrage de charge est une pratique incontournable dès que l'on souhaite redimensionner (scaler) une application pour être capable de répondre à chacune des demandes, lorsque ces dernières augmentent considérablement.
Mais comment se fait l'équilibrage de charge en pratique ? Comment peut-on ajouter ou supprimer des serveurs cibles à tout moment ?
Construire une architecture Cloud ne consiste pas juste en un assemblage de services, mais nécessite de satisfaire plusieurs conditions.
En particulier, la haute disponibilité et la scalabilité sont deux concepts utilisant l'équilibrage de charge, et qui permettent de répondre en partie à ces exigences.
La haute disponibilité (HA pour high availability) est la capacité d’une application ou d’un système à être disponible et accessible avec un niveau de garantie très élevé.
Elle est d’autant plus importante lorsque l’application ou le produit distribué est une plateforme Web qui génère un revenu pour l’entreprise : chaque minute d’interruption peut avoir de grandes conséquences.
Autrement dit, on souhaite minimiser l’interruption de service (downtime) pour les utilisateurs. Il faut donc que le système soit capable d’évoluer avec le moins d’interaction humaine.
Les services en ligne proposent des garanties de disponibilité (SLA pour Service Level Agreement) : un SLA de 99.99% indique que le service pourra être inaccessible au maximum 53m 35s par an.
Les nombreux serveurs à disposition dans les Data Centers offrent une élasticité importante.
L’élasticité est la capacité d’une application ou d’un système informatique à s’adapter en fonction de la charge de travail.
Lorsque l’on doit intégrer l’élasticité pour une application, on doit être capable de provisionner automatiquement à tout moment et en un temps très court des serveurs, tout comme on peut en retirer si certains sont inutilisés.
L'équilibrage de charge est donc une brique supplémentaire pour parvenir à satisfaire toutes ces conditions, bien qu'elle ne constitue pas en soi la seule solution à toutes ces exigences.
L’équilibrage de charge (répartition de charge) est nécessaire pour mettre à l’échelle horizontalement (ajout de serveurs) une application.
Il s’agit d’un serveur frontal (appelé load balancer) dans une région qui permet de distribuer le trafic entrant vers plusieurs cibles (serveurs, conteneurs, adresses IP) sur une ou plusieurs zones et qui forment un cluster.
Chacune de ces cibles se situe dans un réseau avec lequel le load balancer peut communiquer. Cette représentation sous forme de cluster est très puissante
Le rôle du load balancer est principalement de rediriger et distribuer les requêtes parmi un ensemble de serveurs cibles. Il existe plusieurs techniques qui permettent de répartir le trafic sur les serveurs cibles, dont les plus populaires sont les suivantes.
Il existe également d'autres algorithmes plus spécifiques, qui vont prendre en compte la tension des réseaux par exemple, lorsque la problématique n'est pas directement liée aux ressources des instances/serveurs, mais plutôt à la bande passante.
Que se passe-t-il si un des serveurs tombe en panne ? Dans ce cas, il ne faudrait pas rediriger les requêtes vers ce serveur, car ces dernières ne pourront pas être prises en charges.
Les équilibreurs de charge ont également des fonctionnalités qui permettent de détecter et vérifier l'état de santé des cibles, c’est-à-dire si ces dernières sont disponibles et atteignables.
Si un des serveurs ne répond plus correctement à une requête spécifique qui retourne l'état de santé de la cible, alors l'équilibreur de charge va automatiquement retirer ce serveur comme cible.
Pour construire et exécuter un équilibreur de charge, il y a plusieurs possibilités.
Il existe de nombreuses situations où l’utilisation d’un équilibreur de charge est nécessaire.
En parallèle, on configure souvent des métriques et alarmes sur des équilibreurs de charges. Cela permet à la fois de surveiller les requêtes entrantes, mais aussi de prévenir en cas de problème technique.
Vous souhaitez vous former au Cloud / DevOps ?
Articles similaires
28 févr. 2024
Pour de nombreuses entreprises, innover chaque jour en proposant des applications à ses utilisateurs est un sujet primordial. Pour autant, cette course au déploiement continu de nouvelles applications nécessite des compétences bien particulières sur les architectures Cloud, l'automatisation de projets et la supervision. C'est à partir de ce moment qu'intervient le rôle de l'ingénieur DevOps dans les entreprises.
Maxime Jumelle
CTO & Co-Founder
Lire l'article
23 févr. 2024
Dans le monde du DevOps, les conteneurs sont rapidement devenus des incontournables, aussi important que les machines virtuelles. Des plateformes de conteneurisation comme Docker ont permis de simplifier et d'accélérer la création d'image et l'exécution de conteneurs sur différents systèmes, à portée de tous.
Maxime Jumelle
CTO & Co-Founder
Lire l'article
16 févr. 2024
Dans l'approche GitOps, il existe de nombreux outils permettant d'exécuter des pipelines CI/CD : certains se concentrent uniquement sur la partie intégration continue, d'autres avec le déploiement en plus. S'il y en a un qui est considéré comme l'un des plus matures et des plus robustes, c'est bien GitLab.
Maxime Jumelle
CTO & Co-Founder
Lire l'article
60 rue François 1er
75008 Paris
Blent est une plateforme 100% en ligne pour se former aux métiers Tech & Data.
Organisme de formation n°11755985075.
Data Engineering
IA Générative
MLOps
Cloud & DevOps
À propos
Gestion des cookies
© 2024 Blent.ai | Tous droits réservés