Introducing G2.ai, the future of software buying.Try now

Qu'est-ce qu'un répartiteur de charge ? C'est important pour la performance des applications.

9 Décembre 2021
par Sudipto Paul

Avoir une application qui plante au milieu des achats est frustrant. Il peut y avoir de nombreuses raisons pour le plantage, y compris une mauvaise gestion de la charge de travail. Une application basée sur le cloud devient rapidement surchargée avec un seul serveur derrière elle, entraînant des interruptions de service, des temps d'arrêt et même des plantages. Trop d'utilisateurs accédant simultanément aux mêmes données ou logiciels au sein de l'infrastructure informatique d'une entreprise provoque un plantage, surtout si le trafic de l'application n'est pas correctement équilibré. Mais comment les entreprises équilibrent-elles le trafic ? Entrez dans le logiciel d'équilibrage de charge. Qu'est-ce qu'un répartiteur de charge ? Un répartiteur de charge est un dispositif réseau ou un logiciel qui facilite l'équilibrage de charge – le processus de distribution méthodique et efficace du trafic réseau sur plusieurs serveurs backend dans un pool de serveurs. Il réduit les frais de gestion et de maintenance des applications en agissant comme un proxy inverse. Cela rend les applications plus fiables et capables de gérer des utilisateurs et des sessions réseau simultanés. Un répartiteur de charge agit comme un facilitateur invisible pour les utilisateurs. Ils ne peuvent pas le voir mais leurs demandes sont routées à travers lui tout le temps. Par exemple, un utilisateur faisant ses achats de Noël parcourra différents produits avant d'en choisir un ou plusieurs. Lorsque l'utilisateur clique sur un produit, l'appareil client envoie une demande d'information aux serveurs backend. Un répartiteur de charge reçoit cette demande entrante et la route vers tous les serveurs capables. Cette distribution de charge est cruciale pour un débit de données efficace et l'optimisation des ressources de livraison d'applications. Elle améliore également les performances en empêchant un seul serveur de devenir surchargé. De plus, un répartiteur de charge vérifie la capacité d'un serveur à gérer les demandes, retire les serveurs inaptes et crée même de nouveaux serveurs d'application virtualisés si nécessaire. Fonctions d'un répartiteur de charge : - Ajoute ou retire des serveurs à la demande - Réduit le temps de réponse aux demandes des utilisateurs - Distribue efficacement les demandes des clients - Identifie et bloque le contenu malveillant - Automatise la récupération après sinistre sur les sites de sauvegarde - Rend l'environnement informatique plus résilient - Détecte automatiquement les pannes de serveur et redirige les demandes des clients - Permet la maintenance des serveurs sans impacter les opérations en cours - Dirige le trafic vers des serveurs capables et en ligne pour assurer la performance et la fiabilité Aujourd'hui, les répartiteurs de charge sont généralement contenus dans des contrôleurs de livraison d'applications (ADC) qui optimisent le flux de données entre deux entités et améliorent la performance des applications. Cela résulte de l'évolution continue des répartiteurs de charge initialement développés pour assurer des services d'application prévisibles, évolutifs et hautement disponibles. L'équilibrage de charge a parcouru un long chemin depuis sa création. Les entreprises des premiers jours de l'internet commercial s'appuyaient sur des serveurs basés sur PC uniques pour gérer le trafic web. Mais ces serveurs ne pouvaient pas gérer les demandes croissantes des applications web. Puis est venue la technologie de rotation de domaine (DNS) round-robin. Elle a bien fonctionné en termes de distribution séquentielle des utilisateurs en utilisant le nom comme point de virtualisation. Cependant, elle ne pouvait pas améliorer la haute disponibilité et retirer dynamiquement les serveurs défaillants. Cela a conduit à la naissance de solutions d'équilibrage de charge spécialement conçues. Ces solutions sont directement intégrées dans le système d'exploitation (OS) ou le logiciel d'application et communiquent en utilisant le protocole internet de cluster (IP) au lieu des adresses IP physiques. Une session de service ne commencerait qu'après qu'un serveur ait répondu à la demande de connexion et l'ait redirigée vers une adresse IP physique. Ces solutions propriétaires d'équilibrage de charge ont amélioré l'évolutivité, la prévisibilité et la haute disponibilité. Le véritable défi était la communication constante entre les membres du cluster. Plus de serveurs signifiait plus de communication inter-serveurs et d'utilisation du processeur. Cela augmentait le trafic réseau et finissait par impacter le trafic des utilisateurs finaux. Puis est venue l'ère du matériel d'équilibrage de charge basé sur le réseau. Il s'agissait essentiellement d'appareils neutres en termes d'application situés à l'extérieur du serveur d'application. Ils utilisaient la traduction d'adresse réseau bidirectionnelle (NAT) pour rediriger les utilisateurs des adresses de serveur virtuel vers les serveurs réels les plus capables. Les appareils basés sur le réseau ont également permis de masquer l'identité du serveur d'application et de mettre un serveur hors ligne pour maintenance sans perturber l'utilisateur. Les ADC que vous voyez aujourd'hui proviennent de ces répartiteurs de charge basés sur le réseau. Après avoir commencé comme des appareils matériels, les ADC sont rapidement devenus disponibles à la fois sous forme de machines virtuelles et de logiciels. Les ADC basés sur des logiciels ont répondu aux pics de trafic, assuré la sécurité et offert plus de flexibilité. Les ADC sont incomplets sans la technologie sous-jacente d'équilibrage de charge cruciale pour gérer la livraison des applications. Importance de l'équilibrage de charge Les sites web à fort trafic reçoivent des millions de demandes d'utilisateurs simultanées pour un retour instantané des données d'application. Cette charge de travail massive, si elle n'est pas contrôlée, peut submerger un seul serveur. Un serveur surchargé peut ne pas être en mesure de fournir des réponses ou devenir indisponible, entraînant une perte commerciale. C'est là que les répartiteurs de charge interviennent. Un répartiteur de charge coordonne avec les serveurs pour une distribution efficace des demandes des utilisateurs. Il s'assure qu'aucun serveur n'est surchargé ou ne traite aucun trafic. De plus, les dispositifs d'équilibrage de charge peuvent détecter les serveurs défaillants et rediriger le trafic vers des serveurs opérationnels. Certains répartiteurs de charge avec des algorithmes avancés peuvent même prédire si un serveur est susceptible d'être bientôt surchargé et router le trafic en conséquence. Les entreprises recevant un trafic massif ont différents intervenants ainsi que des clients visitant leurs applications ou sites web. La capacité à soutenir cette demande accrue est essentielle pour continuer à bénéficier du soutien des intervenants et des clients. C'est pourquoi les entreprises ajoutent des répartiteurs de charge à leur infrastructure cloud pour améliorer la disponibilité, la réactivité et l'évolutivité. Types de répartiteurs de charge Les répartiteurs de charge sont principalement responsables de la gestion de l'équilibrage de charge des serveurs (SLB). En fonction de leurs capacités, ils peuvent également offrir des fonctionnalités supplémentaires : sécurité, authentification et stockage géographique. Ces fonctions variées, ainsi que les configurations, aident à catégoriser les répartiteurs de charge en sept types. 1. Répartiteur de charge réseau (NLB) Un répartiteur de charge réseau distribue le trafic en fonction de variables réseau : IP source, IP de destination, port source, port de destination et protocole IP. Il est également connu sous le nom de répartiteur de charge de couche 4 (L4) car il fonctionne dans la quatrième couche du modèle d'interconnexion des systèmes ouverts (OSI). Un répartiteur de charge réseau ne prend pas en compte les paramètres au niveau de l'application tels que le type de contenu, les données de cookie, les en-têtes personnalisés, la localisation de l'utilisateur ou le comportement de l'application. Il est sans contexte et dirige le trafic en fonction des informations de la couche réseau contenues dans les paquets. 2. Répartiteur de charge d'application (ALB) Un répartiteur de charge d'application distribue les demandes entrantes en fonction de plusieurs variables au niveau de l'application. Il est également connu sous le nom de répartiteur de charge de couche 7 (L7) car il se classe le plus haut dans le modèle OSI. Un répartiteur de charge d'application est conscient du contenu. Il prend des décisions d'équilibrage de charge sur les éléments de charge utile de contenu tels que l'URL, l'en-tête HTTP et le SSL. Cette conscience permet à un répartiteur de charge d'application de contrôler le trafic des serveurs en fonction du comportement et de l'utilisation de l'application. 3. Répartiteur de charge de serveur global (GSLB) Un répartiteur de charge de serveur global ou répartiteur de charge multi-sites utilise la technologie DNS dynamique pour distribuer le trafic entre les serveurs dans différents emplacements. L'équilibrage de charge de serveur global agit comme un proxy DNS et utilise des algorithmes d'équilibrage de charge en temps réel pour répondre. Il maximise les performances et minimise la latence en permettant aux utilisateurs de se connecter à un serveur géographiquement plus proche d'eux. En plus de l'équilibrage de charge, il surveille la santé des serveurs via des configurations et facilite la récupération en cas de sinistre serveur. 4. Dispositif de répartiteur de charge matériel (HLD) Un dispositif de répartiteur de charge matériel est un appareil physique situé sur site qui route le trafic web vers différents serveurs. Il est généralement implémenté sur la couche de transport (L4) et la couche d'application (L7) du modèle OSI. Les HLDs randomisent soit la distribution du trafic, soit prennent en compte divers facteurs tels que la connexion serveur disponible, l'utilisation des ressources et la puissance de traitement du serveur. Ces répartiteurs de charge n'ont pas de dépendances, et vous pouvez les installer dans des centres de données. Malgré la gestion d'un volume de trafic important, les HLDs offrent une flexibilité limitée et sont coûteux. 5. Répartiteur de charge logiciel (SLB) Un répartiteur de charge logiciel utilise un ou plusieurs algorithmes de planification pour distribuer les demandes entrantes entre les serveurs. Les SLBs sont flexibles, et vous pouvez facilement les intégrer dans des solutions d'orchestration de virtualisation. Étant donné que les SLBs fonctionnent sur du matériel de base, ils sont également moins coûteux. 6. Répartiteur de charge virtuel (VLB) Un répartiteur de charge virtuel est un répartiteur de charge matériel qui fonctionne sur une machine virtuelle. Les VLBs utilisent un logiciel de contrôleur de livraison d'application virtualisé pour distribuer la charge de trafic réseau. Les grandes organisations avec des pics de trafic constants utilisent souvent ces répartiteurs de charge. Les défis courants des VLBs incluent des capacités d'automatisation limitées, moins d'évolutivité et un manque de gestion centralisée. 7. Répartiteur de charge de passerelle (GLB) Un répartiteur de charge de passerelle déploie, évolue et gère des appliances virtuelles telles que des pare-feu, des systèmes d'inspection approfondie des paquets et des systèmes de prévention des intrusions. Ce répartiteur de charge utilise une passerelle réseau à point d'entrée et de sortie unique pour distribuer le trafic. Un GLB fonctionne sur la troisième couche du modèle OSI. Comment fonctionne un répartiteur de charge ? Un répartiteur de charge se situe généralement entre un client et les hôtes qui fournissent des services clients. Supposons qu'un répartiteur de charge soit connecté à un serveur virtuel et à un cluster de points de service. Il est également connecté à des hôtes pour traiter le trafic de retour vers le client. Voici comment ce répartiteur de charge fonctionne lors d'une transaction : - Tentative de connexion : Un client tente de se connecter à des services derrière un répartiteur de charge. - Acceptation de la connexion : Le répartiteur de charge accepte la demande entrante. Il choisit l'hôte le plus approprié mais route la demande uniquement après avoir changé l'IP de destination en fonction des services de l'hôte sélectionné. - Réponse de l'hôte : L'hôte accepte la connexion et répond au client via le répartiteur de charge. - Interception du paquet de retour : Le répartiteur de charge intercepte le paquet de retour et change l'IP source en l'IP du serveur virtuel avant de transmettre le paquet au client. - Réception du paquet de retour : Le client reçoit le paquet de retour et continue à faire d'autres demandes. Algorithmes d'équilibrage de charge L'efficacité de l'équilibrage de charge découle des algorithmes d'équilibrage de charge. Un algorithme d'équilibrage de charge est une logique qu'un répartiteur de charge utilise pour traiter les paquets de données entrants et distribuer les charges entre les serveurs. Sélectionner le bon algorithme est essentiel pour la fiabilité, la performance et la redondance. Les algorithmes d'équilibrage de charge analysent le trafic entrant et utilisent divers paramètres pour le distribuer. En fonction de ces paramètres, les algorithmes d'équilibrage de charge sont divisés en deux types : statiques et dynamiques. Algorithme d'équilibrage de charge statique Un algorithme d'équilibrage de charge statique distribue tout le trafic de manière égale entre les serveurs. Il est statique car il ne prend pas en compte l'état du système actuel pour le déplacement de la charge. Cet algorithme route le trafic en se basant sur la connaissance des ressources du serveur. De plus, un algorithme d'équilibrage de charge statique nécessite que les tâches d'équilibrage de charge soient effectuées uniquement. D'autres appareils ne peuvent pas effectuer ces tâches. Cet algorithme est idéal pour les systèmes avec de faibles variations de charge. Voici quelques-uns des algorithmes d'équilibrage de charge statiques les plus couramment utilisés. Round-robin L'équilibrage de charge round-robin est l'un des algorithmes les plus simples et les plus largement utilisés pour distribuer les demandes entrantes aux serveurs. Il parcourt une liste de serveurs et transmet une demande client à chaque serveur de la liste. À la fin d'une liste, il répète le même processus jusqu'à ce que toutes les demandes soient distribuées. L'algorithme round-robin suppose que tous les serveurs sont disponibles avec la même capacité d'équilibrage de charge. Deux variantes de l'algorithme round-robin sont : 1. Round-robin pondéré : Le round-robin pondéré est une configuration avancée du round-robin. Il attribue un poids à chaque serveur qui désigne généralement la capacité de gestion de la charge d'un serveur. Plus le poids est élevé, plus un serveur reçoit de demandes. Supposons que deux serveurs, X et Y, aient des poids de 2 et 1, respectivement. Un répartiteur de charge distribuera deux demandes à X pour chaque demande qu'il envoie à Y. 2. Round-robin dynamique : Un algorithme round-robin dynamique attribue dynamiquement un poids à chaque serveur. Ce poids varie en fonction de la charge actuelle et de la capacité inoccupée d'un serveur. Hachage IP source L'algorithme d'équilibrage de charge par hachage IP source génère une clé de hachage en combinant les adresses IP source et de destination. Chaque clé de hachage est unique à un serveur spécifique et attribue les demandes uniquement à ce serveur. Cette clé peut être régénérée et garantit qu'un client est dirigé vers le même serveur si une session plante. Statique aléatoire Un algorithme d'équilibrage de charge statique aléatoire attribue aléatoirement des tâches aux serveurs. Il peut même calculer une permutation aléatoire s'il connaît le nombre de tâches à l'avance. Étant donné que les processeurs connaissent déjà les tâches qui leur sont attribuées, un serveur n'a pas besoin d'un maître de distribution dans de tels cas. Cet algorithme fonctionne bien pour une taille de tâche minimale. Gestionnaire central L'algorithme de gestionnaire central distribue la charge de travail avec un nœud central comme coordinateur, choisissant le processeur avec la charge la plus faible. Avoir des informations de charge sur tous les serveurs aide le gestionnaire à sélectionner le processeur le moins chargé. Cet algorithme utilise beaucoup de communication inter-processus, ce qui peut rapidement devenir un goulot d'étranglement. Seuil L'algorithme de seuil attribue le trafic entrant à de nouveaux serveurs. Les serveurs sont sélectionnés localement, éliminant le besoin de communiquer via des messages distants. Chaque serveur garde une copie de la charge du processeur classée en trois niveaux : - Sous-chargé : charge < tunder - Moyen : tunder ≤ charge ≤ tupper - Surchargé : charge > tupper Algorithme d'équilibrage de charge dynamique Un algorithme d'équilibrage de charge dynamique prend des décisions d'équilibrage de charge en se basant sur les informations de performance des nœuds. Cet algorithme distribue la charge de travail à l'exécution et trouve la charge désignée appropriée sur le serveur le plus léger d'un réseau. Les algorithmes d'équilibrage de charge dynamique sont généralement complexes mais offrent de meilleures performances et tolérance. Les algorithmes d'équilibrage de charge dynamique les plus couramment utilisés sont : Moins de connexions Cet algorithme d'équilibrage de charge distribue les demandes des clients aux serveurs avec le moins de connexions actives au moment de recevoir une nouvelle demande. Pour les connexions de plus longue durée, l'algorithme de moins de connexions prend en compte la charge de connexion active lors de la distribution des demandes. Moins de connexions pondérées Le moins de connexions pondérées, une configuration avancée de l'algorithme de moins de connexions, utilise le poids des serveurs et les connexions actives pour distribuer les demandes des clients. Une fois qu'un administrateur attribue un poids à chaque serveur en fonction de sa capacité de gestion du trafic, le moins de connexions pondérées prend en compte diverses caractéristiques des serveurs d'application pour la distribution de la charge. Cet algorithme nécessite plus de temps de calcul mais assure une distribution efficace du trafic. Temps de réponse pondéré Cet algorithme d'équilibrage de charge exploite le temps de réponse des serveurs d'application pour la distribution de la charge. Plus la réponse est rapide, plus un serveur reçoit rapidement la prochaine demande. Cet algorithme calcule les poids des serveurs d'application en connectant le temps de réponse à un contrôle de santé. Basé sur les ressources (adaptatif) Avec cet algorithme, les ressources disponibles pour chaque serveur déterminent les décisions de distribution de la charge. Chaque serveur contient un agent ou un logiciel spécialisé qui mesure les métriques de CPU et de mémoire disponibles. Cet agent rapporte au répartiteur de charge pour une distribution efficace des demandes. Un autre algorithme basé sur les ressources qui utilise des contrôleurs de réseau défini par logiciel (SDN) et des connaissances de la couche réseau pour les décisions de distribution du trafic est un algorithme de charge basé sur les ressources (SDN adaptatif). Les algorithmes d'équilibrage de charge dynamique peuvent sembler surpasser les algorithmes statiques, mais ils sont plus complexes car ils tiennent compte de l'état actuel du système. Cette complexité conduit souvent à des frais généraux et à de mauvaises décisions d'équilibrage de charge. C'est pourquoi il est crucial d'avoir une vue d'ensemble du mécanisme d'équilibrage de charge avant de choisir un répartiteur de charge. Avantages d'un répartiteur de charge Les applications ou ressources web non réactives ne sont pas seulement frustrantes pour les utilisateurs mais affectent également les affaires potentielles. L'équilibrage de charge vous aide à rationaliser l'utilisation des ressources, le temps de réponse et la livraison des données dans des environnements à fort trafic. Voici quelques-uns des principaux avantages d'un répartiteur de charge. Haute performance Un répartiteur de charge réduit la vitesse de chargement et les temps de réponse en routant le trafic entrant vers des serveurs capables. L'équilibrage de charge intelligent réduit la charge sur les serveurs, optimise l'expérience utilisateur et améliore les performances de votre site web ou application. Voici comment un répartiteur de charge améliore les performances des serveurs : - Déchargement SSL : Supprime la surcharge des serveurs et rend plus de ressources disponibles pour votre application web ou vos ressources - Compression du trafic : Compresse le trafic du site web pour optimiser l'expérience utilisateur - Mise en cache du trafic : Livre rapidement le contenu avec des copies conservées des éléments web fréquemment consultés - Support HTTP 2.0 : Aide à communiquer avec les clients et à charger les sites web plus rapidement Redondance Un serveur défaillant perturbe les services. Les répartiteurs de charge utilisent la redondance intégrée pour gérer les pannes matérielles et atténuer leur impact sur le temps de disponibilité du site web. Ils redirigent automatiquement les demandes des clients vers des serveurs fonctionnels lors d'une panne de serveur. Voici comment les répartiteurs de charge assurent davantage la redondance : - Service continu : Utilise des serveurs fonctionnels pour router les demandes des clients lorsqu'un serveur échoue - Contourner les serveurs occupés : Identifie les serveurs occupés et redirige le trafic vers des serveurs moins occupés - Site hautement disponible : Déploie des répartiteurs de charge par paires afin que l'un puisse prendre le relais lorsque l'autre échoue - Continuité des affaires : Détecte une panne de site et redirige les visiteurs vers un site alternatif prédéfini Évolutivité Les pics de trafic peuvent devenir un cauchemar sans un mécanisme pour gérer la charge croissante. Un répartiteur de charge ajoute un serveur physique ou virtuel dans le processus de distribution du trafic pour répondre à cette demande. L'évolutivité assure un service ininterrompu. Voici comment l'évolutivité aide : - Continuité des affaires : Redirige le trafic vers des sites alternatifs lors de pannes de site - Capacité du site web : Gère les pics de trafic avec des serveurs supplémentaires - Mise à l'échelle automatique du cloud : Répond aux demandes variables des sites web hébergés dans le cloud - Ajout de capacité : Évite les mises à niveau perturbatrices Sécurité Les répartiteurs de charge protègent également les données avec des couches de sécurité réseau supplémentaires. Un répartiteur de charge utilise les fonctionnalités suivantes pour renforcer la sécurité de votre site web ou application : - Pare-feu d'application web (WAF) : Protège le site web ou l'application contre les menaces émergentes et exécute des mises à jour de règles quotidiennes - Authentification d'accès utilisateur : Protège les ressources web contre les accès non autorisés - Détection des menaces : Identifie et élimine le trafic de déni de service (DDoS) Défis des répartiteurs de charge Certains des défis les plus courants avec un répartiteur de charge proviennent d'options de configuration inappropriées. Certains de ces défis sont : - Fermeture des connexions silencieuses : Une configuration par défaut dans les répartiteurs de charge ferme les connexions de protocole de contrôle de transmission (TCP) qui sont silencieuses pendant un certain temps. Bien que cela soit approprié pour les répartiteurs de charge gérant les connexions de serveur web, la fermeture automatique peut entraîner l'échec des tentatives de reconnexion d'un client. - Mise en commun des connexions : Les répartiteurs de charge sont souvent dotés d'une fonctionnalité de mise en commun des connexions qui maintient la connexion serveur-répartiteur de charge active. Plusieurs clients utilisent ces connexions. Le problème avec la mise en commun des connexions est qu'une fois que la connexion multiplexée se ferme, toutes les connexions côté client se ferment également. - Connexion TCP coûteuse : Créer une nouvelle connexion TCP pour chaque demande est coûteux et ajoute au temps de traitement des demandes. Ces nouvelles connexions augmentent également considérablement le trafic entre le répartiteur de charge et le serveur. Il est préférable de configurer un répartiteur de charge pour réutiliser les connexions TCP pour les demandes provenant du même client. - Délai d'attente de retransmission TCP : Les répartiteurs de charge utilisant le basculement souffrent d'un délai d'attente de transmission TCP et causent de longues latences pour les clients. Cela est dû au fait que les serveurs indisponibles gardent les connexions clients existantes ouvertes et mettent en mémoire tampon les données avant de les fermer. Vous pouvez éviter cela en modifiant le délai d'attente de retransmission TCP du serveur hôte ou en configurant un répartiteur de charge pour fermer les connexions non saines. Proxy inverse vs répartiteur de charge vs CDN vs clustering Un proxy inverse accepte une demande client et la transmet à un serveur qui peut répondre à la demande. D'autre part, un répartiteur de charge distribue les demandes des clients parmi un pool de serveurs. Les deux : - Améliorent l'efficacité - Agissent comme des appareils dédiés et conçus à cet effet - Renvoient la réponse du serveur au client - Contribuent à une architecture informatique client-serveur - Médiatisent la communication entre le client et le serveur La seule différence entre le proxy inverse et le répartiteur de charge est que le premier est utilisé pour un seul serveur web ou d'application et le second pour plusieurs serveurs. En plus d'offrir une sécurité accrue, les répartiteurs de charge offrent une accélération web qui réduit le temps de réponse. Un réseau de diffusion de contenu (CDN) est un réseau de serveurs dans plusieurs emplacements géographiques. Le CDN livre les données aux utilisateurs depuis l'emplacement le plus proche d'eux. Les CDN et les répartiteurs de charge remplissent des rôles similaires : distribution efficace des données et maximisation du temps de disponibilité. La principale différence entre les CDN et les répartiteurs de charge est que les CDN distribuent le contenu sur une vaste zone géographique, tandis que les répartiteurs de charge distribuent le trafic client sur un réseau de serveurs. Le clustering convertit plusieurs serveurs en un cluster. Ces serveurs connectés agissent comme un seul serveur et partagent une adresse IP commune pour améliorer les performances et la résilience. Voici les principales différences entre l'équilibrage de charge et le clustering : - Type de serveur : L'équilibrage de charge peut fonctionner avec différents types de serveurs, tandis que le clustering nécessite des serveurs identiques au sein d'un cluster. - Gestion : Un contrôleur peut gérer des clusters, mais l'équilibrage de charge nécessite une expertise réseau supplémentaire. - Opérations : Les répartiteurs de charge ne dépendent pas des serveurs de destination. Les clusters dépendent des agents de nœud et des gestionnaires pour la communication. Une organisation en croissance doit identifier des moyens de répondre aux besoins évolutifs des serveurs. Le choix de la technologie varie en fonction du problème que vous essayez de résoudre. Quel que soit l'instrument que vous choisissez, il doit être peu coûteux et flexible au changement. Pour résumer, vous devriez utiliser : - Proxy inverse pour accélérer le flux de trafic en mettant en cache le contenu couramment utilisé et en compressant les données (entrantes et sortantes) - Répartiteur de charge pour améliorer la performance de l'application en augmentant la capacité et la fiabilité de l'application - CDN pour livrer rapidement le contenu aux utilisateurs avec un réseau de serveurs situés à travers le monde - Clustering pour assurer une haute disponibilité en permettant à d'autres serveurs de prendre le relais en cas de panne Cas d'utilisation des répartiteurs de charge Un répartiteur de charge distribue principalement le trafic entrant entre les serveurs backend, mais il peut également faire beaucoup plus. Voici quelques-uns des cas d'utilisation notables d'un répartiteur de charge : - Mise à l'échelle horizontale : La mise à l'échelle du trafic est une préoccupation courante pour les organisations en croissance offrant des services web. Il existe deux types de mise à l'échelle : horizontale (distribution du trafic entre plusieurs serveurs) et verticale (déplacement des applications vers un serveur puissant pour répondre aux demandes croissantes). Les répartiteurs de charge facilitent la mise à l'échelle horizontale et rendent votre site web ou application plus fiable. - Haute disponibilité : La haute disponibilité est essentielle pour réduire les temps d'arrêt et optimiser la fiabilité du système. Les répartiteurs de charge éliminent les points de défaillance uniques et vous aident à atteindre une haute disponibilité. Ils identifient automatiquement les serveurs non fonctionnels avec des contrôles de santé et les retirent pour une meilleure disponibilité. - Déploiements blue/green : Supposons que vous souhaitiez tester votre logiciel de manière approfondie avant de le déployer dans l'infrastructure de production. Tout d'abord, vous devez vous assurer que tout fonctionne avant le déploiement. Grâce à la technique de déploiement blue/green, vous pouvez facilement effectuer ces tests avec un répartiteur de charge. Vous pouvez également revenir à l'ancienne version si un déploiement échoue. - Déploiements canary : Les déploiements canary testent une nouvelle version d'une application pour un sous-ensemble d'utilisateurs et mettent à jour le reste du pool de serveurs en conséquence. Si vous constatez trop d'erreurs après avoir ajouté un serveur canary au pool, vous pouvez annuler le déploiement. Lorsqu'il n'y a pas d'erreurs, vous pouvez continuer à déployer des mises à jour sur le reste du pool. - Déploiements A/B : Les déploiements A/B vous aident à prendre des décisions marketing et de développement éclairées. Les répartiteurs de charge vous permettent d'ajouter des serveurs B au pool de serveurs A existant. Une fois cela fait, vous pouvez obtenir des informations significatives à partir de l'infrastructure de surveillance et de journalisation. Logiciel d'équilibrage de charge L'équilibrage de charge efficace dépend du choix du bon logiciel. Si vous cherchez à gérer un trafic de volume élevé en distribuant les demandes des clients sur les serveurs entrants, laissez le logiciel d'équilibrage de charge faire le gros du travail. Pour être inclus dans cette catégorie, un produit logiciel doit : - Surveiller le trafic web et distribuer les ressources - Mettre à l'échelle les charges de travail de l'infrastructure pour équilibrer le trafic - S'intégrer ou fournir des services de basculement et de sauvegarde *Ci-dessous se trouvent les cinq principales solutions logicielles d'équilibrage de charge du rapport Grid® de l'hiver 2021 de G2. Certains avis peuvent être édités pour plus de clarté. 1. F5 NGINX F5 NGINX offre un proxy inverse et un répartiteur de charge cloud-native et facile à utiliser. Il est doté de capacités variées telles que des contrôles de sécurité, une récupération du système DNS, une surveillance avancée, une persistance de session, des conteneurs Kubernetes et une interface de programmation d'application (API) REST. Ce que les utilisateurs aiment : Simple, facile à utiliser et puissant serveur HTTPS. L'équilibrage de charge est l'un des meilleurs que j'ai jamais vu. J'utilise actuellement uniquement la version gratuite, mais elle fait tout ce dont j'ai besoin. Elle est légère et n'utilise pas beaucoup de ressources. - Avis F5 NGINX, Joseph S. Ce que les utilisateurs n'aiment pas : Moins de support communautaire et de documentation que d'autres serveurs web comme Apache, mais probablement plus que suffisant en fonction de votre expertise et de votre cas d'utilisation. Pas autant de modules ou d'extensions qu'Apache. Cela pourrait être difficile à comprendre comment le configurer initialement. Mais une fois que vous avez compris, c'est assez simple à utiliser. - Avis F5 NGINX, Amogh H. 2. Kemp LoadMaster Kemp LoadMaster offre des solutions d'équilibrage de charge pour une performance élevée et une livraison sécurisée des charges de travail d'application. Il est connu pour ses déploiements simplifiés, sa licence flexible et son support technique de premier ordre. Ce que les utilisateurs aiment : Le produit LoadMaster est incroyablement facile à utiliser pour toutes les bases. Nous avons réussi à configurer facilement des règles d'équilibrage de charge pour les systèmes web et internes, mais il y a tellement plus qu'il peut faire en tant que produit d'équilibrage de charge. Ces fonctionnalités peuvent être assez difficiles à configurer, mais le support est sans égal. Donc, pour tout problème de configuration d'un service, soumettez un ticket, et dans l'heure, quelqu'un revient, et les sessions à distance résolvent les problèmes. Pas d'attente de jours pour une réponse. C'est ce qui nous attire vraiment à renouveler chaque année – vous réalisez à quel point un bon support est important. Configurer les LoadMasters à partir d'une image VM prend environ 15 minutes pour une configuration HA. - Avis Kemp LoadMaster, Daniel S. Ce que les utilisateurs n'aiment pas : Interface web. Elle est non polie et pas intuitive. Par exemple, les serveurs réels ne sont pas configurés dans la section "Serveurs réels". Il est difficile de trouver les paramètres, et les paramètres pour les choses liées sont répartis sur plusieurs sections. Placement incohérent des boutons, noms de champs incohérents : parfois tout en majuscules comme "Délai d'attente de connectivité", parfois en casse mixte comme "Tentatives de réessai" juste en dessous. Manque de support pour Duo 2FA. Une grande partie de la documentation en ligne et des tutoriels sont obsolètes. - Avis Kemp LoadMaster, Peter K. 3. Azure Traffic Manager Azure Traffic Manager offre un service d'équilibrage de charge basé sur le cloud conçu pour assurer une haute disponibilité, augmenter la réactivité, fournir des informations basées sur l'utilisation et combiner des systèmes sur site et cloud. Ce que les utilisateurs aiment : Les gestionnaires de trafic permettent de rediriger les utilisateurs vers des points de terminaison appropriés en fonction de différents paramètres. Nous l'utilisons pour router les utilisateurs vers des versions nationales du site, en fonction de la localisation des utilisateurs. Cela permet aux utilisateurs de voir les informations dans leur langue maternelle et minimise le temps de réponse des pages web car les sites nationaux sont situés dans les centres de données les plus proches. La principale caractéristique est que tout le routage est effectué en arrière-plan, et tous les utilisateurs peuvent utiliser une URL unique pour accéder au site, quel que soit leur emplacement. La deuxième grande caractéristique est l'option de basculement, donc le site reste disponible avec la même URL, quel que soit son emplacement actuel. Nous l'utilisons pour les sites sur site où Azure Site Recovery a été configuré pour les serveurs. L'URL reste active même après le basculement vers Azure. - Avis Azure Traffic Manager, Arthur S. Ce que les utilisateurs n'aiment pas : Cela augmente le temps de réponse initial pour le site en raison des activités de routage. Même si les utilisateurs sont redirigés vers le site le plus proche, la demande initiale ira à la région Azure où le gestionnaire de trafic est déployé. - Avis Azure Traffic Manager, Michael L. 4. AWS Elastic Load Balancing AWS Elastic Load Balancing distribue le trafic d'application entrant pour améliorer l'évolutivité de l'application. Il est connu pour offrir une haute disponibilité, une sécurité robuste et des fonctionnalités de mise à l'échelle automatique. Ce que les utilisateurs aiment : ELB est hautement disponible et permet de router le trafic vers d'autres serveurs instantanément même si le principal est en panne. Il n'est pas facturable. ELB fonctionne bien avec AWS auto scaling (aide à évoluer à la hausse/à la baisse à l'exécution sans impact). Nous pouvons intégrer ELB avec Route53 et cloudfront pour servir la demande à temps depuis différents emplacements pour éviter la latence. Il est sécurisé et facile à installer également. - Avis AWS Elastic Load Balancing, Anshu K. Ce que les utilisateurs n'aiment pas : Les vérifications de santé prennent parfois un peu plus de temps que prévu et cela peut causer des problèmes si vous ne configurez pas soigneusement la configuration de vérification de santé. - Avis AWS Elastic Load Balancing, Joey D. 5. Micro Focus Silk Performer Micro Focus Silk Performer optimise la performance des applications avec des tests de charge et de stress réalistes et puissants. Il offre des diagnostics de bout en bout et permet aux applications de tolérer une utilisation accrue. Ce que les utilisateurs aiment : Analyse des applications et facilité de lancement de tests de fonctionnalité de charge de pointe de toute taille requise. Il est facile de construire des tests en utilisant Micro Focus Silk Performer pour l'amélioration de la qualité de production. - Avis Micro Focus Silk Performer, Debra M. Ce que les utilisateurs n'aiment pas : La scriptation était difficile au départ. De nombreuses fonctions se ressemblent mais il est difficile d'évaluer la bonne. - Avis Micro Focus Silk Performer, Rajesh H. Améliorez le temps de disponibilité et la distribution de la charge Aujourd'hui, les DevOps doivent s'assurer que les applications répondent aux demandes de trafic croissantes avec un minimum de perturbations pour les utilisateurs. Ils exploitent les capacités d'équilibrage de charge telles que la distribution de charge réseau, l'amélioration du temps de disponibilité, la détection des pannes de serveur et la minimisation de la charge des serveurs backend pour maintenir le serveur fonctionnel. Les répartiteurs de charge sont cruciaux pour l'évolutivité, la disponibilité et la sécurité des applications. Vous cherchez à ajouter des répartiteurs de charge à votre réseau ? Découvrez-en plus sur les serveurs privés virtuels et si vous devriez les choisir pour stocker des ressources.

Vous voulez en savoir plus sur Logiciel d'équilibrage de charge ? Découvrez les produits Équilibrage de charge.

Sudipto Paul
SP

Sudipto Paul

Sudipto Paul is an SEO content manager at G2. He’s been in SaaS content marketing for over five years, focusing on growing organic traffic through smart, data-driven SEO strategies. He holds an MBA from Liverpool John Moores University. You can find him on LinkedIn and say hi!