Load Balancer

Définition

Un load balancer distribue le trafic réseau entrant sur plusieurs serveurs backend (un pool de serveurs ou un cluster) pour s’assurer qu’aucun serveur unique ne soit surchargé. Il améliore la disponibilité, la fiabilité et les performances des applications.

Les load balancers opèrent à différents niveaux du modèle OSI, avec des capacités différentes à chaque niveau.

Types de Load Balancer par couche OSI

Couche Nom Fonctionnement Exemple
L4 (Transport) TCP/UDP Routage basé sur IP + port HAProxy, AWS NLB
L7 (Application) HTTP/HTTPS Routage basé sur URL, headers, cookies NGINX, AWS ALB

Algorithmes de Load Balancing

Algorithme Description Meilleur pour
Round Robin Distribution séquentielle à chaque serveur Serveurs de capacité égale
Weighted Round Robin Les serveurs reçoivent une part proportionnelle Serveurs de capacités différentes
Least Connections Envoi au serveur avec le moins de connexions actives Connexions de longue durée
Least Response Time Envoi au serveur répondant le plus rapidement Temps de réponse variables
IP Hash Le même client IP va toujours au même serveur Persistance de session
Random Sélection aléatoire de serveur Déploiements simples

Modèles de haute disponibilité

  • Active-Passive : Un LB actif, un en veille (failover)
  • Active-Active : Plusieurs LBs servant le trafic simultanément
  • Health Checks : Surveiller la santé des serveurs backend ; retirer les serveurs non sains
  • Session Persistence (Sticky Sessions) : Acheminer le même utilisateur vers le même backend

Load Balancers populaires

Outil Type Notes
NGINX L7 (HTTP) Reverse proxy + load balancer
HAProxy L4/L7 Load balancer dédié, haute performance
AWS ALB/NLB Cloud Application/Network Load Balancer
Envoy L7 Cloud-native, sidecar de service mesh
Traefik L7 Docker/Kubernetes-native
Keepalived VRRP HA pour adresses IP virtuelles (pas un LB lui-même)

Termes liés

  • Cdn — surveille la santé des serveurs backend
  • SSL Termination — le LB peut terminer TLS pour les backends

Références