Présentation de Cloud Service Mesh
Cloud Service Mesh est un maillage de services disponible sur Google Cloudet sur les plates-formes GKE compatibles. Il est compatible avec les services exécutés sur différentes infrastructures de calcul. Cloud Service Mesh est contrôlé par des API conçues pour Google Cloud, pour l'Open Source ou pour les deux.
Ce document s'adresse aux nouveaux utilisateurs de Cloud Service Mesh, ainsi qu'aux clients Anthos Service Mesh ou Traffic Director existants.
Qu'est-ce qu'un maillage de services ?
Un maillage de services est une architecture qui permet une communication gérée, observable et sécurisée entre vos services. Elle vous aide ainsi à créer plus facilement des applications d'entreprise fiables dotées de nombreux microservices sur l'infrastructure de votre choix. Les maillages de services gèrent les exigences courantes liées à l'exécution d'un service, telles que la surveillance, la mise en réseau et la sécurité, à l'aide d'outils performants et cohérents. Les développeurs et opérateurs de services peuvent ainsi se concentrer plus facilement sur la création et la gestion d'applications de qualité pour leurs utilisateurs.
D'un point de vue architectural, un maillage de services se compose d'un ou plusieurs plans de contrôle et d'un plan de données. Le maillage de services surveille tout le trafic entrant et sortant de vos services. Sur Kubernetes, un proxy est déployé par un modèle side-car sur les microservices du maillage. Sur Compute Engine, vous pouvez déployer des proxys sur des VM ou utiliser gRPC sans proxy pour le plan de données.
Ce modèle dissocie l'application ou la logique métier des fonctions réseau et permet aux développeurs de se concentrer sur les fonctionnalités dont l'entreprise a besoin. Les maillages de services permettent également aux équipes chargées des opérations et du développement de dissocier leur travail les unes des autres.
Concevoir une architecture basée sur des microservices pour vos applications présente de nombreux avantages. Cependant, vos charges de travail peuvent devenir plus complexes et fragmentées à mesure qu'elles évoluent. Le maillage de services permet de résoudre le problème de fragmentation et de gérer plus facilement vos microservices.
Qu'est-ce que Cloud Service Mesh ?
Cloud Service Mesh est la solution de Google pour les environnements Google Cloudet GKE Enterprise compatibles.
- Activé Google Cloud : Cloud Service Mesh fournit des API spécifiques à l'infrastructure de calcul sur laquelle vos charges de travail s'exécutent.
- Pour les charges de travail Compute Engine, Cloud Service Mesh utilise des API de routage de services spécifiques àGoogle Cloud.
- Pour les charges de travail Google Kubernetes Engine (GKE), Cloud Service Mesh utilise les API Istio Open Source.
- Désactivé Google Cloud : avec Distributed Cloud ou GKE Multicloud, Cloud Service Mesh est compatible avec les API Istio pour les charges de travail Kubernetes.
Que la fonctionnalité soit activée ou désactivée Google Cloud, Cloud Service Mesh vous permet de gérer, d'observer et de sécuriser vos services sans avoir à modifier le code de votre application.
Cloud Service Mesh permet de réduire les tâches répétitives pour vos équipes en charge des opérations et du développement. Comment ? En simplifiant toutes les étapes de déploiement de vos services, qu'il s'agisse de la gestion du trafic, de la télémétrie du maillage, ou encore de la sécurisation des communications entre les services. Le maillage de services entièrement géré de Google vous permet de gérer des environnements complexes et de profiter des avantages qu'ils promettent.
Fonctionnalités
Cloud Service Mesh propose une suite de fonctionnalités pour la gestion du trafic, l'observabilité et la télémétrie, ainsi que la sécurité.
Gestion du trafic
Cloud Service Mesh contrôle le flux de trafic entre les services du maillage, vers le maillage (entrée) et vers les services externes (sortie). Vous configurez et déployez des ressources pour gérer ce trafic au niveau de la couche application (L7). Par exemple, vous pouvez effectuer les opérations suivantes :
- Utilisez la détection de services.
- Configurer l'équilibrage de charge entre les services.
- Créez des déploiements Canary et bleu-vert.
- Contrôlez précisément le routage de vos services.
- Configurez des disjoncteurs.
Cloud Service Mesh tient à jour une liste de tous les services du maillage par nom et par point de terminaison respectif. Il gère cette liste pour gérer le flux de trafic (par exemple, les adresses IP des pods Kubernetes ou les adresses IP des VM Compute Engine dans un groupe d'instances géré). En utilisant ce registre de services et en exécutant les proxys côte à côte avec les services, le maillage peut diriger le trafic vers le point de terminaison approprié. Les charges de travail gRPC sans proxy peuvent également être utilisées en parallèle avec les charges de travail utilisant des proxys Envoy.
Informations sur l'observabilité
L'interface utilisateur Cloud Service Mesh de la console Google Cloud fournit des insights sur votre maillage de services. Ces métriques sont générées automatiquement pour les charges de travail configurées via les API Istio.
- Les métriques et journaux de service pour le trafic HTTP dans le cluster GKE de votre maillage sont automatiquement ingérés dans Google Cloud.
- Les tableaux de bord de services préconfigurés vous fournissent les informations nécessaires pour comprendre vos services.
- La télémétrie détaillée, fournie par Cloud Monitoring, Cloud Logging et Cloud Trace, vous permet d'explorer métriques de service et journaux. Vous pouvez filtrer et segmenter vos données en fonction d'une grande variété d'attributs.
- Les relations de service à service vous permettent de comprendre en un coup d'œil les dépendances entre services et qui se connecte à chaque service.
- Consultez rapidement la stratégie de sécurité de la communication concernant non seulement votre service, mais aussi ses relations avec d'autres services.
- Les objectifs de niveau de service (SLO) vous donnent un aperçu de l'état de vos services. Vous pouvez définir un SLO et une alerte en fonction de vos propres normes d'état de service.
Pour en savoir plus sur les fonctionnalités d'observabilité de Cloud Service Mesh, consultez notre guide sur l'observabilité.
Avantages de sécurité
Cloud Service Mesh offre de nombreux avantages en termes de sécurité.
- Atténue le risque de nouvelle lecture ou d'usurpation d'identité qui utilisent des identifiants volés. Cloud Service Mesh s'appuie sur des certificats TLS mutuels (mTLS) pour authentifier les pairs, plutôt que sur des jetons de support tels que les jetons Web JSON (JWT).
- Assure le chiffrement en transit. L'utilisation de mTLS pour l'authentification garantit également que toutes les communications TCP sont chiffrées en transit.
- Atténue le risque que des clients non autorisés puissent accéder à un service contenant des données sensibles, indépendamment de l'emplacement réseau du client et des identifiants au niveau de l'application.
- Atténue le risque de violation des données utilisateur sur votre réseau de production. Vous pouvez vous assurer que les initiés ne peuvent accéder aux données sensibles que via des clients autorisés.
- Identifie les clients ayant accédé à un service avec des données sensibles. La journalisation des accès Cloud Service Mesh capture l'identité mTLS du client en plus de l'adresse IP.
- Tous les composants et les proxys du plan de contrôle dans le cluster sont conçus avec des modules de chiffrement certifiés FIPS 140-2.
Pour en savoir plus sur les avantages et les fonctionnalités de sécurité de Service Mesh, consultez le guide de sécurité.
Options de déploiement
Cloud Service Mesh propose les options de déploiement suivantes :
- On Google Cloud
- Managed Cloud Service Mesh : plan de contrôle et de données géré pour GKE (recommandé)
- Cloud Service Mesh géré : plan de contrôle et de données géré pour Compute Engine avec des VM (recommandé)
- Plan de contrôle dans le cluster pour GKE avec les API Istio (obsolète)
- Désactivé Google Cloud
- Plan de contrôle dans le cluster pour Kubernetes avec les API Istio
Cloud Service Mesh géré
Managed Cloud Service Mesh se compose du plan de contrôle géré pour toutes les infrastructures et du plan de données géré pour GKE. Avec Managed Cloud Service Mesh, Google gère les mises à niveau, le scaling et la sécurité pour vous, ce qui réduit la maintenance manuelle des utilisateurs. Cela couvre le plan de contrôle, le plan de données et les ressources associées.
Implémentation du plan de données
Si vous utilisez les API Google Cloud , votre plan de données peut être fourni par des proxys Envoy ou par des applications gRPC sans proxy. Si vous mettez à jour une application existante, l'approche basée sur le side-car permet l'intégration au maillage sans modifier votre application. Si vous souhaitez éviter la surcharge liée à l'exécution d'un side-car, vous pouvez mettre à jour votre application pour qu'elle utilise gRPC.
Les proxys Envoy et les applications gRPC sans proxy utilisent l'API xDS pour se connecter au plan de contrôle. gRPC sans proxy accepte plusieurs langages pour vos applications, y compris Go, C++, Java et Python.
Si vous les utilisez, votre plan de données est fourni par les proxys Envoy.
Implémentation du plan de contrôle
Votre plan de contrôle Cloud Service Mesh dépend de l'activation ou non de votre configuration Google Cloud , et de votre statut de nouveau client.
Implémentation du plan de contrôle pour les utilisateurs existants
- Si votre configuration est désactivée Google Cloud, vous utilisez le plan de contrôle non géré dans le cluster de Cloud Service Mesh. Pour en savoir plus, consultez Fonctionnalités compatibles avec le plan de contrôle au sein du cluster.
- Si vous utilisiez Anthos Service Mesh sur Google Cloud, vous utilisez les API Istio. Pour en savoir plus, consultez Fonctionnalités compatibles avec les API Istio (plan de contrôle géré) .
- Si vous utilisiez Traffic Director, vous utilisez le plan de contrôle géré de Cloud Service Mesh avec les API Google Cloud . Pour en savoir plus, consultez Fonctionnalités compatibles avec les API Google Cloud de Cloud Service Mesh.
Pour déterminer votre plan de contrôle actuel, consultez Identifier l'implémentation du plan de contrôle. Pour en savoir plus sur les plans de contrôle et leur migration, consultez Présentation du plan de contrôle géré pour les clients existants.
Implémentation du plan de contrôle pour les nouveaux utilisateurs
- Si vous prévoyez une configuration horsGoogle Cloud , vous choisissez le plan de contrôle non géré et en cluster de Cloud Service Mesh. Pour en savoir plus, consultez Fonctionnalités compatibles avec le plan de contrôle au sein du cluster.
- Si vous prévoyez une configurationGoogle Cloud sur GKE, vous utiliserez les API Istio avec l'implémentation du plan de contrôle Traffic Director. Pour en savoir plus, consultez Fonctionnalités compatibles avec les API Istio (plan de contrôle géré).
- Si vous prévoyez une configurationGoogle Cloud sur des VM Compute Engine, vous utiliserez l'implémentation du plan de contrôle Traffic Director. Pour en savoir plus, consultez Fonctionnalités compatibles avec les API Google Cloud de Cloud Service Mesh.
Migration du plan de contrôle
Si vous êtes un client Anthos Service Mesh existant et que vous utilisez les API Istio, vous continuez à les utiliser pour la configuration.
Si l'une de vos flottes utilise encore l'implémentation du plan de contrôle ISTIOD, vous devez la moderniser.
Étapes suivantes
- Si vous êtes un client existant, consultez Plan de contrôle géré pour les clients existants.
- Si vous prévoyez de configurer Anthos Service Mesh avec GKE, consultez Provisionner un plan de contrôle.
- Si vous prévoyez de configurer Traffic Director avec Compute Engine et des VM, consultez Se préparer à la configuration sur les API de routage de service avec Envoy et les charges de travail sans proxy.