Liens connexes

Dépêche modérée par

Dépêche éditée par

: HAProxy, le répartiteur de charge fiable et performant

Posté par Bruno Michel (Jabber id, page perso, ). Modéré le 05 décembre 2006.
0
La répartition de charge (load balancing en anglais, littéralement équilibrage de charge) est une technique utilisée en informatique pour distribuer un travail entre plusieurs processus, ordinateurs, disques ou autres ressources. Elle s'applique, en particulier, au domaine des connexions réseau, où elle permet d'assurer l'extensibilité et la haute disponibilité d'applications et de sites web.

Pour ceux d'entre vous qui souhaiteraient en savoir plus, je vous conseille l'article intitulé Making applications scalable with Load Balancing. Cette introduction aux techniques de répartition de charge a été écrite par Willy Tarreau, qui n'est autre que le mainteneur officiel du noyau Linux 2.4 et l'auteur de HAProxy.

Si après la théorie, vous souhaitez passer à la pratique, HAProxy est particulièrement recommandé : c'est un répartiteur de charge logiciel sous licence GPLv2.

HAProxy est une solution libre, fiable et très performante de répartition de charge de niveau 4 (TCP) et 7 (HTTP). Elle est particulièrement adaptée aux sites web fortement chargés qui nécessitent de la persistance ou du traitement au niveau 7.

La fiabilité est l'un, sinon le point fort d'HAProxy. Il est par exemple utilisé par des sociétés apparaissant au classement Fortune 500 pour servir des millions de pages chaque jour.

Cette fiabilité ne s'est pas faite au détriment des performances : HAProxy requiert peu de ressources, et son architecture évènementielle mono-processus lui permet facilement de gérer plusieurs milliers de connexions simultanées sur plusieurs relais sans effondrer le système.

Enfin, la sécurité est au rendez-vous : pas une seule vulnérabilité en 4 ans. De plus, HAProxy est capable de se chrooter et de diminuer ses privilèges au lancement.

> Lire les commentaires (14 commentaires, moyenne: 2,9).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Varnish

Posté par Maxime Ritter (page perso, ) le 05/12/2006 à 10:33. (lien). Évalué à 4.

Des solutions intéresantes de load balancing, il y en a plus d'une. HAProxy n'a rien de neuf. L'article de Willy Tarreau est bien plus intéressant par contre (comprendre, il aurait fallu faire une news rapide sur l'article, pas sur HAProxy).

Par contre puisqu'on parle (entre autres) de clusters de serveurs webs, en matière de reverse-proxy, il y a un projet très récent et intéressant à suivre par là : http://varnish.projects.linpro.no/

128kbs d'uplink....

Posté par cedric (Jabber id, ) le 05/12/2006 à 16:26. (lien). Évalué à 4.

1wt.eu arrive a tenir avec 128k en etant linuxfrsié.....
moins pire que slashdotté, mais 128k ca fait pas beaucoup meme pour de l'adsl ;)
la connection ne sert qu'a mettre a jour les données du proxy mais quand meme.

config maitre / esclave

Posté par oops (page perso, ) le 05/12/2006 à 19:43. (lien). Évalué à 1.

Est-il possible de mettre 2 HAProxy en maître/esclave ( pour palier à des problèmes de disques par exemple ) ?

Si oui est-il possible de garder les connections ( VRRP ? ) ?

Forte charge

Posté par Miguelito Loveless (page perso, ) le 06/12/2006 à 09:58. (lien). Évalué à 0.

Bonjour,

Tout d'abord merci pour HAProxy c'est vraiment un excellent logiciel.

Dans l'article «sociétés apparaissant au classement Fortune 500 pour servir des millions de pages chaque jour ». Quelqu'un a un exemple plus précis sur ce type d'architecture ? une comparaison avec des switch du genre nortel alteon/passport ? Difficile de se lancer dans un test en situation réelle pour ce genre d'application,

Je serrais aussi particulièrement intéressé par un retour d'expérience sur un pool de proxy squid.

Je cherche pour ma part à utiliser un maximum de logiciel libre pour un très gros réseau.
J'ai déja (modestement je ne suis pas dev) modifié vrrpd pour l'adapter à mes besoins, infos http://www.traceroot.fr.

libevent

Posté par herodiade () le 06/12/2006 à 16:02. (lien). Évalué à 3.

À titre indicatif, connaissez vous libevent ? http://monkey.org/~provos/libevent/
Cette lib fournis une API unifiée (et portable sous Linux, *BSD, Windows, Mac OS X et Solaris) pour la gestion des évènements, et sait tirer parti de façon transparente de la meilleur API système présente (par ex. epoll sous Linux, kqueue sous *BSD, etc.). C'est très robuste aussi (utilisé par memcached et par les serveurs osfp, ifstated et le proxy ftp d'OpenBSD).

Voilà, ça permet de faire des choses dans l'esprit de HAProxy (je veut dire : pas forcément d'aussi bon logiciels, mais des logiciels utilisant les bonnes API de gestion d'event pour encaisser de grosses charges) sans être un caïd de la prog système :)

Le site de Niels Provos (l'auteur de cette lib) indique aussi un papier très pertinent sur le sujet dont on parle : http://www.kegel.com/c10k.html , qui compare les diverses approches (choix des api d'event et/ou pour les threads, utilisation de sendfile()/zerocopy, ...) pour programmer des serveurs performants et qui tiennent la charge.

Revenir en haut de page