L'équilibrage de charge est crucial pour la construction systèmes distribués fiables, optimisant l'allocation de la charge de travail sur diverses ressources informatiques telles que les ordinateurs, les clusters et les liaisons réseau. Son objectif est de valoriser ressource l'utilisation, maximiser le débit, minimiser le temps de réponse et éviter la surcharge d'une ressource unique. L'utilisation de plusieurs composants avec équilibrage de charge augmente la fiabilité et la disponibilité grâce à la redondance. En règle générale, l'équilibrage de charge implique un logiciel ou un matériel spécialisé, tel qu'un commutateur multicouche ou Domain Name System processus serveur.
À la base, un équilibreur de charge se situe entre les clients et les backends, remplissant des fonctions clés :
Découverte de services
Identifier les backends disponibles et leurs adresses pour la communication.
Visez santé
Évaluer l'état de santé et la préparation des backends à accepter les demandes.
Équilibrage de charge
Distribuer des requêtes individuelles sur des backends sains à l'aide d'algorithmes. Tirer parti de l’équilibrage de charge dans les systèmes distribués offre plusieurs avantages :
Nom abstrait
Les clients peuvent s'adresser à l'équilibreur de charge au lieu de connaître chaque backend, en déléguant la résolution de noms.
Tolérance aux pannes
Grâce à des contrôles de santé et à des algorithmes, un équilibreur de charge peut contourner les problèmes liés à des backends défectueux ou surchargés, permettant ainsi aux opérateurs de résoudre les problèmes à leur convenance.
Avantages en termes de performances et de coûts
L'équilibrage de charge peut localiser le trafic des requêtes au sein des zones, réduisant ainsi la latence et minimisant les coûts globaux du système en optimisant la consommation de bande passante.
Équilibreur de charge contre proxy
Dans les discussions sur les équilibreurs de charge réseau, les termes « équilibreur de charge » et « proxy » sont souvent utilisés de manière interchangeable dans l'industrie. Cet article considérera ces termes comme généralement équivalents. Bien que tous les proxys ne servent pas d'équilibreurs de charge, la majorité des proxys fonctionnent principalement comme équilibreurs de charge.
Équilibrage de charge L4
Dans le discours actuel sur l'équilibrage de charge au sein de l'industrie, les solutions sont généralement divisées en deux catégories principales : L4 et L7. Il s'agit des couches 4 et 7 du OSI modèle, respectivement. Cependant, même si ce modèle fournit un cadre, il ne rend pas pleinement compte de la complexité des solutions modernes d'équilibrage de charge.
Les équilibreurs de charge L4 fonctionnent généralement au niveau TCP / UDP niveau de connexion/session, essentiellement en mélangeant les octets pour s'assurer qu'ils atteignent le bon backend. Pourtant, ils ne prennent pas en compte les détails d'application spécifiques de ces octets, qui peuvent provenir de divers protocoles comme HTTP, Redis ou MongoDB.
Équilibrage de charge L7
Alors que tous les protocoles modernes progressent vers le multiplexage et les connexions persistantes pour plus d'efficacité, en particulier avec la surcharge liée à la création de connexions TLS chiffrées, l'inadéquation avec les équilibreurs de charge L4 devient plus évidente au fil du temps. Ce problème est résolu par les équilibreurs de charge L7, qui offrent des avantages significatifs en permettant l'inspection du trafic des applications.
L7, selon le modèle OSI, englobe différentes couches d'abstraction d'équilibrage de charge. Par exemple, lorsqu'il s'agit du trafic HTTP, nous avons les sous-couches suivantes :
Sécurité de la couche de transport (TLS) en option, que nous considérerons L7 pour cette discussion malgré les débats en cours entre les experts en réseaux.
Le protocole HTTP physique (HTTP/1 ou HTTP/2).
Le protocole HTTP logique, y compris les en-têtes, les données du corps et les bandes-annonces.
Protocoles de messagerie comme gRPC, REST, etc.
Les équilibreurs de charge L7 sophistiqués peuvent offrir des fonctionnalités pour chacune de ces sous-couches, tandis que d'autres peuvent se concentrer sur un sous-ensemble plus petit, les plaçant toujours dans la catégorie L7. Comparé à la catégorie L4, le paysage des équilibreurs de charge L7 est beaucoup plus complexe du point de vue des fonctionnalités. Et il est important de noter que cette discussion s'est concentrée uniquement sur HTTP ; d'autres protocoles d'application L7 tels que Redis, Kafka, MongoDB, etc. bénéficient également de l'équilibrage de charge L7.
Pertinence des équilibreurs de charge L4
Malgré l'anticipation selon laquelle les équilibreurs de charge L7 remplaceront à terme les équilibreurs de charge L4 pour la communication de service à service, les équilibreurs de charge L4 restent très pertinents, en particulier à la périphérie de grandes architectures distribuées.
Placer les équilibreurs de charge L4 dédiés avant les équilibreurs de charge L7 en périphérie offre plusieurs avantages :
Les équilibreurs de charge L7 gèrent une fraction plus petite de la charge de trafic brute par rapport aux équilibreurs de charge L4 optimisés en raison de leur analyse, transformation et routage sophistiqués du trafic applicatif. Cela rend les équilibreurs de charge L4 plus efficaces dans le traitement de certains types de Attaques DoS, comme les inondations SYN et les attaques génériques par inondation de paquets.
Les équilibreurs de charge L7 subissent un développement, un déploiement et des occurrences de bogues plus actifs que les équilibreurs de charge L4. Avoir un équilibreur de charge L4 devant simplifie le déploiement processus lors des déploiements d’équilibreurs de charge L7.
En raison de la complexité des fonctionnalités des équilibreurs de charge L7, ils sont plus sujets aux bugs. Disposer d'un équilibreur de charge L4 capable de contourner les pannes et les anomalies contribue à un système global plus stable.
Topologies d'équilibrage de charge
L'espace proxy intermédiaire la topologie est souvent la plus simple à mettre en œuvre. Cependant, il est susceptible de constituer un point de défaillance unique, présente des contraintes d'évolutivité et fonctionne de manière opaque.
L'espace proxy de périphérie la topologie partage des similitudes avec le proxy intermédiaire mais est généralement inévitable.
L'espace bibliothèque client intégrée la topologie offre des performances et une évolutivité supérieures. Néanmoins, cela nécessite une implémentation dans chaque langage et nécessite des mises à niveau de la bibliothèque dans tous les services.
L'espace proxy side-car La topologie peut ne pas correspondre aux performances de la topologie de la bibliothèque client intégrée, mais elle est exempte de ses limitations.
Équilibrage de charge global
L'évolution de l'équilibrage de charge verra une évolution vers le traitement des équilibreurs de charge individuels comme des produits standardisés. Le véritable potentiel d'innovation et commercial sera concentré dans le plan de contrôle. Les équilibreurs de charge mondiaux posséderont de plus en plus de capacités dépassant celles de n’importe quel équilibreur de charge unique. Par exemple:
Identifier et rediriger automatiquement le trafic autour des pannes dans des zones spécifiques.
Mise en œuvre de protocoles de sécurité globaux et de politiques de routage.
Identifier et atténuer les modèles de trafic irréguliers, tels que les attaques DDoS, à l'aide de l'apprentissage automatique et des réseaux neuronaux.
Offrant des interfaces utilisateur et des visualisations centralisées pour une compréhension et une gestion complètes de l’ensemble du système distribué.
Pour permettre l'équilibrage de charge global, les équilibreurs de charge fonctionnant comme plan de données doivent présenter capacités de configuration dynamique avancées.
Quelques conclusions
Les équilibreurs de charge jouent un rôle crucial dans les systèmes distribués contemporains. Ils sont généralement classés en deux classes : L4 et L7. Les équilibreurs de charge L4 et L7 revêtent une importance dans les architectures modernes. Les équilibreurs de charge L4 évoluent vers des solutions de hachage cohérentes et distribuées évolutives horizontalement, tandis que les équilibreurs de charge L7 connaissent actuellement des investissements substantiels, motivés par l'adoption généralisée d'architectures de microservices dynamiques.
L’avenir de l’équilibrage de charge réside dans l’équilibrage de charge global et dans la division entre le plan de contrôle et le plan de données. C’est là qu’émergeront la plupart des innovations à venir et des perspectives commerciales.
L'industrie évolue rapidement vers l'utilisation de logiciels open source (OSS) et de matériel standard pour les solutions réseau.
Les fournisseurs d’équilibrage de charge conventionnels seront les premiers à être remplacés par Logiciel OSS et nuage vendeurs.
L'espace RELIANOID solution est adaptée à chaque besoin, avec un Contrôleur de distribution d'applications multicouches: Solution complète d'Application Delivery Controller avec la capacité de se comporter comme un équilibreur de charge et un service hautement disponible sur différentes couches (L2, L3, L4 et L7), et livrée sur site, virtuelle et cloud.