Automatiser votre déploiement

Ce document présente l'automatisation des déploiements.

Vous pouvez configurer Cloud Deploy pour qu'il effectue automatiquement et les tâches liées au déploiement pour un pipeline de livraison donné. Ces tâches incluent promotion de sortie et l'avancement par étapes.

En savoir plus sur les ressources utilisées pour l'automatisation des versions dans Cloud Deploy.

En savoir plus sur la configuration des règles et définir le fonctionnement de ces automatisations.

Actions que vous pouvez automatiser

Dans Cloud Deploy, vous pouvez automatiser les versions suivantes activités de déploiement:

  • Promouvoir une version

    Vous pouvez configurer Cloud Deploy pour promouvoir votre version automatiquement, en cas de déploiement réussi sur une cible. Par exemple, si vous avez trois cibles, dev, staging et prod, vous pouvez configurer une automatisation afin que la version soit promue dans prod, sans intervention humaine. en cas de déploiement réussi dans staging.

  • Avancer un déploiement

    Vous pouvez configurer Cloud Deploy pour faire avancer un déploiement phase, le suivant, après un déploiement réussi vers la cible précédente. Avancement de phase n'est disponible que dans les cibles qui utilisent un stratégie de déploiement Canary.

Comment fonctionne l'automatisation ?

Chaque automatisation est liée au pipeline de livraison pour lequel elle est utilisée. Vous ne pouvez pas partagent une automatisation entre plusieurs pipelines de livraison.

Voici le processus général de configuration et d'exécution d'une automatisation:

  1. Toi configurer une automatisation

    Cette automatisation est associée à un pipeline de livraison.

  2. Vous enregistrez cette automatisation à l'aide de gcloud deploy apply.

    Cela crée le Ressource d'automatisation.

  3. Vous appelez le pipeline de livraison associé à cette automatisation en la création d'une version.

  4. Le déploiement a réussi pour au moins une cible.

  5. Dans la cible pour laquelle cette automatisation est configurée...

    Si l'automatisation est promoteReleaseRule:

    1. L'exécution attend que le déploiement aboutisse sur la cible source. La cible source est l'selector.targets configurée pour l'automatisation, et non dans AutomationRule.

    2. Si une durée wait est configurée, l'exécution attend également cette heure.

    3. La version est automatiquement promue à la cible suivante dans le pipeline la progression ou vers une cible spécifique, si indiqué.

    Si l'automatisation est advanceRolloutRule et que la cible utilise une version Canary stratégie de déploiement:

    1. L'exécution attend l'événement phase source, s'il y en a une.

      La propriété sourcePhase est facultative, et si aucune phase source n'est spécifiée, chaque phase du déploiement est avancée automatiquement. La l'avancement automatique de la phase se produit lorsque la phase source est IN_PROGRESS, jusqu'à wait fois.

    2. Si une durée wait est configurée, l'exécution attend également cette heure.

      Ce temps d'attente vous permet d'automatiser un déploiement Canary spécifier la durée de chaque phase Canary.

    3. Le déploiement passe automatiquement de la phase source à la phase suivante. du déploiement.

    4. S'il existe une phase source supplémentaire, elle est traitée de la même manière, y compris le même temps d'attente, le cas échéant.

Ressources sur l'automatisation

Deux ressources Cloud Deploy sont spécifiquement destinées automatisation:

  • Automatisation

    Un Automation est une ressource enfant d'un pipeline de livraison et inclut les informations suivantes:

    • Pointeur vers la ou les cibles pour lesquelles l'automatisation est utilisée
    • La ou les règles qui régissent ce que fait l'automatisation et comment elle le fait

    La configuration de la ressource d'automatisation est décrite dans le document À propos de la ressource d'automatisation

    Lorsque vous exécutez gcloud deploy apply sur un fichier qui inclut une automatisation (kind: Automation), Cloud Deploy crée un ressource d'automatisation, qui associe un pipeline de livraison et une ou plusieurs cibles à une ou plusieurs règles d'automatisation.

  • Exécution de l'automatisation

    AutomationRun est une instance d'automatisation. Elle pointe vers son ressource d'automatisation correspondante, ainsi que des informations sur le déploiement et d'autres métadonnées.

    L'exécution de l'automatisation est créée lorsqu'une automatisation est déclenchée.

En savoir plus sur les ressources d'automatisation

Règles d'automatisation

Une règle d'automatisation définit une action pouvant être effectuée sur votre pipeline de livraison automatiquement, ainsi que des détails sur la façon dont l'automatisation doit être effectuée.

En savoir plus sur les règles d'automatisation

Rôles et autorisations Identity and Access Management requis

En plus des autorisations nécessaires pour exécuter des déploiements Cloud Deploy le pipeline de livraison et l'automatisation des tâches (comme l'avance lors d'un déploiement), plusieurs autorisations sont nécessaires pour effectuer certaines opérations sur les ressources Automation et AutomationRun:

  • clouddeploy.automations.create
  • clouddeploy.automations.delete
  • clouddeploy.automations.get
  • clouddeploy.automations.list
  • clouddeploy.automations.update
  • clouddeploy.automationRuns.cancel
  • clouddeploy.automationRuns.get
  • clouddeploy.automationRuns.list

En plus de ces autorisations, chaque règle d'automatisation peut nécessiter les autorisations requises pour effectuer l'opération automatisée. Voir Configurer des règles d'automatisation pour les autorisations spécifiques nécessaires par règle d'automatisation.

Voir Rôles et autorisations IAM Pour en savoir plus, y compris sur le déploiement de Cloud Deploy les rôles incluent ces autorisations.

Créer une automatisation

Vous pouvez créer une automatisation, y compris en utilisant l'une des règles d'automatisation disponibles, en configurant une automatisation, puis en créant la ressource d'automatisation à l'aide de gcloud deploy apply

Consultez la section suivante (Configurer l'automatisation) Configurer des règles d'automatisation

Configurer l'automatisation

Consultez le Schéma du fichier de configuration pour savoir comment configurer Ressource Automation.

Configuration des règles d'automatisation

En plus de cette configuration d'automatisation, vous spécifiez règles d'automatisation. La configuration est différente pour chacune des règles disponibles.

Voir Utiliser des règles d'automatisation pour obtenir une description de chacune des règles disponibles.

Suspendre une automatisation

Vous pouvez suspendre une ressource existante sans la supprimer. Cela peut être utile pour tester une automatisation sans affecter le pipeline de livraison. Lorsque vous suspendre une automatisation, celle-ci n'est pas exécutée, journaux de plate-forme sont toujours générés.

  1. Dans Configuration de Automation, Définissez la propriété suspended sur true.

  2. Exécutez gcloud deploy apply sur ce fichier de configuration.

  3. Les journaux de plate-forme sont toujours générés lorsque la l'automatisation est instanciée, même si elle est suspendue. Vous pouvez l'utiliser pour tester et déboguer l'automatisation sans affecter le pipeline de livraison.

Étape suivante