Cloud Service Mesh avec les fonctionnalités compatibles avec les API Google Cloud
Ce document récapitule les fonctionnalités disponibles dans Cloud Service Mesh.
Un maillage de services Cloud Service Mesh est constitué de vos applications, un service (le proxy Envoy Open Source ou gRPC) (plan de données sans proxy) et Cloud Service Mesh comme plan de contrôle.
Dans les tableaux suivants, la valeur N/A (non applicable) signifie qu'une fonctionnalité ne peut pas être acceptée, car elle n'est pas compatible avec la configuration Cloud Service Mesh particulière. Un espace vide, sans coche ni N/A, signifie que la fonctionnalité n'est pas compatible.
Certaines de ces fonctionnalités ne sont disponibles que avec les API d'équilibrage de charge. Mer nous vous recommandons vivement d'utiliser les API de routage des services et que vous ne créez pas de déploiements à l'aide du service API.
Version xDS compatible
Cloud Service Mesh utilise des API de plan de contrôle xDS Open Source pour configurer Clients Envoy et gRPC sans proxy. Ces clients agissent au nom de vos le code d'application pour fournir la mise en réseau des applications Cloud Service Mesh des fonctionnalités.
Seule la version 3 de xDS est prise en charge. Migrez vers xDS v3 si vous utilisez xDS v2. Pour en savoir plus sur la migration, consultez la section Migrer de xDS v2 à xDS v3.
Plates-formes permettant d'exécuter des services de réseau maillé
Vous pouvez exécuter des applications sur les plates-formes suivantes et les adopter dans un environnement que Cloud Service Mesh configure.
Caractéristique | Compatible |
---|---|
Instances de machine virtuelle (VM) Compute Engine | ✔ |
Instances de conteneur Google Kubernetes Engine (GKE) | ✔ |
Instances de conteneur Kubernetes sur Compute Engine | ✔ |
Gestion des services
Les services d'un maillage configurés par Cloud Service Mesh bénéficient des avantages suivants :
Détection de services. Lorsqu'une application dans votre réseau maillé souhaite communiquer avec une autre application, elle peut appeler ce service par son nom.
Autoscaling du backend : Les instances qui exécutent votre code d'application évoluent de manière dynamique en fonction de vos besoins.
Enregistrement automatique des points de terminaison : Les nouvelles instances créées ou supprimées sont automatiquement associées à votre service.
Caractéristique | Compatible |
---|---|
Déploiement automatisé de proxys side-car pour les VM Compute Engine | ✔ |
Injection automatisée de proxys side-car pour les pods GKE | ✔ |
Détection de services basée sur le nom d'hôte | ✔ |
Autoscaling d'instances basé sur l'utilisation du processeur | ✔ |
Autoscaling d'instances basé sur la capacité de charge/diffusion du trafic (VM Compute Engine dans les groupes d'instances gérés, ou MIG, uniquement) |
✔ |
Autoréparation d'instances basée sur des vérifications d'état configurables | ✔ |
Enregistrement automatique des points de terminaison pour les VM Compute Engine | ✔ |
Enregistrement automatique des points de terminaison pour les instances/pods de conteneurs GKE | ✔ |
API permettant d'ajouter ou de supprimer des points de terminaison par programmation | ✔ |
Points de terminaison pour le trafic de votre plan de données
Les microservices utilisent le plan de données pour accéder aux services de votre réseau maillé, ainsi qu'à l'extérieur de celui-ci. Cloud Service Mesh vous permet de séparer la logique de l'application de la logique de mise en réseau, afin que votre application n'ait besoin que d'envoyer des requêtes au plan de données (par exemple, le proxy side-car exécuté avec l'application). Le plan de données envoie ensuite les requêtes au point de terminaison approprié.
Dans le tableau suivant, les applications décrites comme faisant partie du réseau maillé sont celles qui utilisent le plan de données géré par Cloud Service Mesh pour communiquer avec d'autres services. Ces applications peuvent envoyer du trafic vers des services intégrés, ainsi que vers des services en dehors du réseau maillé.
Caractéristique | Compatible |
---|---|
Applications basées sur des VM dans le réseau maillé | ✔ |
Applications basées sur des conteneurs dans le réseau maillé | ✔ |
Applications basées sur des VM en dehors du réseau maillé | ✔ |
Applications basées sur des conteneurs en dehors du réseau maillé | ✔ |
Applications s'exécutant dans des centres de données sur site | ✔ |
Applications dans des environnements multicloud | ✔ |
Topologies de plans de données
Dans le modèle de maillage de services, vos applications communiquent via un plan de données. Ce plan de données se compose souvent de proxys side-car déployés avec vos applications. Cloud Service Mesh est extrêmement flexible et accepte les topologies de plans de données qui répondent aux besoins de votre réseau de services.
Caractéristique | Compatible |
---|---|
Proxys side-car s'exécutant à côté des applications | ✔ |
Applications gRPC sans proxy | ✔ |
Proxys intermédiaires entre deux applications dans un réseau maillé | ✔ |
Proxys de périphérie à la limite de votre réseau maillé | ✔ |
Réseau maillé couvrant plusieurs clusters GKE et/ou VM Compute Engine dans plusieurs régions | ✔ |
Configuration programmatique basée sur l'API
Toute la configuration est prête à l'emploi et exposée via l'API REST et le tableau de bord, ce qui vous permet d'automatiser les modifications au sein d'équipes importantes et de les gérer par programmation. Certaines fonctionnalités ne peuvent pas être configurées à l'aide de la console Google Cloud.
Extraction | Compatible |
---|---|
API REST | ✔ |
Google Cloud Console | ✔ |
Google Cloud CLI | ✔ |
Cloud Deployment Manager | ✔ |
Compatibilité avec Terraform | ✔ |
Compatibilité des langages avec les applications gRPC sans proxy
Vous pouvez créer des applications gRPC sans proxy qui fonctionnent avec Cloud Service Mesh à l'aide des langages de programmation ci-après. Les fonctionnalités du maillage de services compatibles avec diverses implémentations et versions de gRPC sont répertoriées sur GitHub.
Langue | Compatible |
---|---|
Java | ✔ |
Go | ✔ |
C++ | ✔ |
Python | ✔ |
Ruby | ✔ |
PHP | ✔ |
Nœud | ✔ |
Protocoles de requête
Les applications peuvent utiliser les protocoles de requêtes suivants lorsqu'elles communiquent via le plan de données configuré par Cloud Service Mesh.
Caractéristique | Compatible |
---|---|
HTTP | ✔ |
HTTPS | ✔ |
HTTP/2 | ✔ |
TCP | ✔ |
gRPC | ✔ |
Sécurité des services
Cloud Service Mesh est compatible avec la sécurité des services avec les configurations suivantes.
Caractéristique | Envoy | gRPC |
---|---|---|
TLS avec des pods GKE | ✔ | ✔ |
mTLS avec des pods GKE | ✔ | ✔ |
Contrôle des accès et autorisations | ✔ | ✔ |
Routage et gestion du trafic
Cloud Service Mesh est compatible avec les règles de gestion avancée du trafic que vous pouvez utiliser pour orienter, répartir et configurer le trafic lorsqu'il transite par votre plan de données.
Certaines fonctionnalités avancées de gestion du trafic ne sont pas disponibles avec les services gRPC sans proxy, et aucune d'elles n'est disponible avec la ressource de proxy TCP cible.
Les fonctionnalités suivantes ne sont pas disponibles lorsque Cloud Service Mesh gère le trafic TCP (autre que HTTP(S)).
Caractéristique | Compatible avec le proxy Envoy configuré pour gérer le trafic HTTP ou gRPC | Compatible avec les services gRPC sans proxy |
---|---|---|
Routage des requêtes HTTP/de couche 7 basé sur la correspondance de suffixe/préfixe/complète/expression régulière sur : | ||
• Nom d'hôte | ✔ | ✔ |
• Chemin d'accès | ✔ | ✔ |
• En-têtes | ✔ | ✔ |
• Méthode | ✔ | ND |
• Cookies | ✔ | ✔ |
• Paramètres de requête | ✔ | ND |
Injection de pannes | ✔ | ✔ |
Délais avant expiration configurables | ✔ | N/A Consultez la durée maximale du flux. |
Tentatives | ✔ | ✔ Sauf délai avant nouvelle tentative |
Redirections | ✔ | |
Réécritures de l'URI | ✔ | |
Transformations d'en-tête de requête/réponse | ✔ | |
Répartition du trafic | ✔ | ✔ |
Mise en miroir du trafic | ✔ | |
Détection des anomalies | ✔ | ✔ |
Ruptures de circuit | ✔ | ✔ Seulement pour maxRequests |
Durée maximale du flux | ✔ | ✔ |
Équilibrage de charge
Vous pouvez configurer des algorithmes et des méthodes d'équilibrage de charge avancés pour équilibrer la charge au niveau du service, du groupe backend (groupes d'instances ou de points de terminaison du réseau) et du backend ou du point de terminaison. Pour en savoir plus, consultez les Présentation des services de backend Présentation de l'équilibrage de charge avancé
Caractéristique | Compatible avec le proxy Envoy configuré pour gérer le trafic HTTP(S), TCP ou gRPC | Compatible avec les services gRPC sans proxy |
---|---|---|
Sélection du backend (groupe d'instances ou groupe de points de terminaison du réseau) en fonction de la région (préférez la région la plus proche avec une capacité de backend opérationnelle) | ✔ | ✔ |
Sélection du backend à l'aide du mode d'équilibrage basé sur le taux (requêtes par seconde) | ✔ Non compatible avec le trafic TCP (autre que HTTP(S)). |
✔ |
Sélection du backend en fonction du mode d'équilibrage basé sur l'utilisation (VM dans les groupes d'instances Compute Engine uniquement) | ✔ | ✔ |
Capacité maximale configurable par backend (Compute Engine et GKE uniquement) | ✔ | ✔ |
Sélection du backend en fonction de règles d'équilibrage de charge configurables. Pour en savoir plus sur chaque règle intégrée, consultez |
|
|
Résilience des services
Cloud Service Mesh prend en charge des fonctionnalités qui vous aident à améliorer la résilience vos services. Par exemple, vous pouvez utiliser Cloud Service Mesh pour mettre en œuvre un modèle de déploiement bleu/vert, des tests en version Canary ou une rupture de circuit (Envoy, gRPC).
Caractéristique | Compatible avec le proxy Envoy configuré pour gérer le trafic HTTP(S), TCP ou gRPC | Compatible avec les services gRPC sans proxy |
---|---|---|
Sélection de services basée sur la répartition du trafic en fonction d'une pondération | ✔ | ✔ |
Ruptures de circuit | ✔ | ✔ Seulement pour maxRequests |
Gestion de la capacité des services et des backends
Cloud Service Mesh prend en compte la capacité du service et du backend pour garantir une répartition optimale du trafic entre vos services à l'aide de backends. Cloud Service Mesh est intégré à l'infrastructure Google Cloud de façon à collecter automatiquement les données de capacité. Vous pouvez également définir et configurer manuellement la capacité.
Fonctionnalité | Compatible |
---|---|
Effectue automatiquement un suivi de la capacité et de l'utilisation du backend, en fonction du processeur, pour les instances de VM d'un groupe d'instances géré (MIG). | ✔ |
Capacité et remplacements manuels pour les instances de VM et de conteneur dans les MIG et les groupes de points de terminaison du réseau (NEG) en fonction du taux de requêtes. | ✔ |
Drainage de la capacité manuelle. | ✔ |
Basculement
Les charges de travail d'entreprise reposent généralement sur des déploiements à haute disponibilité pour garantir la disponibilité des services. Cloud Service Mesh prend en charge ces types de déploiements la redondance multizone/multirégionale.
Caractéristique | Compatible |
---|---|
Basculement automatique vers une autre zone de la même région dont la capacité de backend est opérationnelle. | ✔ |
Basculement automatique vers la région la plus proche avec une capacité de backend opérationnelle. | ✔ |
Vérifications d'état
Cloud Service Mesh accepte la vérification d'état centralisée pour déterminer l'état du backend.
Pour en savoir plus, consultez la page Présentation des vérifications d'état.
Caractéristique | Compatible |
---|---|
Vérifications de l'état gRPC | ✔ |
Vérifications d'état HTTP | ✔ |
Vérifications d'état HTTPS | ✔ |
Vérifications d'état HTTP/2 | ✔ |
Vérifications d'état TCP | ✔ |
Vérifications d'état configurables :
|
✔ |
Chemin de requête configurable (HTTP, HTTPS, HTTP/2) | ✔ |
Chaîne ou chemin de requête configurable (TCP ou SSL) | ✔ |
Chaîne de réponse attendue configurable | ✔ |
Observabilité
Les outils d'observabilité fournissent des informations de surveillance, de débogage et de performances pour vous aider à comprendre votre maillage de services. Les fonctionnalités suivantes sont fournies par défaut ou configurées dans votre plan de données. Votre code d'application ne nécessite aucune action particulière pour générer ces données d'observabilité.
Le tableau de bord d'état du service est disponible avec les services gRPC sans proxy, mais vous ne pouvez pas configurer les fonctionnalités de journalisation et de traçage du plan de données. Cloud Service Mesh ne peuvent pas configurer la journalisation et le traçage d'une application gRPC. Pour activer la journalisation et le traçage, suivez les instructions fournies dans les sections de dépannage ou les guides gRPC disponibles sur les sites Open Source. Par exemple, pour activer la collecte et le traçage des métriques dans vos services gRPC sans proxy, vous pouvez utiliser Opencensus.
Caractéristique | Compatible avec les proxys | Compatible avec les services gRPC sans proxy |
---|---|---|
Tableau de bord de l'état du service | ✔ | ✔ |
Journalisation du plan de données | ✔ | ✔ |
Traçage du plan de données | ✔ | ✔ |
Affinité de session
Les communications client-serveur impliquent souvent plusieurs requêtes successives. Dans ce cas, il est utile d'acheminer les requêtes client successives vers le même backend ou le même serveur. Cloud Service Mesh fournit des options configurables permettant, autant que possible, d'envoyer les requêtes d'un client donné au même backend, à condition que le backend soit opérationnel et dispose de la capacité requise. Pour en savoir plus, consultez la page Comprendre les services de backend.
Caractéristique | Compatible avec les proxys HTTP(S) | Compatible avec les proxys TCP | Compatible avec les services gRPC sans proxy |
---|---|---|---|
Adresse IP du client | ✔ | ✔ | |
Cookie HTTP | ✔ | ND | |
En-tête HTTP | ✔ | ND | ✔ |
Cookies générés (définit le cookie du client à la première requête) | ✔ | ND |
Topologies de réseaux
Cloud Service Mesh est compatible avec les topologies de réseaux Google Cloud courantes.
Caractéristique | Compatible |
---|---|
Réseau unique dans un projet Google Cloud | ✔ |
Plusieurs maillages dans un projet Google Cloud | ✔ |
Plusieurs passerelles dans un projet Google Cloud | ✔ |
VPC partagé (réseau unique partagé entre plusieurs projets Google Cloud) | ✔ |
Pour obtenir une explication détaillée de la compatibilité du VPC partagé avec Cloud Service Mesh, consultez la section Limites.
Conformité
Cloud Service Mesh est conforme aux normes suivantes.
Certification de conformité | Compatible |
---|---|
HIPAA | ✔ |
ISO 27001, ISO 27017, ISO 27018 | ✔ |
SOC1, SOC2, SOC3 | ✔ |
PCI DSS | ✔ |
Étape suivante
- Pour en savoir plus sur Cloud Service Mesh, consultez la Présentation de Cloud Service Mesh
- Pour découvrir les cas d'utilisation et les modèles d'architecture applicables aux services gRPC sans proxy, consultez la page Présentation des services gRPC sans proxy.