Équilibrage de charge Traffic Director

Traffic Director fournit un équilibrage de charge mondial pour vos microservices internes avec des proxys side-car. Vous pouvez déployer des microservices internes (basés sur un proxy side-car) avec des instances situées dans plusieurs régions. Traffic Director fournit des informations d'état, de routage et de backend aux proxys side-car, ce qui leur permet d'effectuer un routage optimal du trafic d'un service vers les instances d'application dans plusieurs régions cloud.

Dans l'illustration suivante, le trafic utilisateur entre dans un déploiement Google Cloud via un équilibreur de charge mondial externe. L'équilibreur de charge externe répartit le trafic vers le microservice Front End dans us-central1 ou asia-southeast1, en fonction de l'emplacement de l'utilisateur final.

Le déploiement interne comprend trois microservices mondiaux : Front End, Shopping Cart et Payments. Chaque service s'exécute sur des groupes d'instances gérés dans deux régions, us-central1 et asia-southeast1. Traffic Director utilise un algorithme d'équilibrage de charge global qui dirige le trafic de l'utilisateur californien vers les microservices déployés dans la région us-central1 et les requêtes de l'utilisateur singapourien vers les microservices de la région asia-southeast1.

La requête entrante d'un utilisateur est acheminée vers le microservice Front End. Le proxy de service installé sur l'hôte avec Front End dirige ensuite le trafic vers le microservice Shopping Cart. Le proxy de service installé sur l'hôte avec Shopping Cart achemine le trafic vers le microservice Payments.

Traffic Director dans un déploiement d'équilibrage de charge global (cliquez pour agrandir)
Traffic Director dans un déploiement d'équilibrage de charge global (cliquez pour agrandir)

Dans l'exemple suivant, si Traffic Director reçoit des résultats de vérification d'état indiquant que les VM qui exécutent le microservice Shopping Cart dans la région us-central1 ne sont pas opérationnelles, il charge le proxy side-car des microservices Front End de basculer le trafic vers le microservice Shopping Cart qui s'exécute dans la région asia-southeast1. Comme l'autoscaling est intégré à la gestion du trafic dans Google Cloud, Traffic Director informe le groupe d'instances géré dans la région asia-southeast1 du trafic supplémentaire, ce qui augmente la taille du groupe.

Traffic Director détecte que tous les backends du microservice Payments sont opérationnels. Il charge donc le proxy Envoy du microservice Shopping Cart d'envoyer une partie du trafic, jusqu'à la capacité configurée du client, à la région asia-southeast1 et d'envoyer le reste à la région us-central1.

Basculement avec Traffic Director dans un déploiement d'équilibrage de charge global (cliquez pour agrandir)
Basculement avec Traffic Director dans un déploiement d'équilibrage de charge global (cliquez pour agrandir)

Composants de l'équilibrage de charge dans Traffic Director

Lors de la configuration de Traffic Director, vous configurez plusieurs composants d'équilibrage de charge :

  • Une règle de transfert globale, qui inclut l'adresse IP virtuelle, le proxy cible et le mappage d'URL. Tous ces éléments font partie du mécanisme de routage du trafic de Traffic Director. Le proxy cible doit être un proxy HTTP cible.
  • Le service de backend, qui contient les valeurs de configuration.
  • Une vérification d'état, qui permet de vérifier l'état des VM et des pods dans votre déploiement.

Le schéma suivant montre une application s'exécutant sur des VM Compute Engine ou des pods Google Kubernetes Engine, les composants et le flux de trafic dans un déploiement Traffic Director :

Ressources Traffic Director à configurer (cliquez pour agrandir)
Ressources Traffic Director à configurer (cliquez pour agrandir)

Le schéma montre Traffic Director et les ressources d'équilibrage de charge Google Cloud qu'il utilise pour déterminer le routage du trafic. Un proxy side-car compatible avec l'API xDS (tel qu'Envoy, comme illustré) s'exécute sur une instance de VM cliente ou dans un pod Kubernetes. Traffic Director sert de plan de contrôle et communique directement avec chaque proxy à l'aide des API xDS. Dans le plan de données, l'application envoie le trafic à l'adresse IP virtuelle configurée dans la règle de transfert de Google Cloud. Le trafic est intercepté par le proxy side-car et redirigé vers le backend approprié. Pour en savoir plus sur la détection de services et l'interception du trafic, consultez la page Détection de services Traffic Director.