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 implique de créer un conteneur pour ingérer et évaluer les métriques et d'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 projet Google Cloud .
Activez les API Compute Engine et Cloud Deploy si elles ne le sont pas déjà :
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (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 projet Google Cloud .
Activez les API Compute Engine et Cloud Deploy si elles ne le sont pas déjà :
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (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 jobs 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 avec 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 dans votre projet :
- Utilisateur du compte de service IAM (
roles/iam.serviceAccountUser) - Éditeur de versions Cloud Deploy (
roles/clouddeploy.releaser) - Opérateur Cloud Deploy (
roles/clouddeploy.operator)
Pour en savoir plus sur l'attribution de rôles, consultez 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 un job d'analyse dans votre pipeline de livraison.
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 qu'elles indiquent.
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 job d'analyse peut déclencher une automatisation repairRolloutRule pour effectuer un rollback de la version.
Par exemple, vous pouvez créer une règle d'alerte similaire sur votre application déployée dans votre environnement de préproduction. Si aucune alerte n'est déclenchée pendant la durée du job d'analyse, ce job peut déclencher une automatisation promoteReleaseRule pour promouvoir la version en production.
Créer l'analyse
Pour créer un job d'analyse pour le pipeline de déploiement de votre application, configurez cette analyse dans la configuration du pipeline, puis appliquez ce fichier de configuration.
Configurer un job d'analyse
Cette section explique comment configurer un job d'analyse Cloud Deploy pour l'utiliser avec Google Cloud Observability.
Votre job d'analyse est configuré dans la définition du pipeline de livraison, à l'intérieur d'une strophe strategy. Cela peut se trouver dans n'importe quelle stratégie, canary ou standard. Si vous souhaitez configurer l'analyse par phase, vous devez utiliser un canary personnalisé (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).
Un job d'analyse se compose des éléments suivants :
Durée
Cette durée spécifie la durée d'exécution du job 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.
Un ou plusieurs contrôles correspondant aux règles d'alerte de votre système de surveillance
Chaque vérification inclut 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 étiquettes 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.
Vous trouverez ci-dessous la syntaxe permettant de configurer un job 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ù :
DURATIONDurée d'exécution du job d'analyse, en secondes. Une fois la durée écoulée, le job est terminé. Si l'analyse échoue (le conteneur renvoie un code de sortie non nul), le job se termine (
FAILED) avant l'expiration de la durée.CHECK_IDID d'un contrôle individuel dans votre analyse. Chaque ID doit être unique dans ce job d'analyse. Un job d'analyse peut contenir une ou plusieurs vérifications.
ALERT_POLICY_IDID 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. Ne l'incluez pas dans l'ID de la règle.KEYetVALUEIl s'agit d'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 tienne compte que des 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 un job d'analyse. Bien qu'il existe plusieurs vérifications, cette configuration ne crée qu'un seul job.
Si aucune des règles d'alerte configurées n'envoie d'alerte, ce job réussit et le déploiement se poursuit. Si une règle déclenche une alerte, le job s'arrête avec l'état FAILED et le déploiement échoue (avec l'état FAILED, sauf si vous choisissez d'ignorer l'échec du job).
Appliquer le fichier de configuration de votre pipeline de livraison
Pour créer un pipeline de diffusion avec votre job 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 :
FILEAvec le nom de votre fichier de configuration du pipeline de livraison,
clouddeploy.yamlou le nom que vous lui avez donné.REGIONPar la région dans laquelle vous créez votre pipeline de livraison.
PROJECT_IDAvec l'ID du projet dans lequel vous créez ce pipeline de livraison.
Vous disposez désormais d'un pipeline de livraison dans votre projet et d'un job d'analyse, qui fera partie du pipeline lorsque vous créerez une version.
Étapes suivantes
Suivez 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 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