Annuaire des services est un service couvert par les obligations de Google définies dans l'Avenant relatif au traitement des données dans le cloud.
L'Annuaire des services est un emplacement unique pour publier, découvrir et se connecter aux services de manière cohérente et fiable, quel que soit leur environnement. L'Annuaire des services prend en charge les services dans les environnements Google Cloud, multicloud et sur site. Il peut effectuer un scaling à la hausse afin d'adapter sa capacité à des milliers de services et de points de terminaison pour un même projet.
L'Annuaire des services propose les fonctionnalités suivantes :
- Une API d'enregistrement et de recherche pour créer et résoudre des espaces de noms, des services et des points de terminaison
- Intégration à Cloud DNS. Les zones de l'annuaire des services permettent de rendre des services disponibles sur un cloud privé virtuel (VPC).
- Intégration d'IAM pour attribuer et contrôler la visibilité et les autorisations des services
- Prise en charge intégrée de la Google Cloud CLI et de la consoleGoogle Cloud pour interagir avec l'Annuaire des services
- Intégration de Cloud Monitoring et Cloud Logging pour la surveillance, l'audit et le débogage des opérations Annuaire des services
Pourquoi utiliser l'annuaire des services ?
À mesure que les applications adoptent des services, il devient plus difficile de résoudre l'emplacement d'un service à mesure que les points de terminaison de ces services changent. Les services déployés dans des environnements hybrides présentent des obstacles supplémentaires, car ils ne partagent pas forcément le même système de dénomination, ce qui rend la résolution et la connexion des services difficiles. Pour illustrer le problème, prenons l'exemple suivant.
Imaginez que vous créez une API simple et que votre code doit appeler une autre application. Lorsque les informations sur les points de terminaison restent statiques, vous pouvez coder en dur ces emplacements dans votre code ou les stocker dans un petit fichier de configuration. Toutefois, avec les microservices et le multicloud, ce problème devient beaucoup plus difficile à résoudre, car les instances, les services et les environnements peuvent tous changer.
L'annuaire des services vous permet d'enregistrer tous vos services dans un seul endroit et de les résoudre à l'aide de HTTP, gRPC et DNS.
Revenons au schéma précédent, mais cette fois en ajoutant Annuaire des services. Dans le diagramme suivant, chaque instance de service est enregistrée auprès de l'annuaire des services. Ces enregistrements sont immédiatement reflétés dans le DNS et peuvent être interrogés à l'aide de HTTP/gRPC, quels que soient leur implémentation et leur environnement.
Vous pouvez créer un nom de service universel qui fonctionne dans les produits Google Cloud, comme App Engine et GKE. Vous pouvez rendre ces services disponibles via le DNS. Vous pouvez appliquer des contrôles d'accès aux services en fonction du réseau, du projet et des rôles IAM des comptes de service.
L'Annuaire des services résout les problèmes suivants :
- Interopérabilité : l'annuaire des services est un service de dénomination universel qui fonctionne sur Google Cloud, le multicloud et les environnements sur site. Vous pouvez migrer des services entre ces environnements et continuer à utiliser le même nom de service pour enregistrer et résoudre les points de terminaison.
- Gestion des services : l'Annuaire des services est un service géré. Votre organisation n'a pas à se soucier de la haute disponibilité, de la redondance, du scaling ni de la maintenance liés à la gestion de votre propre registre de services.
- Contrôle des accès : avec Service Directory, vous pouvez contrôler qui peut enregistrer et résoudre vos services à l'aide d'IAM. Attribuez des rôles Annuaire des services à des équipes, des comptes de service et des organisations.
- Limites du DNS pur : les résolveurs DNS peuvent être peu fiables en termes de respect des valeurs TTL et de mise en cache, ne peuvent pas gérer les enregistrements de grande taille et n'offrent pas de moyen simple de fournir des métadonnées aux utilisateurs. En plus de la compatibilité avec le DNS, l'annuaire des services propose des API HTTP et gRPC pour interroger et résoudre les services.
Utiliser Cloud DNS avec Annuaire des services
Cloud DNS est un service Domain Name System (DNS) rapide, évolutif et fiable qui s'exécute sur l'infrastructure de Google.
En plus des zones DNS publiques, Cloud DNS fournit également une solution DNS interne gérée pour les réseaux privés surGoogle Cloud. Les zones DNS privées vous permettent de nommer en interne vos instances de machine virtuelle (VM), vos équilibreurs de charge ou d'autres ressources. Les requêtes DNS pour ces zones DNS privées sont limitées à vos réseaux privés.
Le schéma suivant montre comment utiliser les zones de l'annuaire des services pour rendre les noms de service disponibles à l'aide de recherches DNS.
Présentation des différents composants :
- Les points de terminaison sont enregistrés directement dans l'Annuaire des services à l'aide de l'API Annuaire des services. Vous pouvez enregistrer des servicesGoogle Cloud et non-Google Cloud avec l'annuaire des services.
- Les clients externes et internes peuvent rechercher ces services à l'adresse suivante : https://servicedirectory.googleapis.com.
- Pour activer les requêtes DNS, créez une zone Annuaire des services dans Cloud DNS associée à un espace de noms Annuaire des services.
- Les clients internes peuvent résoudre ce service à l'aide de DNS, HTTP et gRPC. Les clients externes (clients ne se trouvant pas sur le réseau privé) doivent utiliser HTTP ou gRPC pour résoudre les noms de service.
Exemple de configuration
Exposer un service sur DNS
Le schéma suivant illustre la façon dont une architecture de microservices est modélisée dans Annuaire des services et mise à disposition à l'aide du DNS. Notez que l'annuaire des services gère entièrement les services et les points de terminaison, mais que la zone privée se trouve dans Cloud DNS.
Dans ce schéma (à gauche), le service payments est enregistré dans un espace de noms portant le nom backend-namespace, la région us-east1 et le projet gcp-project. L'espace de noms est associé à la zone privée example.com.
Pour effectuer une résolution DNS, le client demande l'enregistrement SRV pour le nom de domaine _payments._tcp.payments.example.com, qui est résolu en numéros de port et en enregistrements d'adresse pour les points de terminaison du service de paiement.
Étapes suivantes
- Pour savoir comment configurer un espace de noms Annuaire des services, créer un service dans l'espace de noms et attribuer des points de terminaison à un service, consultez Configurer l'Annuaire des services.
- Pour savoir comment créer une zone Annuaire des services qui utilise un espace de noms existant, consultez Configurer une zone DNS dans l'Annuaire des services.
- Pour savoir comment interroger une zone Annuaire des services existante à l'aide d'un DNS, consultez Interroger à l'aide d'un DNS.
- Pour trouver des solutions aux problèmes courants que vous pouvez rencontrer lors de l'utilisation de l'Annuaire des services, consultez la page Dépannage.