Définir des jobs d'analyse qui utilisent Google Cloud Observability

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

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Installez la Google Cloud CLI.

  3. 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.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  5. Vérifiez que vous disposez des autorisations requises pour suivre les instructions de ce guide.

  6. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  7. 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
  8. Installez la Google Cloud CLI.

  9. 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.

  10. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  11. Vérifiez que vous disposez des autorisations requises pour suivre les instructions de ce guide.

  12. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  13. 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 :

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 :

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 :

  1. Définissez une ou plusieurs règles d'alerte.

  2. Configurez une tâche d'analyse dans votre pipeline de diffusion.

  3. 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ù :

  • DURATION

    correspond à 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_ID

    correspond à 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_ID

    correspond à 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/01234567890123456789

    Il est possible que l'identifiant renvoyé inclue /conditions/13842666848149128276 après l'ID de la règle. N'incluez pas cette partie dans l'ID de la règle.

  • KEY et VALUE

    sont 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 :

  • FILE

    par le nom de votre fichier de configuration de pipeline de diffusion, clouddeploy.yaml ou tout autre nom que vous lui avez attribué ;

  • REGION

    par la région dans laquelle vous créez votre pipeline de diffusion ;

  • PROJECT_ID

    par 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