Ce document présente l'automatisation des déploiements.
Vous pouvez configurer Cloud Deploy pour effectuer automatiquement des tâches liées aux versions et au déploiement pour un pipeline de livraison donné. Ces tâches incluent la promotion de la sortie et l'avancement de la phase.
En savoir plus sur les ressources utilisées pour l'automatisation des versions dans Cloud Deploy
Découvrez comment configurer les règles qui définissent le fonctionnement de ces automatisations.
Actions que vous pouvez automatiser
Dans Cloud Deploy, vous pouvez automatiser les activités de publication et de déploiement suivantes:
Promouvoir une version
Vous pouvez configurer Cloud Deploy pour promouvoir automatiquement votre version, après un déploiement réussi sur une cible. Par exemple, si vous disposez de trois cibles,
dev
,staging
etprod
, vous pouvez configurer une automatisation de sorte que la version soit promue àprod
, sans autre interaction humaine, après un déploiement réussi dansstaging
.Avancer un déploiement
Vous pouvez configurer Cloud Deploy pour faire avancer un déploiement d'une phase à la suivante, après un déploiement réussi sur la cible précédente. L'avancement de phase n'est disponible que pour les cibles utilisant une 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 partager une automatisation sur plusieurs pipelines de livraison.
Voici le processus général de configuration et d'exécution d'une automatisation:
Vous configurez une automatisation.
Cette automatisation est associée à un pipeline de livraison.
Enregistrez cette automatisation à l'aide de
gcloud deploy apply
.Cette action crée la ressource d'automatisation.
Pour appeler le pipeline de livraison associé à cette automatisation, vous devez créer une version.
Le déploiement a réussi pour au moins une cible.
Dans la cible pour laquelle cette automatisation est configurée...
Si l'automatisation est
promoteReleaseRule
:L'exécution attend que le déploiement aboutisse dans la cible source. La cible source est le
selector.targets
configuré pour l'automatisation, et non dansAutomationRule
.Si une heure
wait
est configurée, l'exécution attend également cette heure.La version est automatiquement promue à la cible suivante dans la progression du pipeline ou à une cible spécifique, si cela est indiqué.
Si l'automatisation est
advanceRolloutRule
et que la cible utilise une stratégie de déploiement Canary:L'exécution attend la phase source identifiée, le cas échéant.
La propriété
sourcePhase
est facultative. Si aucune phase source n'est spécifiée, chaque phase du déploiement est avancée automatiquement. L'avance de phase automatique se produit lorsque la phase source estIN_PROGRESS
, sous réserve de l'heurewait
.Si une heure
wait
est configurée, l'exécution attend également cette heure.Lorsque vous automatisez un déploiement Canary, vous utilisez ce temps d'attente pour spécifier la durée de chaque phase Canary.
Le déploiement passe automatiquement de cette phase source à la phase suivante.
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 d'automatisation
Deux ressources Cloud Deploy sont spécifiquement destinées à l'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 le fonctionnement et le fonctionnement de l'automatisation
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 contenant une configuration d'automatisation (kind: Automation
), Cloud Deploy crée une 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. Il s'agit d'un pointeur vers la ressource d'automatisation correspondante, ainsi que des informations sur le déploiement qui l'a générée et d'autres métadonnées.L'exécution d'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 automatiquement sur votre pipeline de livraison et fournit des détails sur la manière dont elle 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 dont vous avez besoin pour exécuter un pipeline de livraison Cloud Deploy et pour effectuer les tâches à automatiser (comme l'avancement 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
Consultez la section Rôles et autorisations IAM. Pour en savoir plus, consultez la section sur les rôles Cloud Deploy incluant 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 les sections suivantes (Configurer l'automatisation) et Configurer des règles d'automatisation.
Configurer l'automatisation
Consultez la section Schéma du fichier de configuration pour savoir comment configurer la ressource Automation
.
Configuration des règles d'automatisation
En plus de cette configuration d'automatisation, vous devez spécifier des règles d'automatisation. La configuration est différente pour chacune des règles disponibles.
Consultez 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 suspendez une automatisation, celle-ci n'est pas exécutée, mais des journaux de plate-forme sont toujours générés.
Dans la configuration
Automation
, mettez à jour la propriétésuspended
surtrue
.Exécutez
gcloud deploy apply
sur ce fichier de configuration.Les journaux de plate-forme sont toujours générés lorsque 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.
Étapes suivantes
Consultez le guide de démarrage rapide: automatiser la création de versions et l'avancement du déploiement.
En savoir plus sur les règles d'automatisation Cloud Deploy
En savoir plus sur les ressources d'automatisation Cloud Deploy
Consultez la documentation sur les schémas de fichier de configuration pour en savoir plus sur les fichiers de configuration de l'automatisation.