J'essaie de décider entre l'utilisation d'une solution d'équilibrage de charge de couche 4 pour mon centre de données ou une solution de couche 7. Malheureusement (pour ma raison, c'est), mon cas d'utilisation est assez simple pour que les deux solutions fonctionnent bien, évitant la plupart des faiblesses et n'utilisant pas vraiment les forces de l'autre. Quelle que soit la solution que nous finissons par utiliser, elle doit avoir une disponibilité élevée et un débit élevé. Mais nous ne prévoyons de l'utiliser que pour équilibrer la charge sur un cluster de serveurs Web, dont aucun ne requiert de gestion de session «collante» (cookie ou IP), de règles de réécriture complexes - ou, d'ailleurs, de règles de réécriture sur tout.
Les équilibreurs de charge seront connectés à deux commutateurs, tous deux avec une connexion indépendante jusqu'à la couche d'agrégation du centre de données et fusionnés ensemble à l'aide de Rapid Spanning Tree et du protocole propriétaire que les commutateurs utilisent pour la virtualisation. Les équilibreurs de charge seront également réticulés entre eux sur un câble croisé. Tous les serveurs du cluster sont connectés aux deux commutateurs. Tout ce que les équilibreurs de charge doivent faire est de pointer le trafic sur eux.
Comme il ne s'agit que de HTTP, je peux utiliser une solution d'équilibrage de charge de couche 7 comme HAProxy ou nginx. Mais je pourrais aussi utiliser le projet LVS avec ldirectord ou keepalived ou autre chose.
J'ai essayé de briser les avantages et les inconvénients tels que je les vois, mais ça finit par se laver. Que recommanderiez-vous et pourquoi? Suis-je en train de manquer quelque chose?