Le terme équilibrage de charge désigne la distribution des charges de travail sur plusieurs ressources informatiques. L’équilibrage de charge vise à optimiser l’utilisation des ressources, à optimiser le débit, à réduire le temps de réponse et à éviter de surcharger une seule ressource. Il peut également améliorer la disponibilité en partageant une charge de travail sur des ressources de calcul redondantes.
Azure propose plusieurs services d’équilibrage de charge dont vous pouvez vous servir pour répartir vos charges de travail entre plusieurs ressources informatiques. Parmi ces ressources figurent Azure Application Gateway, Azure Front Door, Azure Load Balancer et Azure Traffic Manager.
Cet article décrit certaines considérations pour déterminer une solution d’équilibrage de charge appropriée aux besoins de votre charge de travail.
Catégorisations de service
Les services d’équilibrage de charge Azure peuvent être classés selon deux catégories : le global par rapport au régional, et le HTTP(S) par rapport au non-HTTP(S).
Global ou régional
- Global : Ces services d’équilibrage de charge répartissent le trafic entre les back-ends régionaux, les clouds ou les services locaux hybrides. Ces services prennent en charge la gestion d’un plan de contrôle unique responsable de l’acheminement global du trafic des utilisateurs finaux vers un back-end disponible. Ils réagissent souvent aux changements de fiabilité ou de performance du service pour maximiser la disponibilité et la performance. Vous pouvez les considérer comme des systèmes qui équilibrent la charge entre les tampons, les points de terminaison ou les unités d’échelle de l’application hébergés dans différentes régions ou zones géographiques.
- Régional : Ces services d’équilibrage de charge répartissent le trafic des réseaux virtuels entre les machines virtuelles ou les points de terminaison de service zonaux et redondants interzones d’une région. Vous pouvez les considérer comme des systèmes qui équilibrent la charge entre les machines virtuelles, les conteneurs ou les clusters dans une région d’un réseau virtuel.
HTTP(S) ou non-HTTP(S)
- HTTP(S) : Ces services d’équilibrage de charge sont des équilibreurs de charge de couche 7 qui acceptent uniquement le trafic HTTP(S). Ils sont destinés aux applications web ou à d’autres points de terminaison HTTP(S). Ils peuvent avoir des fonctionnalités telles que le déchargement SSL, le pare-feu d’applications web, l’équilibrage de charge basé sur le chemin et l’affinité de session.
- non HTTP(S) : ces services d’équilibrage de charge sont soit couche 4 services TCP ou UDP, soit l’équilibrage de charge DNS.
Le tableau suivant récapitule les services d’équilibrage de charge Azure.
Service | Global/régional | Trafic recommandé |
---|---|---|
Azure Front Door | Global | HTTP(S) |
Azure Traffic Manager | Global | Non-HTTP(S) |
Azure Application Gateway | Zones géographiques | HTTP(S) |
Azure Load Balancer | Régional ou global | Non-HTTP(S) |
Remarque
Azure Traffic Manager et Azure Load Balancer ont les capacités de distribuer tout trafic, y compris HTTP(S). Toutefois, ces services n’ont pas de fonctionnalités de couche 7. Contrairement à Azure Load Balancer, Azure Traffic Manager ne gère pas directement le trafic ; Traffic Manager manipule dns pour diriger les clients vers les points de terminaison appropriés.
Services d’équilibrage de charge Azure
Voici les principaux services d’équilibrage de charge actuellement disponibles dans Azure :
Azure Front Door est un réseau de livraison d’applications qui assure un équilibrage de charge global et un service d’accélération de site pour les applications web. Il offre des fonctionnalités de couche 7 pour votre application, telles que le déchargement SSL, le routage basé sur le chemin, le basculement rapide et la mise en cache pour améliorer les performances et la haute disponibilité de vos applications.
Traffic Manager est un équilibreur de charge du trafic DNS qui vous permet de distribuer le trafic de manière optimale aux services dans toutes les régions Azure globales, tout en offrant réactivité et haute disponibilité. Comme Traffic Manager est un service d’équilibrage de charge basé sur le DNS, il équilibre la charge uniquement au niveau du domaine. C’est ce qui explique qu’il ne peut pas basculer avec la rapidité d’Azure Front Door en raison des difficultés courantes liées à la mise en cache DNS et aux systèmes qui ne respectent pas les TTL de DNS.
Application Gateway fournit un contrôleur de distribution d’applications en tant que service, offrant diverses capacités d’équilibrage de charge de niveau 7 et des fonctionnalités de pare-feu d’applications web. Utilisez-le pour passer de l’espace réseau public à vos serveurs web hébergés dans un espace réseau privé au sein d’une région.
Load Balancer est un service d’équilibrage de charge de couche 4 à ultra faible latence et hautes performances (en entrée et en sortie) pour tous les protocoles UDP et TCP. Il est conçu pour gérer des millions de demandes par seconde, tout en garantissant la haute disponibilité de votre solution. Load Balancer est redondant interzone, ce qui garantit une haute disponibilité dans les zones de disponibilité. Il prend en charge une topologie de déploiement régional et une topologie interrégion.
Remarque
La technologie de clustering, telle que Azure Container Apps ou Azure Kubernetes Service, contient des constructions d’équilibrage de charge qui opèrent principalement dans le cadre de leur propre périmètre de cluster, acheminant le trafic vers des instances d’application disponibles en fonction des sondes de disponibilité et d’intégrité. Ces options d’équilibrage de charge ne sont pas couvertes dans cet article.
Arbre de décision pour l’équilibrage de charge dans Azure
Considérez ces facteurs lorsque vous sélectionnez une solution d’équilibrage de charge :
- Type de trafic : S’agit-il d’une application web HTTP(S) ? S’agit-il d’une application publique ou privée ?
- Mondial vs régional : Avez-vous besoin d’équilibrer la charge des machines virtuelles ou des conteneurs au sein d’un même réseau virtuel, ou d’équilibrer la charge des unités de mise à l’échelle/déploiements entre les régions, ou les deux ?
- Disponibilité : Quel est le contrat de niveau de service ?
- Coût : Pour plus d’informations, consultez Tarification Azure. Outre le coût du service proprement dit, considérez le coût des opérations de gestion d’une solution reposant sur ce service.
- Fonctionnalités et limites : Quelles sont les capacités prises en charge par chaque service et quelles sont les limites de service de chaque service ?
![CONSEIL] Le portail Azure propose un guide basé sur un questionnaire similaire au schéma suivant. Dans le portail Azure, recherchez « Équilibrage de charge : aidez-moi à choisir ». En répondant aux questions, vous pouvez affiner vos options d’équilibrage de charge.
L’organigramme suivant vous aide à choisir une solution d’équilibrage de charge pour votre application. Il vous guide au travers d’un ensemble de critères de décisions clé pour trouver une recommandation.
Traitez cet organigramme comme un point de départ. Chaque application dispose de ces exigences propres, utilisez donc la recommandation pour commencer. Effectuez ensuite une évaluation plus détaillée.
Lorsque votre charge de travail implique plusieurs services nécessitant un équilibrage de charge, il est important d’évaluer chaque service individuellement. Dans de nombreux cas, une configuration efficace utilise plus d’un type de solution d’équilibrage de charge. Vous pouvez intégrer ces solutions à différents endroits dans l’architecture de votre charge de travail, chacune remplissant une fonction ou un rôle unique.
Définitions
Application web (HTTP/HTTPS) : Cela fait référence à la nécessité de prendre une décision d’acheminement pour les données de niveau 7 telles que le chemin URL, de prendre en charge l’inspection de la charge utile de la communication (telle que le corps de la requête HTTP) ou de gérer la fonctionnalité TLS.
Application accessible sur Internet : Applications accessibles publiquement depuis Internet. En guise de meilleure pratique, les propriétaires d’applications appliquent des stratégies d’accès restrictives ou protègent l’application en configurant des offres telles que le pare-feu d’applications web et la protection DDoS.
Mondial / Déployé dans plusieurs régions : Si cet équilibreur de charge doit avoir un plan de contrôle unique et hautement disponible, responsable de l’acheminement du trafic vers des points de terminaison publics sur votre application distribuée mondialement. Cela peut être pour prendre en charge des topologies actives-actives ou actives-passives entre les régions.
Remarque
Il est possible d’utiliser un service régional, tel que Application Gateway, pour équilibrer la charge entre les backends répartis sur plusieurs régions et contrôler l’acheminement via un plan de contrôle unique. Cette architecture est rendue possible grâce à Private Link inter-région, l’appairage de réseaux virtuels globaux, ou même les IP publiques des services dans d’autres régions.
Cependant, ce scénario n’est pas le principal objectif de cette décision.
Utiliser une ressource régionale comme routeur pour des backends distribués mondialement introduit un point de défaillance régional unique et entraîne une latence supplémentaire car le trafic est forcé de passer par une région avant d’aller dans une autre, puis de revenir.
Platform as a service (PaaS) : Offre un environnement d’hébergement géré, dans lequel vous pouvez déployer votre application sans avoir à gérer de machines virtuelles ni de ressources réseau. Dans ce cas, PaaS fait référence à des services qui assurent l’équilibrage de charge intégré dans une région. Pour plus d’informations, consultez Choisir un service de calcul – Scalabilité.
Azure Kubernetes Service (AKS) : Permet de déployer et de gérer des applications conteneurisées. AKS fournit Kubernetes serverless, expérience d’intégration continue et de livraison continue (CI/CD), ainsi qu’une sécurité et une gouvernance de classe entreprise. Pour plus d’informations sur les ressources architecturales AKS, consultez Conception de l’architecture d’Azure Kubernetes Service.
Les services Infrastructure as a service (IaaS): constituent une option de calcul où vous approvisionnez les machines virtuelles dont vous avez besoin, ainsi que les composants de stockage et de réseau associés. Les applications IaaS nécessitent un équilibrage de charge interne au sein d’un réseau virtuel avec Load Balancer.
Traitement de la couche application : Fait référence à un routage spécial au sein d’un réseau virtuel. Par exemple, un routage basé sur le chemin au sein d’un réseau virtuel sur des machines virtuelles ou des groupes de machines virtuelles identiques. Pour plus d’informations, consultez Quand faut-il déployer Application Gateway derrière Front Door ?
Accélération des performances : Fait référence aux fonctionnalités qui accélèrent l’accès web. Il est possible de mettre en œuvre l’accélération des performances en utilisant des réseaux de distribution de contenu (CDN) ou un point de présence (POP) optimisé en entrée pour accélérer l’intégration du client au réseau de destination. Azure Front Door prend en charge les CDN et l’accélération de trafic Anycast. Les avantages des deux fonctionnalités peuvent être obtenus avec ou sans Application Gateway dans l’architecture.
Considérations supplémentaires
Chaque service d’équilibrage de charge a également des capacités de prise en charge ou des détails de mise en œuvre à prendre en compte. Voici quelques exemples qui pourraient être pertinents pour votre scénario d’équilibrage de charge.
- Support des Web Sockets
- Support du HTTP/2 (à la fois en réception et en continuation vers les nœuds backend)
- Support des sessions persistantes
- Mécanisme de surveillance de la santé des nœuds backend
- Expérience client ou délai entre la détection d’un nœud défaillant et son retrait de la logique d’acheminement.
Exemples
Le tableau suivant répertorie divers articles basés sur les services d’équilibrage de charge utilisés comme solution.
Services | Article | Description |
---|---|---|
Load Balancer | Équilibrer la charge des machines virtuelles entre les zones de disponibilité | Équilibrez la charge des machines virtuelles dans les zones de disponibilité pour protéger vos applications et données dans l’éventualité peu probable d’une défaillance ou d’une perte d’un centre de données entier. Avec la redondance de zone, une ou plusieurs zones de disponibilité peuvent subir une défaillance sans que cela n’empêche le chemin de données de survivre du moment qu’il reste une zone intègre dans la région. |
Traffic Manager | Application web à niveaux multiples construite pour une haute disponibilité et une récupération d’urgence | Déployez des applications multiniveaux résilientes conçues pour la haute disponibilité et la reprise d’activité après sinistre. Si la région primaire n’est plus disponible, Traffic Manager bascule vers la région secondaire. |
Azure Front Door + Application Gateway | SaaS mutualisé sur Azure | Utilisez une solution multilocataire qui associe Azure Front Door et Application Gateway. Azure Front Door permet d’équilibrer la charge du trafic entre les régions. Application Gateway équilibre la charge du trafic en interne dans l’application et le route vers les différents services qui répondent aux besoins de l’entreprise du client. |
Traffic Manager + Application Gateway | Équilibrage de charge multirégion avec Traffic Manager et Application Gateway | Découvrez comment traiter les charges de travail web et déployer des applications multiniveaux résilientes dans plusieurs régions Azure pour bénéficier d’une haute disponibilité et d’une infrastructure de reprise d’activité après sinistre robuste. |