Ce document présente les microservices et décrit les types de microservices compatibles avec Cloud Monitoring.
Le terme microservice n'a pas la même signification pour tous. Pour certains, le microservice correspond aux "cadres" tracés sur le tableau blanc dans le cas d'une architecture système. D'autres se réfèrent à une définition plus formelle, qui décrit un point de terminaison avec adresse réseau dont les fonctionnalités sont déterminées par son API externe pouvant être développée, déployée et exploitée indépendamment des autres microservices du système. D'autres encore s'appuient sur le concept de microservice fourni par leur plate-forme de développement, comme les services App Engine ou le service Cloud Service Mesh.
Notre objectif n'est pas d'imposer une définition du microservice. Nous voulons plutôt vous aider à surveiller vos systèmes à grande échelle lors de votre transformation numérique en fournissant des outils de surveillance orientés services afin de vous accompagner vous et votre architecture. Nous souhaitons vous aider à adopter les bonnes pratiques concernant la surveillance de vos systèmes sans que vous n'ayez à modifier une seule ligne de code.
Pour vous aider à surveiller vos microservices, Cloud Monitoring effectue les opérations suivantes :
- Détecte automatiquement les microservices si possible.
- Fournit une expérience guidée pour définir des microservices basés sur Google Kubernetes Engine et Cloud Run.
- Offre une solution entièrement personnalisée pour une flexibilité maximale.
Microservices détectés automatiquement
Certains frameworks de développement modernes offrent un concept arrêté d'un microservice. Dans les architectures qui utilisent de tels frameworks, Cloud Monitoring détecte automatiquement le déploiement, la mise à jour ou la suppression des services. Monitoring effectue cette détection via une analyse constante du flux de métadonnées produit par un projet.
Cloud Monitoring peut détecter automatiquement les microservices créés à l'aide des frameworks de développement suivants :
App Engine : la notion de microservice est importante pour App Engine, aussi appelé "service App Engine" (et anciennement offert sous forme de module). Chaque service se distingue par son propre fichier de configuration
app.yaml
.Cloud Service Mesh : Cloud Monitoring est compatible avec les maillages de services créés via un seul cluster GKE. Dans cette configuration, un service Cloud Service Mesh correspond directement à un service GKE. Tous les services Cloud Service Mesh, gérés par l'utilisateur et par le système, sont automatiquement détectés.
Tableaux de bord pour les microservices détectés automatiquement
Un tableau de bord des services est automatiquement créé pour tous les microservices détectés automatiquement. Le tableau de bord contient les détails des métadonnées du service, la chronologie des alertes, l'état de vos objectifs de niveau de service (SLO) et les journaux associés au service. Chacun de ces composants est décrit plus en détail dans la section Utiliser des tableaux de bord de microservices.
GKE, Cloud Run et services personnalisés
Cloud Monitoring peut identifier les services potentiels ou candidats pour les types suivants :
- Espaces de noms GKE
- Services GKE
- Charges de travail GKE
- Services Cloud Run
Cependant, il peut exister de nombreux candidats, et vous ne voulez pas nécessairement créer des SLO sur tous. Monitoring crée une liste de services candidats et vous identifiez les services à traiter en tant que services Monitoring en les sélectionnant dans la liste. Monitoring crée l'infrastructure de service pour vous.
Lorsqu'aucun service existant ne convient à une application pour laquelle vous souhaitez créer des SLO, vous pouvez définir un service personnalisé.
Pour en savoir plus sur l'identification des services candidats et la création de services personnalisés, consultez la page Définir un microservice.