Ce document explique comment configurer l'analyse de votre pipeline de diffusion si vous utilisez Google Cloud Observability comme système de surveillance.
Si vous utilisez un autre fournisseur de surveillance, vous devez définir une analyse personnalisée, ce qui inclut la création d’un conteneur pour ingérer et évaluer les métriques et autres données de votre fournisseur.
Avant de commencer
-
Connectez-vous à votre compte Google.
Si vous n'en possédez pas déjà un, vous devez en créer un.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Vérifiez que vous disposez des autorisations requises pour suivre les instructions de ce guide.
-
Vérifiez que la facturation est activée pour votre Google Cloud projet.
Activez les API Compute Engine et Cloud Deploy :
Rôles requis pour activer les API
Pour activer les API, vous avez besoin de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Vérifiez que vous disposez des autorisations requises pour suivre les instructions de ce guide.
-
Vérifiez que la facturation est activée pour votre Google Cloud projet.
Activez les API Compute Engine et Cloud Deploy :
Rôles requis pour activer les API
Pour activer les API, vous avez besoin de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
Rôles requis
Pour obtenir les autorisations nécessaires pour créer et utiliser des tâches d'analyse, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le compte de votre projet :
- Exécuteur Cloud Deploy (
roles/clouddeploy.jobRunner) - Lecteur d'alertes Monitoring (
roles/monitoring.alertPolicyViewer) - Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Pour vous assurer que le compte de service Cloud Deploy dispose des autorisations nécessaires pour créer et utiliser des automatisations, demandez à votre administrateur d'attribuer les rôles IAM suivants au compte de service Cloud Deploy de votre projet :
- Utilisateur du compte de service IAM (
roles/iam.serviceAccountUser) - Lanceur Cloud Deploy (
roles/clouddeploy.releaser) - Opérateur Cloud Deploy (
roles/clouddeploy.operator)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Votre administrateur peut également attribuer au compte de service Cloud Deploy les autorisations requises à l'aide de rôles personnalisés ou d'autres rôles prédéfinis.
Configurer l'analyse dans Cloud Deploy
La configuration de l'analyse du déploiement comprend les étapes suivantes :
Configurez une tâche d'analyse dans votre pipeline de diffusion.
Exécutez votre pipeline pour exécuter votre analyse.
Définir des règles d'alerte
Vous définissez des règles d'alerte pour recevoir des métriques de Google Cloud Observability. Une règle d'alerte Google Cloud Observability décrit quand et comment vous souhaitez être averti lorsque les données de surveillance répondent à des critères spécifiés.
L'analyse Cloud Deploy utilise ces alertes pour prendre des mesures en fonction des circonstances indiquées par les alertes.
Par exemple, vous pouvez configurer une règle d'alerte sur votre application en production
pour envoyer une alerte si la latence de réponse HTTP est trop élevée. En fonction de cette alerte, votre tâche d'analyse peut déclencher une
repairRolloutRule automatisation
pour effectuer un rollback de la version.
Vous pouvez également créer une règle d'alerte semblable sur votre application
déployée dans votre environnement de préproduction. Si aucune alerte n'est déclenchée pendant la durée
de la tâche d'analyse, cette tâche peut déclencher une
promoteReleaseRule automatisation
pour promouvoir la version en production.
Créer l'analyse
Pour créer une tâche d'analyse pour le pipeline de diffusion de votre application, configurez cette analyse dans la configuration du pipeline, puis appliquez ce fichier de configuration.
Configurer une tâche d'analyse
Cette section explique comment configurer une tâche d'analyse Cloud Deploy pour l'utiliser avec Google Cloud Observability.
Votre tâche d'analyse est configurée dans le cadre de la définition du pipeline de diffusion, dans une strophe strategy. Elle peut se trouver dans n'importe quelle stratégie, canary ou standard. Si vous souhaitez configurer l'analyse par phase, utilisez un déploiement Canary personnalisé (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).
Une tâche d'analyse comprend les éléments suivants :
Une durée
Cette durée spécifie la durée d'exécution de la tâche d'analyse. Si la durée expire et qu'aucune alerte n'est détectée dans Google Cloud Observability, l'analyse est considérée comme réussie et le déploiement se poursuit.
Une ou plusieurs vérifications, correspondant aux règles d'alerte de votre système de surveillance
Chaque vérification comprend les éléments suivants :
Un ID
Une ou plusieurs règles d'alerte
Autrement dit, des références à une ou plusieurs règles d'alerte Google Cloud Observability.
- Un ou plusieurs libellés, utilisés pour identifier une règle d'alerte spécifique. Étant donné qu'une règle d'alerte Google Cloud Observability peut surveiller de nombreuses applications, ces libellés nous permettent de limiter la vérification à une ou plusieurs applications spécifiques.
Notez que vous pouvez utiliser des paramètres système comme clés pour les libellés ici.
Voici la syntaxe permettant de configurer une tâche d'analyse lorsque vous utilisez une stratégie de déploiement standard :
strategy:
standard:
analysis:
duration: DURATION
googleCloud:
alertPolicyChecks:
- id: CHECK_ID
alertPolicies:
- [ALERT_POLICY_ID]
labels:
[KEY: VALUE]
Où :
DURATIONcorrespond à la durée d'exécution de la tâche d'analyse, en secondes. Une fois la durée écoulée, la tâche est terminée. Si l'analyse échoue (le conteneur renvoie un code de sortie différent de zéro), la tâche se termine (
FAILED) avant l'expiration de la durée.CHECK_IDcorrespond à l'ID d'une vérification individuelle dans votre analyse. Chaque ID doit être unique dans cette tâche d'analyse. Vous pouvez effectuer une ou plusieurs vérifications dans une tâche d'analyse.
ALERT_POLICY_IDcorrespond à l'ID de la règle d'alerte Google Cloud Observability que vous utilisez pour la vérification. Vous pouvez trouver l'ID de la règle d'alerte en exécutant
gcloud monitoring policies list. Vous avez besoin de l'ID complet, qui se présente comme suit :projects/project-redacted/alertPolicies/01234567890123456789Il est possible que l'identifiant renvoyé inclue
/conditions/13842666848149128276après l'ID de la règle. N'incluez pas cette partie dans l'ID de la règle.KEYetVALUEsont une paire clé-valeur pour un libellé, à utiliser pour ne prendre en compte que des alertes spécifiques. Par exemple, vous pouvez utiliser un libellé pour qu'une vérification ne prenne en compte que les alertes concernant une charge de travail spécifique.
Vous pouvez utiliser des paramètres système pour les valeurs ici.
Voici un exemple qui utilise un paramètre système :
labels: service_name: '${{render.metadata.cloud_run.service.name}}'
Cette configuration crée une tâche d'analyse. Bien qu'il existe plusieurs vérifications, cette configuration ne crée qu'une seule tâche.
Si aucune des règles d'alerte configurées n'envoie d'alerte, cette tâche réussit et le déploiement se poursuit. Si une règle déclenche une alerte, la tâche s'arrête
avec l'état FAILED et le déploiement échoue (avec l'état FAILED, sauf
si vous choisissez d'
ignorer l'échec de la tâche).
Appliquer le fichier de configuration de votre pipeline de diffusion
Pour créer un pipeline de diffusion avec votre tâche d'analyse, appliquez le fichier de configuration à l'aide de la commande suivante :
gcloud deploy apply FILE \
--region=REGION \
--project=PROJECT_ID
Remplacez les éléments suivants :
FILEpar le nom de votre fichier de configuration de pipeline de diffusion,
clouddeploy.yamlou tout autre nom que vous lui avez attribué ;REGIONpar la région dans laquelle vous créez votre pipeline de diffusion ;
PROJECT_IDpar l'ID du projet dans lequel vous créez ce pipeline de diffusion.
Vous disposez maintenant d'un pipeline de diffusion dans votre projet et d'une tâche d'analyse, qui fera partie du pipeline lorsque vous créerez une version.
Étape suivante
Essayez le guide de démarrage rapide : Analyser votre application à l'aide de métriques.
Consultez le schéma de configuration pour l'analyse dans la documentation de référence sur la configuration de Cloud Deploy.
En savoir plus sur les règles d'alerte Google Cloud Observability.
En savoir plus sur l'automatisation du déploiement.
En savoir plus sur les stratégies de déploiement.