Cloud Deploy est un service géré qui automatise la diffusion de vos applications dans une série d'environnements cibles selon une séquence de promotions définie. Lorsque vous souhaitez déployer votre application mise à jour, vous devez créer une version, dont le cycle de vie est géré par un pipeline de diffusion.
Fonctionnement d'un pipeline Cloud Deploy
Le pipeline de livraison Cloud Deploy contient les informations suivantes:
Un nom, que vous utiliserez pour faire référence au pipeline de diffusion, et une description.
Séquence de promotion, décrivant l'ordre dans lequel effectuer le déploiement vers les cibles configurées.
(Facultatif) Libellés et annotations
Vous pouvez également définir les définitions de cible elles-mêmes.
Les cibles peuvent être définies dans le même fichier de configuration du pipeline de diffusion ou dans un ou plusieurs fichiers distincts. Plusieurs pipelines de diffusion peuvent utiliser la même cible ou plusieurs cibles, mais une cible donnée ne peut être utilisée qu'une seule fois dans un pipeline de diffusion donné.
Processus de livraison Cloud Deploy
Vous trouverez ci-dessous une description de ce qui se passe dans un scénario de diffusion continue Cloud Deploy simple.
Vous définissez votre pipeline de diffusion dans un fichier de configuration YAML.
Ce fichier de configuration définit la séquence de promotion dans laquelle déployer votre application vers une série de cibles.
Vous avez également besoin d'une configuration pour Skaffold, dont Cloud Deploy a besoin pour effectuer des opérations de rendu et de déploiement.
Vous définissez vos cibles dans le fichier de configuration du pipeline ou dans un ou plusieurs fichiers distincts.
Vous enregistrez votre pipeline auprès du service Cloud Deploy.
Maintenant que le service connaît votre application, il gère le déploiement vers des cibles en fonction de votre séquence de promotion définie.
La sortie de votre processus CI inclut un appel à Cloud Deploy pour lancer votre pipeline de diffusion.
Cet appel crée une ressource
release
, qui représente le fichier manifeste affiché pour chaque cible, chacune étant générée à l'aide de la source de rendu fournie, skaffold.yaml, et de références à des images de conteneur spécifiques à déployer. Pour ce premier appel visant à créer une version, Cloud Deploy crée automatiquement une ressourcerollout
, qui associe la version au premier environnement cible. Sur la base de ce déploiement, votre application est déployée sur la première cible.Vous pouvez utiliser n'importe quel outil de CI, à condition qu'il génère une ou plusieurs images de conteneur à fournir à votre pipeline de livraison Cloud Deploy.
De plus, l'appel de création d'une version et d'invocation d'un pipeline de diffusion ne doit pas nécessairement provenir de l'outil de CI. Il peut provenir d'un script ou de tout système répondant à l'achèvement du processus CI.
Lorsque vous êtes prêt à déployer votre application sur la cible suivante, vous appelez Cloud Deploy pour la promouvoir.
Dans chaque cas, l'appel à invoquer la promotion entraîne la création d'un déploiement par Cloud Deploy.
La promotion se poursuit dans toutes les cibles de votre séquence de promotion, la dernière étant
prod
(ou le nom que vous utilisez pour votre cible finale afin de mettre l'application en production).Le processus de création et de promotion de versions est décrit plus en détail dans la section Architecture du service Cloud Deploy.
Tout au long de l'exécution du pipeline, Cloud Deploy collecte des métriques et des détails d'audit.
Promotion
Promouvoir une version consiste à la déployer sur la cible suivante de la séquence de promotion définie dans votre pipeline. Le premier appel à Cloud Deploy crée un release
, puis une ressource rollout
qui est utilisée pour le déploiement sur la première cible de la séquence de promotion. Chaque appel suivant visant à promouvoir la version entraîne un déploiement sur la cible suivante.
Approbations
Vous pouvez spécifier qu'une approbation est nécessaire pour la promotion vers n'importe quelle cible. Par exemple, vous pouvez exiger une approbation pour la promotion vers une cible de production. Pour exiger une approbation pour une cible, définissez la propriété requireApproval
dans la définition de la cible.
Lorsqu'une cible nécessite une approbation, Cloud Deploy génère un message Pub/Sub pouvant être utilisé par un système intégré. Par exemple, un système de billetterie peut s'abonner au message pour lancer un workflow d'approbation.
Pour en savoir plus sur les promotions et la gestion de leur approbation, consultez Exiger une approbation.
Notifications
Cloud Deploy fournit des notifications Pub/Sub pour les événements suivants:
- Affichage: début, réussite et échec
- Déploiement: démarrage, réussite et échec
- Approbation requise
- Approbation approuvée
- Approbation refusée
Cloud Deploy utilise un sujet Pub/Sub pour envoyer ces notifications.
Pour en savoir plus, consultez Utiliser les notifications Cloud Deploy.
Rollbacks
Cloud Deploy permet de revenir en arrière sur votre application déployée dans n'importe quelle cible. Un rollback dans Cloud Deploy consiste à déclencher un déploiement à partir de la dernière version déployée avec succès. Le nouveau déploiement utilise les mêmes paramètres que ceux utilisés lors de ce déploiement réussi.
Pour en savoir plus, consultez la section Rétablir un déploiement.
À propos de Skaffold et de Cloud Deploy
Cloud Deploy utilise Skaffold pour le rendu, le déploiement et la validation. Avec Skaffold, vous pouvez également connecter facilement votre boucle de développement locale à un pipeline de livraison continue Cloud Deploy.
Pour en savoir plus sur l'intégration de Cloud Deploy à Skaffold, consultez la présentation de Skaffold.
Cloud Deploy avec d'autres outils Google Cloud
Cloud Deploy est compatible avec presque tous les outils en amont d'un pipeline CI/CD. Autrement dit, vous pouvez utiliser n'importe quel environnement de développement et dépôt de code source, n'importe quel système d'intégration continue (CI) et n'importe quel dépôt d'artefacts.
En aval, Cloud Deploy se déploie sur Google Kubernetes Engine, Cloud Run et GKE Enterprise.
Si vous avez principalement utilisé des outils Google Cloud, votre flux de source à production se présente comme suit:
Utilisez Cloud Code pour créer la source de votre application.
Cloud Code étend plusieurs IDE populaires (VS Code, IntelliJ et Cloud Shell) pour faciliter la création d'applications à déployer et à exécuter sur Google Cloud.
Utilisez Skaffold pour gérer votre boucle de développement local.
Cloud Deploy utilise Skaffold, via Cloud Build, pour générer et déployer vos fichiers manifestes. Cette intégration signifie que vous devez gérer un fichier
skaffold.yaml
, mais cela ne signifie pas que vous devez intégrer Skaffold à votre flux de développement local. Vous pouvez toutefois en profiter pour un développement continu.Créez votre application à l'aide de Cloud Build.
Cloud Build vous permet de configurer un pipeline d'intégration continue pouvant être déclenché à partir d'un commit dans votre dépôt de code source. La sortie de Cloud Build sera constituée d'artefacts, y compris d'images de conteneur déployables. Vous pouvez ajouter un appel à Cloud Deploy pour créer une version et appeler votre pipeline de livraison.
Stockez vos artefacts dans Artifact Registry.
Cloud Deploy récupère l'image ou les images de conteneur à partir d'Artifact Registry, ce qui vous permet de stocker des artefacts et des dépendances de manière centralisée.
Configurez votre pipeline de diffusion dans Cloud Deploy pour prendre l'image de conteneur et la déployer dans une progression de n cibles.
Chacune de ces cibles identifiées dans votre pipeline de livraison représente un cluster GKE, Cloud Run ou un cluster GKE sur lequel votre application est finalement déployée.
Gérez votre application sur GKE, Cloud Run ou GKE Enterprise.
GKE est l'environnement géré par Google Cloud pour exécuter des applications conteneurisées sur Kubernetes.
Avec Cloud Run, vous pouvez exécuter des conteneurs dans un environnement sans serveur.
GKE Enterprise offre une expérience de développement et d'exploitation cohérente pour les environnements cloud et sur site.
Surveillez les performances de votre application à l'aide de Google Cloud Observability.
Google Cloud Observability propose une surveillance et une journalisation intégrées pour votre application.
Étape suivante
Pour découvrir rapidement et facilement comment créer un pipeline de diffusion et l'utiliser pour déployer une application, consultez les guides de démarrage rapide.
Suivez l'un des tutoriels de Cloud Deploy.
Découvrez comment les composants Cloud Deploy fonctionnent ensemble.
Consultez Framework d'architecture Google Cloud: excellence opérationnelle pour découvrir comment utiliser les principes d'excellence opérationnelle pour créer une base de diffusion automatisée.