L’un des moyens les plus rapides et les plus simples de mettre en place une application à haute disponibilité et d’améliorer les performances consiste à mettre en œuvre un équilibreur de charge (Load Balancer – LB).

À un niveau élevé, il existe trois types d’équilibreurs de charge.

  • Basé sur le matériel
  • Basé sur le nuage
  • Basés sur des logiciels

Un équilibreur de charge matériel est un appareil dédié à la distribution de la charge et à ses fonctionnalités. Voici quelques-uns des fournisseurs de matériel LB les plus populaires :

  • F5
  • TP-Link
  • Barracuda

Ils sont coûteux mais vous offrent un contrôle total.

L’équilibreur de charge en nuage est plus que jamais d’actualité.

L’utilisation du Cloud LB est l’un des moyens les plus abordables de profiter de toutes les fonctionnalités sans investir dans un appareil matériel. Vous payez pour ce que vous utilisez. Vous trouverez ci-dessous quelques-uns des LB en nuage les plus connus.

  • AWS
  • Google Cloud
  • Cloudflare
  • Incapsula
  • DigitalOcean
  • Azure

Vous pouvez démarrer à partir de 20 $ par mois.

Enfin, la dernière catégorie est celle des logiciels, dans laquelle vous installez, gérez et configurez vous-même le logiciel LB. Il peut s’agir d’un logiciel commercial ou d’un logiciel libre.

Si vous n’avez pas de budget ou si vous souhaitez explorer une solution gratuite d’équilibreur de charge, vous trouverez ci-dessous des informations utiles.

Seesaw

Utilisé par Google, il s’agit d’un serveur virtuel d’équilibrage de charge fiable basé sur Linux, qui permet de répartir la charge nécessaire au sein d’un même réseau.

Seesaw est développé en langage Go et fonctionne bien sur Ubuntu/Debian. Il supporte anycast et DSR (direct server return), et nécessite deux nœuds Seesaw. Ils peuvent être physiques ou virtuels.

Il convient de mentionner que Seesaw fonctionne avec des réseaux de couche quatre, donc si vous recherchez un équilibrage de charge de couche sept, vous voudrez peut-être explorer d’autres options.

KEMP

KEMP est un contrôleur de livraison d’applications avancé et GRATUIT qui est pris en charge par tous les principaux hyperviseurs. Vous pouvez le télécharger et l’utiliser dans votre centre de données ou le déployer dans un cloud DC comme AWS ou Azure.

YouTube video

Il est gratuit mais offre un niveau commercial de fonctionnalités, y compris celles ci-dessous.

  • Équilibrage de la charge de la couche 4 pour TCP/UDP à l’aide d’algorithmes round-robin ou de moindre connexion
  • Équilibrage de la couche 7
  • Intégration d’un pare-feu d’application web (WAF)
  • Moteur de prévention des intrusions intégré (IPS)
  • Véritable équilibrage global de la charge des serveurs, prise en charge du multisite
  • Mise en cache, compression de contenu, commutation de contenu
  • Persistance des cookies web
  • Tunnel IPSec
  • Pré-authentification
  • Let’s encrypt
  • Kubernetes

KEMP LB est utilisé par de grandes marques comme Apple, Sony, JP Morgan, Audi, Hyundai, etc. L’édition gratuite offre suffisamment de fonctionnalités ; cependant, si vous avez besoin de plus, vous pouvez consulter leur licence commerciale.

Si vous ou votre organisation décidez d’explorer KEMP LB et avez besoin d’une formation en ligne, vous pouvez vous référer à ce cours en ligne de Mike Walton.

HAProxy

L’une des solutions les plus populaires sur le marché consiste à fournir une haute disponibilité, un proxy, un équilibrage de charge TCP/HTTP. HAProxy est utilisé par certaines marques réputées dans le monde, comme ci-dessous.

  • Airbnb
  • GitHub
  • Imgur
  • Reddit

Voici quelques-unes des caractéristiques qui méritent d’être mentionnées.

  • Prise en charge de l’IPv6 et des sockets UNIX
  • Compression Deflate et Gzip
  • Vérification de l’état de santé
  • Adhésion à la session basée sur la source
  • Rapports statistiques intégrés (consultez la démo)

Comme vous vous en doutez, HAProxy dispose d’une édition entreprise, d’un matériel et d’une appliance virtuelle.

haproxy

La meilleure façon de connaître HAProxy est de l’essayer. L’édition communautaire est livrée avec des tonnes de fonctionnalités, et elles sont de toute façon GRATUITES.

ZEVENET

Zevenet supporte L3, L4, et L7. Il est disponible sous forme de code source, d’image IOS et dans un dépôt Docker.

zevenet

Il prend en charge la surveillance avancée des contrôles de santé, de sorte que les serveurs/services défectueux sont rapidement mis hors service afin de fournir une expérience utilisateur transparente. Zevenet, anciennement connu sous le nom de Zen, fonctionne bien avec un protocole basé sur TCP comme FTP, SIP, SSL, HTTP, etc.

Si vous cherchez un hébergement Zevenet, vous pouvez essayer Kamatera.

Neutrino

Neutrino est utilisé par eBay et construit en utilisant Scala et Netty. Il supporte les algorithmes de moindre connexion et de round-robin avec les fonctionnalités de commutation suivantes.

  • Utilisation de noms canoniques
  • Basé sur le contexte
  • L4 utilisant les numéros de port TCP
neutrino

Neutrino a été testé pour gérer 300 requêtes par seconde sur une machine virtuelle à deux cœurs. Si vous comparez avec HAProxy, l’un des principaux avantages de Neutrino est la commutation L7.

Mais comme toujours, essayez les deux et voyez ce qui fonctionne le mieux pour votre environnement.

Équilibre

Balance de In lab networks est un proxy TCP round-robin LB qui supporte IPv6 du côté de l’écoute. Cela signifie que vous pouvez avoir IPv4 sur le front-end et IPv6 sur le back-end.

Il possède toutes les fonctionnalités de base d’un LB.

Pen

Pen est testé sur Linux, FreeBSD, HP-UX, Solaris et Windows, mais il n’y a aucune raison pour qu’il ne fonctionne pas sur une autre distribution Unix. Il supporte les protocoles UDP et TCP comme HTTP, SNMP, DNS, etc.

Parmi les fonctionnalités, vous trouverez les suivantes, en plus des fonctionnalités de base.

  • Filtre GeoIP
  • Terminaison SSL
  • Compatibilité IPv4 et IPv6

Nginx

Je sais ce que vous pensez. Nginx est un serveur web, un serveur proxy, etc. Mais le logiciel libre Nginx prend en charge un niveau de base de commutation de contenu et de distribution du routage des requêtes sur plusieurs serveurs.

Cependant, l’édition Nginx Plus est bien plus que cela.

nginx-lb

Nginx Plus est une solution tout-en-un de livraison d’applications web comprenant l’équilibrage de charge, la mise en cache de contenu, le serveur web, le WAF, la surveillance, etc. Il s’agit d’une solution d’équilibrage de charge très performante qui permet de faire évoluer les applications pour servir des millions de requêtes par seconde.

Traefik

Un proxy de réserve HTTP moderne et rapide et LB construit avec GO. Traefik supporte plusieurs services back-end : Amazon ECS, Docker, Kubernetes, Rancher, etc.

traefik

Il supporte les WebSockets, HTTP/2, le renouvellement automatique des certificats SSL avec Let’s encrypt, une interface propre pour gérer et surveiller les ressources.

Gobetween

Gobetween est un équilibreur de charge L4 TCP, TLS & UDP minimaliste mais puissant et performant.

gobetween-lb

Il fonctionne sur de multiples plateformes comme Windows, Linux, Docker, Darwin et si vous le souhaitez, vous pouvez construire à partir du code source. L’équilibrage est basé sur les algorithmes suivants que vous choisissez dans la configuration.

  • Hachage d’IP
  • Célèbre dans le monde entier – round-robin
  • Moins de bande passante
  • Moins de connexion
  • Poids

Sur la base de ce benchmark, Go-between est plus rapide que HAProxy mais pas que Nginx.

gobetween-benchmark

Si vous recherchez une solution moderne d’équilibrage L4 avec découverte automatique pour un environnement dynamique, Go-between semble prometteur. Essayez-le pour voir ce qu’il en est.

Conclusion

J’espère que les logiciels d’équilibrage de charge open-source listés ci-dessus vous aideront à en choisir un pour votre application. Ils sont tous GRATUITS, donc la meilleure façon de trouver ce qui fonctionne est de les essayer.

Si vous souhaitez acquérir de nouvelles compétences, essayez Udemy, où des milliers de cours vidéo sont disponibles.