Intégration de Cloud Service Mesh à l'Annuaire des services

Ce document explique comment utiliser le registre de services de l'Annuaire des services avec Cloud Service Mesh, qui permet à celui-ci d'acheminer le trafic vers les services enregistrés auprès de l'Annuaire des services et d'appliquer les règles de trafic. Ce document est destiné aux développeurs Cloud Service Mesh qui souhaitent intégrer leurs applications à d'autres services dans Google Cloud.

L'Annuaire des services est un registre de services qui stocke des informations sur les services réseau enregistrés auprès de lui, y compris leur nom, leur emplacement et leurs attributs. Vous pouvez enregistrer vos services automatiquement, en capturant tous les détails, et tous les services peuvent être enregistrés, quelle que soit leur infrastructure.

Le registre peut contenir non seulement des services Google Cloud, mais également des services hybrides exécutés sur site ou dans d'autres clouds publics. Pour mieux comprendre les informations de ce document, nous vous recommandons de vous familiariser avec les principes de base des opérations de l'Annuaire des services.

Lorsque vous utilisez le registre de services de l'Annuaire des services avec Cloud Service Mesh, l'intégration met les services du registre de services à la disposition des applications de votre réseau maillé et des passerelles configurées par Cloud Service Mesh. L'intégration de Cloud Service Mesh à l'Annuaire des services est compatible avec Envoy et gRPC sans proxy, pour les intégrations de l'Annuaire des services avec les équilibreurs de charge réseau passthrough internes, les équilibreurs de charge d'application internes et Private Service Connect L4.

Pour intégrer vos services, vous devez les enregistrer auprès de l'Annuaire des services, puis les lier à un service de backend Cloud Service Mesh. Une fois la liaison établie, Cloud Service Mesh interroge l'Annuaire des services pour obtenir des informations sur le service enregistré et la manière d'y accéder. Cloud Service Mesh suit également les modifications apportées au service. L'intégration permet à votre maillage de services et à la passerelle autogérée d'envoyer du trafic vers ces services. Il vous permet également d'appliquer des règles, par exemple des règles de gestion avancée du trafic, que vous configurez dans Cloud Service Mesh.

Lorsque vous utilisez cette intégration, la liaison de service agit en tant que backend, quel que soit le type de backend utilisé par le service lui-même. Cette intégration simplifie le déploiement de Cloud Service Mesh, car celui-ci peut envoyer du trafic au service sans tenir compte du type de backend.

Lorsqu'un service est enregistré auprès de l'Annuaire des services, vous n'avez pas besoin de configurer des groupes d'instances ou différents types de groupes de points de terminaison du réseau (NEG) pour accéder aux services dont vous avez besoin. Vous pouvez enregistrer automatiquement Google Kubernetes Engine, les équilibreurs de charge internes et Private Service Connect dans l'Annuaire des services, ce qui simplifie davantage l'accès de Cloud Service Mesh à ces services.

Ressources utilisées par l'intégration

L'intégration entre Cloud Service Mesh et l'Annuaire des services utilise les ressources suivantes.

Services de l'Annuaire des services

L'Annuaire des services est un registre de services. L'Annuaire des services vous permet d'enregistrer différents types de services, y compris des services qui résident dans Google Cloud ou dans d'autres environnements (par exemple, un centre de données sur site). Chaque service comprend un nom unique et zéro ou plusieurs points de terminaison de service. Un point de terminaison de service comprend une adresse, un port, des propriétés et des métadonnées. S'il n'y a aucun point de terminaison,vous ne pouvez pas acheminer le trafic vers le service.

Liaisons de service

Une liaison de service est une ressource qui inclut le nom de domaine complet du service de l'Annuaire des services. Par exemple, projects/test-proj/locations/us-east1/namespaces/test-namespace/services/test-service est un nom de domaine complet pour un service de l'Annuaire des services.

Services de backend

Les services de backend sont des ressources de configuration qui fournissent des informations à Cloud Service Mesh, y compris des backends, tels que des groupes d'instances gérés, vers lesquels le service de backend achemine le trafic. Les services de backend qui font référence à des liaisons de service ne peuvent pas comporter de backends. Pour utiliser l'intégration de Cloud Service Mesh dans l'Annuaire des services, vous devez créer un service de backend afin de référencer les liaisons de service.

Un service de backend peut comporter plusieurs liaisons de service. Cette configuration est utile dans les cas où vous avez des déploiements régionaux de la même application. Vous pouvez enregistrer chaque déploiement régional dans une instance régionale de l'Annuaire des services en tant que service régional 1 et service régional 2. Chacun de ces services régionaux de l'Annuaire des services peut ensuite être associé au même service de backend, à l'aide de deux liaisons de service. La liaison de service globale 1 serait associée au service régional 1 dans la région A, et la liaison de service globale 2 serait associée au service régional 2 dans la région B.

Cas d'utilisation

L'intégration de votre déploiement Cloud Service Mesh à l'Annuaire des services permet de créer de nouveaux cas d'utilisation utiles lorsque vous dépendez de services détenus ou publiés par d'autres équipes ou organisations.

Mettre les services existants à la disposition de Cloud Service Mesh

L'Annuaire des services s'intègre aux produits Google Cloud tels que GKE, les équilibreurs de charge réseau passthrough internes et les équilibreurs de charge d'application internes. Lorsque les producteurs de services créent un service GKE ou un équilibreur de charge, ils peuvent l'enregistrer auprès de l'Annuaire des services.

Une fois qu'un service est enregistré auprès de l'Annuaire des services, vous pouvez configurer Cloud Service Mesh pour qu'il communique avec ce service. Les clients Cloud Service Mesh peuvent ensuite communiquer avec les services qui s'exécutent derrière des équilibreurs de charge réseau passthrough internes et des équilibreurs de charge d'application internes.

Améliorer la coordination entre les producteurs de services et les consommateurs

Les grandes entreprises disposent de nombreuses équipes de développeurs indépendantes. Ces équipes mettent leurs services à la disposition d'autres équipes afin que davantage d'équipes puissent utiliser les fonctionnalités fournies par le service partagé. Des dépendances entre les équipes sont ainsi créées. Bien que ces dépendances permettent aux équipes de partager leurs efforts, elles entraînent également une surcharge de coordination.

Lorsque vous utilisez l'Annuaire des services, une équipe (le producteur) enregistre un service qu'elle souhaite mettre à la disposition des autres équipes ou organisations (consommateurs). Le producteur partage une référence à ce service avec un consommateur. Le client peut se servir de cette référence pour rechercher le service du producteur dans l'Annuaire des services et découvrir les points de terminaison du service. Par exemple, le point de terminaison peut être une adresse IP virtuelle (IPV) sur laquelle le service du producteur s'attend à recevoir du trafic.

L'intégration de Cloud Service Mesh à l'Annuaire des services vous permet d'automatiser le processus en associant un service de l'Annuaire des services à un service de backend Cloud Service Mesh, ce qui présente les avantages suivants:

  • Cloud Service Mesh résout automatiquement les points de terminaison du service en les synchronisant à partir de l'Annuaire des services. Si les points de terminaison du service de l'Annuaire des services sont mis à jour, Cloud Service Mesh synchronise automatiquement ces modifications.
  • Vous pouvez définir différentes règles de routage et de gestion du trafic, telles que les délais d'expiration, dans Cloud Service Mesh. Ces règles vous permettent d'affiner la manière dont vos applications envoient des requêtes au service de l'Annuaire des services. Pour en savoir plus sur le routage et la gestion du trafic dans Cloud Service Mesh, consultez la page Gestion avancée du trafic.
  • Cloud Service Mesh utilise des fonctionnalités de gestion du trafic telles que l'équilibrage de charge basé sur la proximité, pour diriger le trafic des applications vers les points de terminaison de manière optimale, par exemple en réduisant le délai aller-retour.
Utiliser l'Annuaire des services pour la détection de services
Utiliser l'Annuaire des services pour la détection de services (cliquez pour agrandir)

Lorsque vous, un consommateur, utilisez Cloud Service Mesh et associez un service de backend à un service de l'Annuaire des services, cela réduit la charge de coordination entre les équipes.

  • Vous associez le service, Payments, par son nom.
  • Cloud Service Mesh partage des informations sur le service Payments avec ses clients.

    • Par exemple, les proxys side-car exécutés dans votre maillage de services connaissent désormais le point de terminaison (par exemple 10.0.0.1:80) auquel le service est accessible.
  • Vos applications peuvent appeler ce service par nom sans que vous ou votre application n'ayez besoin de savoir quoi que ce soit sur le point de terminaison du service externe. Dans le schéma, le service est le service Payments.

  • Lorsque le producteur de services met à jour le service externe (par exemple, en modifiant son point de terminaison), Cloud Service Mesh récupère la mise à jour et la partage facilement avec ses clients.

Accéder aux services d'un périmètre à l'aide d'un point d'entrée

Une équipe peut regrouper un ensemble de services au sein d'un périmètre VPC Service Controls et exposer ces services via un seul point d'entrée. Ce point d'entrée peut être enregistré dans l'Annuaire des services et mis à la disposition des utilisateurs qui souhaitent accéder aux services du périmètre. Pour en savoir plus sur les périmètres VPC Service Controls, consultez la page Périmètres de service : détails et configuration.

Par exemple, une équipe crée une passerelle d'entrée à l'aide d'un équilibreur de charge d'application interne qui distribue les requêtes à une collection de services Kubernetes dans un cluster. Cette passerelle d'entrée est automatiquement enregistrée en tant que service dans l'Annuaire des services. Un client qui souhaite accéder aux services Kubernetes peut rechercher cette passerelle d'entrée dans l'Annuaire des services. Le client peut ensuite configurer le réseau maillé Cloud Service Mesh pour accéder aux services du périmètre via la passerelle.

Connecter des services entre domaines

Vous pouvez devoir connecter des services qui se trouvent dans différents domaines.

Connecter des services entre les organisations

Vous pouvez souhaiter accéder à des services appartenant à une autre organisation, telle que des API Google (par exemple, Cloud SQL) ou à des services gérés tiers.

L'Annuaire des services est compatible avec Private Service Connect. Lorsque vous créez un point de terminaison Private Service Connect dans votre réseau, le point de terminaison peut être enregistré en tant que service avec l'Annuaire des services. Vous pouvez ensuite associer ce service à Cloud Service Mesh, de sorte que les clients du réseau maillé tels que les clients Envoy et gRPC, ainsi que les passerelles autogérées telles qu'Apigee, puissent appeler ces services.

Utilisation de l'Annuaire des services pour la détection de services avec Private Service Connect.
Utiliser l'Annuaire des services pour la détection de services avec Private Service Connect (cliquez pour agrandir)

L'exemple précédent montre comment utiliser Private Service Connect avec Cloud Storage pour appeler des API Google à l'aide d'un point de terminaison de votre réseau cloud privé virtuel.

Connecter des services sur des réseaux VPC

Certaines entreprises utilisent plusieurs réseaux VPC dans leur déploiement Google Cloud. Dans ce cas, un service d'un réseau VPC peut avoir besoin d'accéder à un service dans un autre réseau VPC. Vous pouvez configurer l'appairage VPC pour accéder à un service sur un autre réseau VPC, mais cette configuration crée des difficultés lorsque des plages d'adresses IP se chevauchent entre des réseaux appairés.

Private Service Connect peut rendre un service d'un réseau VPC accessible de manière sécurisée et privée aux services d'un autre réseau VPC, à l'aide d'un seul point de terminaison IP:port.

Vue détaillée de l'utilisation de l'Annuaire des services pour la détection de services avec Private Service Connect
Vue détaillée de l'utilisation de l'Annuaire des services pour la détection de services avec Private Service Connect (cliquez pour agrandir)

Exemples supplémentaires dans différents domaines

Les deux exemples précédents illustrent des cas où vous devrez peut-être traverser des domaines, mais il existe de nombreux exemples supplémentaires. Par exemple, vous créez une passerelle située à l'intersection de deux régions Google Cloud. Les services d'une région peuvent atteindre les services d'une autre région via cette passerelle. Vous enregistrez la passerelle en tant que service dans l'Annuaire des services, puis vous l'utilisez avec Cloud Service Mesh, comme décrit dans ce document.

Appliquer des règles lorsque des services sont accessibles

Cloud Service Mesh est compatible avec des fonctionnalités telles que la gestion avancée du trafic qui peuvent être configurées à l'aide de règles. Par exemple, vous pouvez définir une règle de mise en miroir du trafic de sorte que chaque fois qu'un client envoie une requête à un service de backend particulier, le trafic est également envoyé à un deuxième service de backend.

Lorsque vous liez un service de l'Annuaire des services à un service de backend Cloud Service Mesh, vous pouvez configurer ces types de règles dans Cloud Service Mesh. Vos proxys side-car, vos proxys intermédiaires ou périphériques, ainsi que vos clients sans proxy, apprennent ces règles et les appliquent.

Voici quelques exemples :

  • Répartition du trafic en fonction d'une pondération, par exemple entre deux services de l'Annuaire des services
  • Mise en miroir du trafic, par exemple vers un service d'audit
Les requêtes du service "users" sont mises en miroir sur le service "audit"
Les requêtes du service users sont mises en miroir sur le service audit (cliquez pour agrandir)

Compatibilité de Cloud Service Mesh et des clients existants

Même lorsque Cloud Service Mesh est déployé dans votre organisation, certains de vos clients peuvent ne pas l'utiliser. Par exemple, vous devrez peut-être accéder à un service à partir d'une machine virtuelle ne faisant pas partie d'un maillage de services.

Lorsque vous liez un service de l'Annuaire des services à un service de backend Cloud Service Mesh, les clients de Cloud Service Mesh obtiennent automatiquement des informations à jour sur ce service. Les clients qui n'utilisent pas Cloud Service Mesh peuvent rechercher et utiliser des informations de service dans l'Annuaire des services.

Limites

Cloud Service Mesh n'est pas compatible avec les NEG de nom de domaine complet (INTERNET_FQDN_PORT) dans l'intégration de l'annuaire des services.

Étape suivante