Utiliser une stratégie de déploiement Canary

Ce document explique comment configurer et utiliser une stratégie de déploiement Canary.

Qu'est-ce qu'un déploiement Canary ?

Un déploiement Canary est un déploiement progressif d'une application qui répartit le trafic entre une version déjà déployée et une nouvelle version, en le déployant auprès d'un sous-ensemble d'utilisateurs avant de le déployer complètement.

Types de cibles acceptés

Le déploiement Canary dans Cloud Deploy est compatible avec tous les types de cibles, y compris les suivants:

Canary fonctionne également avec des cibles multicibles.

Pourquoi utiliser une stratégie de déploiement Canary ?

Un déploiement Canary vous permet de publier partiellement votre application. De cette manière, vous pouvez vous assurer que la nouvelle version de votre application est fiable avant de la distribuer à tous les utilisateurs.

Par exemple, si vous effectuez un déploiement sur GKE ou GKE Enterprise, vous devez déployer la nouvelle version de votre application sur un nombre limité de pods. L'ancienne version continue de s'exécuter, mais une plus grande partie du trafic est envoyée aux nouveaux pods.

Si vous effectuez un déploiement sur Cloud Run, Cloud Run lui-même répartit le trafic entre l'ancienne et la nouvelle révision, en fonction des pourcentages que vous configurez.

Types de versions Canary

Cloud Deploy vous permet de configurer les types de déploiement Canary suivants:

  • Automatique

    Dans le cas d'un déploiement Canary automatisé, vous configurez Cloud Deploy avec une série de pourcentages exprimant un déploiement progressif. Cloud Deploy effectue des opérations supplémentaires en votre nom afin de répartir les pourcentages de trafic entre l'ancienne et la nouvelle version.

  • Automatisation personnalisée

    Pour une version Canary personnalisée, vous pouvez fournir les éléments suivants:

    • Le nom de la phase
    • L'objectif en pourcentage
    • Profil Skaffold à utiliser pour la phase
    • Inclure ou non une tâche de validation

    Toutefois, vous n'avez pas besoin de fournir d'informations sur l'équilibrage du trafic. Cloud Deploy crée les ressources nécessaires, comme décrit ici.

  • Personnalisée

    Avec une version Canary personnalisée, vous configurez chaque phase Canary séparément, y compris les éléments suivants:

    • Le nom de la phase
    • L'objectif en pourcentage
    • Profil Skaffold à utiliser pour la phase
    • Inclure ou non une tâche de validation

    De plus, dans le cas d'une version Canary entièrement personnalisée, vous devez fournir toute la configuration de l'équilibrage du trafic, comme décrit ici.

Phases d'un déploiement Canary

Lorsque vous créez une version pour un déploiement Canary, le déploiement comporte une phase pour chaque incrément Canary, ainsi qu'une phase stable finale pour 100%.

Par exemple, si vous configurez une version Canary pour des incréments de 25%, 50 % et 75 %, le déploiement se déroulera selon les phases suivantes:

  • canary-25
  • canary-50
  • canary-75
  • stable

Pour en savoir plus sur les phases de déploiement, les tâches et les exécutions de tâches, consultez la page Gérer les déploiements.

Que se passe-t-il dans le cadre d'une campagne Canary automatisée ou personnalisée ?

Pour faciliter votre déploiement Canary, Cloud Deploy inclut des étapes de traitement spéciales lors du rendu de votre fichier manifeste Kubernetes ou de la configuration du service Cloud Run:

GKE/Enterprise

Voici comment Cloud Deploy exécute un déploiement Canary dans GKE et GKE Enterprise basés sur le réseau:

  1. Vous indiquez le nom de la ressource Déploiement et la ressource Service.

  2. Cloud Deploy crée une ressource de déploiement supplémentaire, avec le nom de votre déploiement actuel suivi de -canary.

  3. Cloud Deploy modifie le service pour ajuster le sélecteur afin de sélectionner les pods du déploiement actuel et les pods Canary.

    Cloud Deploy calcule le nombre de pods à utiliser pour la version Canary à partir du calcul décrit ici. Ce calcul diffère selon que vous activez ou désactivez le surprovisionnement des pods.

    Si nous passons à la phase stable, Cloud Deploy ajoute les étiquettes à utiliser pour faire correspondre les pods, afin qu'elles soient disponibles pour les exécutions Canary ultérieures.

    Cloud Deploy crée un déploiement qui inclut le pourcentage de pods par phase, en le mettant à jour pour chaque phase. Pour ce faire, calculez le nombre de pods sous la forme d'un pourcentage du nombre de pods d'origine. Cela peut entraîner une répartition du trafic inexacte. Si vous avez besoin d'une répartition exacte du trafic, vous pouvez y parvenir à l'aide de l'API Gateway.

    De plus, les Secrets et les ConfigMaps sont également copiés et renommés -canary.

  4. Au cours de la phase stable, le déploiement -canary est réduit à zéro, et le déploiement d'origine est remplacé par le nouveau déploiement.

    Cloud Deploy ne modifie pas le déploiement d'origine avant la phase stable.

Cloud Deploy provisionne les pods pour atteindre le pourcentage Canary demandé aussi précisément que possible. Cette valeur est basée sur le nombre de pods, et non sur le trafic vers les pods. Si vous souhaitez que votre version Canary soit basée sur le trafic, vous devez utiliser l'API Gateway.

Pour la version Canary GKE basée sur le réseau, vous pouvez activer ou désactiver le surprovisionnement des pods. Les sections suivantes décrivent comment Cloud Deploy calcule le nombre de pods à provisionner pour le déploiement Canary pour chaque phase Canary.

Provisionnement de pods avec surprovisionnement activé

L'activation du surprovisionnement (disablePodOverprovisioning: false) permet à Cloud Deploy de créer suffisamment de pods supplémentaires pour exécuter le pourcentage Canary souhaité, en fonction du nombre de pods exécutant votre déploiement existant. La formule suivante montre comment Cloud Deploy calcule le nombre de pods à provisionner pour le déploiement Canary pour chaque phase Canary, lorsque le surprovisionnement des pods est activé:

math.Ceil( percentage * ReplicaCountOfDeploymentOnCluster / (100-percentage))

Avec cette formule, le nombre d'instances répliquées actuel (le nombre de pods que vous avez déjà, avant cette version Canary) est multiplié par le pourcentage Canary pour la phase. Le résultat est divisé par (100 moins le pourcentage).

Par exemple, si vous disposez déjà de quatre pods et que la phase Canary est à 50%, le nombre de pods Canary est de 4. (Le résultat de 100-percentage est utilisé sous forme de pourcentage: 100-50=50, traité comme .50.)

Le surprovisionnement des pods est le comportement par défaut.

Provisionnement de pods avec surprovisionnement désactivé

Vous pouvez désactiver le surprovisionnement (disablePodOverprovisioning: true) pour vous assurer que Cloud Deploy n'augmente pas le nombre d'instances répliquées.

La formule suivante montre comment Cloud Deploy calcule le provisionnement des pods pour le déploiement Canary pour chaque phase Canary, lorsque le surprovisionnement des pods est désactivé:

math.Ceil( (ReplicaCountOfDeploymentOnCluster + ReplicaCountOfCanaryDeploymentOnCluster) * percentage)

Dans cette formule, ReplicaCountOfCanaryDeploymentOnCluster n'existe que s'il existe déjà une phase Canary. S'il s'agit de la première phase Canary, il n'y a pas de ReplicaCountOfCanaryDeploymentOnCluster.

Si vous commencez avec quatre pods, ce nombre est multiplié par le pourcentage Canary (par exemple, 50%, ou .5) pour obtenir 2. Le déploiement d'origine est donc maintenant réduit à 2, et deux pods sont créés pour le déploiement Canary. Si vous disposez alors d'une phase Canary de 75 %, vous disposez de 2 (déploiement d'origine) +2 (première étape Canary), *.75, pour obtenir 3 pods Canary et 1 pod exécutant le déploiement d'origine.

Passerelle GKE/Enterprise

Voici comment Cloud Deploy exécute un déploiement Canary dans GKE et GKE Enterprise à l'aide de l'API Gateway:

  1. En plus des références au déploiement et au service, vous fournissez une ressource HTTPRoute, avec une règle backendRefs qui référence le service.

  2. Cloud Deploy crée un déploiement, avec le nom de votre déploiement d'origine suivi -canary, et un nouveau service avec le nom de service d'origine suivi de -canary.

    De plus, les secrets, les ConfigMaps et les autoscalers horizontaux de pods sont également copiés et renommés -canary.

  3. Pour chaque phase Canary, Cloud Deploy modifie la route HTTP afin de mettre à jour la pondération entre les pods du déploiement d'origine et les pods du déploiement Canary, en fonction du pourcentage obtenu pour cette phase.

    En raison du délai de propagation des modifications aux ressources HTTPRoute, vous pouvez inclure la propriété routeUpdateWaitTime dans votre configuration afin que le système attende une durée spécifiée pour cette propagation.

  4. Pendant la phase stable, le déploiement -canary est réduit à zéro, et le déploiement d'origine est mis à jour pour utiliser le déploiement de la nouvelle version.

    De plus, l'instance HTTPRoute d'origine est maintenant rétablie.

    Cloud Deploy ne modifie pas le déploiement ou le service d'origine avant la phase stable.

Cloud Run

Voici comment Cloud Deploy exécute un déploiement Canary pour Cloud Run:

  • Pour un déploiement Canary sur Cloud Run, ne fournissez pas de stanza traffic dans le fichier YAML de votre service.

  • Lors de la création d'un déploiement Canary, Cloud Deploy répartit le trafic entre la révision précédente qui a été déployée avec succès et une nouvelle révision.

Si vous souhaitez voir les différences entre les phases d'un déploiement Canary, vous pouvez afficher les modifications apportées dans le fichier manifeste affiché par phase, disponible dans l'inspecteur de versions. Vous pouvez le faire avant le début du déploiement. De plus, si vous utilisez le déploiement en parallèle, vous pouvez également inspecter le fichier manifeste rendu de chaque enfant.

Configurer un déploiement Canary

Cette section explique comment configurer votre pipeline de livraison et les cibles pour un déploiement Canary.

Les instructions ci-après concernent uniquement les aspects spécifiques à la configuration Canary. Le document Déployer votre application contient des instructions générales pour configurer et exécuter votre pipeline de déploiement.

Assurez-vous de disposer des autorisations requises

En plus des autres autorisations Identity and Access Management dont vous avez besoin pour utiliser Cloud Deploy, vous devez disposer des autorisations suivantes afin d'effectuer des actions supplémentaires qui peuvent être nécessaires pour un déploiement Canary:

  • clouddeploy.rollouts.advance
  • clouddeploy.rollouts.ignoreJob
  • clouddeploy.rollouts.cancel
  • clouddeploy.rollouts.retryJob
  • clouddeploy.jobRuns.get
  • clouddeploy.jobRuns.list
  • clouddeploy.jobRuns.terminate

Pour en savoir plus sur les rôles disponibles qui incluent ces autorisations, consultez la page Rôles et autorisations IAM.

Préparez votre skaffold.yaml

Comme pour un déploiement standard, votre version Canary a besoin d'un fichier skaffold.yaml, qui définit la manière dont les fichiers manifestes et les définitions de service sont affichés et déployés.

Le skaffold.yaml que vous créez pour un déploiement Canary ne présente aucune exigence particulière au-delà des requis pour un déploiement standard.

Préparer votre fichier manifeste ou la définition de votre service

Comme pour un déploiement standard, votre version Canary a besoin d'un fichier manifeste Kubernetes ou d'une définition de service Cloud Run.

GKE et GKE Enterprise

Pour la version Canary, le fichier manifeste doit contenir les éléments suivants:

  • Un déploiement et un service.

  • Le service doit définir un sélecteur app et sélectionner les pods du déploiement spécifié.

  • Si vous utilisez une version Canary basée sur l'API Gateway, le fichier manifeste doit également avoir une HTTPRoute.

Cloud Run

Pour la version Canary sur Cloud Run, votre fichier de définition de service Cloud Run normal est suffisant, mais sans stanza traffic. Cloud Deploy gère pour vous la répartition du trafic entre la dernière révision réussie et la nouvelle.

Configurer une version Canary automatisée

Les instructions suivantes concernent les cibles de mise en réseau basées sur les services Cloud Run, GKE et GKE Enterprise. Si vous utilisez l'API Kubernetes Gateway avec GKE ou GKE Enterprise, consultez cette documentation.

Vous configurez la version Canary automatisée dans la définition de votre pipeline de livraison:

GKE et GKE Enterprise

À l'étape du pipeline, incluez une propriété strategy comme suit:

serialPipeline:
  stages:
  - targetId: prod
    profiles: []
    strategy:
      canary:
        runtimeConfig:
          kubernetes:
            serviceNetworking:
              service: "SERVICE_NAME"
              deployment: "DEPLOYMENT_NAME"
        canaryDeployment:
          percentages: [PERCENTAGES]
          verify: true|false

Dans cette configuration...

  • SERVICE_NAME est le nom du service Kubernetes, défini dans votre fichier manifeste.

  • DEPLOYMENT_NAME est le nom de votre déploiement Kubernetes, défini dans votre fichier manifeste.

  • PERCENTAGES est une liste de valeurs de pourcentage séparées par une virgule représentant vos incréments Canary, par exemple [5, 25, 50].

    Cela n'inclut pas non plus 100, car un déploiement à 100% est supposé dans la version Canary et est géré par la stablephase.

  • Vous pouvez activer la validation du déploiement (verify: true). Le cas échéant, un job verify est activé à chaque phase.

Cloud Run

À l'étape du pipeline, incluez une propriété strategy comme suit:

serialPipeline:
  stages:
  - targetId: prod
    profiles: []
    strategy:
      canary:
        runtimeConfig:
          cloudRun:
            automaticTrafficControl: true
        canaryDeployment:
          percentages: [PERCENTAGES]
          verify: true|false

Dans cette configuration...

  • PERCENTAGES est une liste de valeurs de pourcentage séparées par une virgule représentant vos incréments Canary, par exemple [25, 50, 75]. Notez que 100 n'est pas inclus, car un déploiement à 100% est prévu dans la version Canary et géré par la phase stable.
  • Vous pouvez activer la validation du déploiement (verify: true). Dans ce cas, un job verify est ajouté à chaque phase Canary.

Configurer une version Canary personnalisée

Vous pouvez configurer votre système Canary manuellement au lieu de vous fier entièrement à l'automatisation fournie par Cloud Deploy. Avec une configuration Canary personnalisée, vous spécifiez les éléments suivants dans la définition de votre pipeline de livraison:

  • Noms des phases de déploiement

    Dans une version Canary entièrement automatisée, Cloud Deploy nomme les phases à votre place (par exemple, canary-25, canary-75 et stable). Avec une version Canary personnalisée, vous pouvez attribuer n'importe quel nom à chaque phase, à condition qu'elle soit unique parmi toutes les phases de cette phase Canary et qu'elle respecte les restrictions concernant les noms de ressources. Cependant, le nom final de la phase (100%) doit être stable.

  • Objectifs en pourcentage pour chaque phase

    Spécifiez les pourcentages séparément, par phase.

  • Profils Skaffold à utiliser pour la phase

    Vous pouvez utiliser un profil Skaffold distinct pour chaque phase, le même profil ou n'importe quelle combinaison. Chaque profil peut utiliser un fichier manifeste Kubernetes ou une définition de service Cloud Run différente. Vous pouvez également utiliser plusieurs profils par phase. Cloud Deploy les combine.

  • Indique s'il existe une tâche de vérification pour la phase

    N'oubliez pas que si vous activez la validation, vous devez également configure votre skaffold.yaml pour la validation.

Tous les types de cibles sont compatibles avec les versions Canary personnalisées.

Éléments de configuration Canary personnalisés

Le fichier YAML suivant montre la configuration des phases d'un déploiement Canary entièrement personnalisé:

strategy:
  canary:
    # Custom configuration for each canary phase
    ​customCanaryDeployment:
      phaseConfigs:
      - phaseId: "PHASE1_NAME"
        percentage: PERCENTAGE1
        profiles: [ "PROFILE_NAME" ]
        verify: true | false
      - …
      - phaseId: "stable"
        percentage: 100
        profiles: [ "LAST_PROFILE_NAME" ]
        verify: true|false

Dans ce fichier YAML

  • PHASE1_NAME

    Nom de la phase. Chaque nom de phase doit être unique.

  • [ "PROFILE_NAME" ]

    Nom du profil à utiliser pour la phase. Vous pouvez utiliser le même profil pour chaque phase, un profil différent pour chacune ou n'importe quelle combinaison. Vous pouvez également spécifier plusieurs profils. Cloud Deploy utilise tous les profils que vous spécifiez, plus le profil ou le fichier manifeste utilisé par l'étape globale.

  • PERCENTAGE1

    Pourcentage à déployer pour la première phase. Chaque phase doit avoir une valeur de pourcentage unique. Cette valeur doit correspondre à un pourcentage entier (et non 10.5, par exemple) et les phases doivent être triées dans l'ordre croissant.

  • verify: true|false

    Indique à Cloud Deploy si une tâche de validation doit être incluse pour la phase. Notez que pour chaque phase à utiliser, Skaffold utilise le même profil de vérification que celui spécifié pour l'affichage et le déploiement pour cette phase.

  • stable

    La phase finale doit être nommée stable.

Le pourcentage pour la dernière phase doit être 100. Les phases sont exécutées dans l'ordre dans lequel vous les configurez dans cette section ​customCanaryDeployment, mais si les valeurs de pourcentage ne sont pas dans l'ordre croissant, la commande d'enregistrement du pipeline de livraison échoue et génère une erreur.

Notez que la configuration d'un Canary personnalisé n'inclut pas de strophe runtimeConfig. Si vous incluez runtimeConfig, il est considéré comme une version Canary automatisée personnalisée.

Configurer une version Canary automatisée personnalisée

Une version Canary automatisée personnalisée est semblable à une version Canary personnalisée, car vous spécifiez les phases Canary distinctes, avec des noms de phase personnalisés, des valeurs de pourcentage, des profils Skaffold et des tâches de vérification. Toutefois, avec une version Canary personnalisée, vous ne fournissez pas les configurations qui définissent la répartition du trafic. Cloud Deploy le fait pour vous, mais vous fournissez toujours les profils Skaffold à utiliser à chaque étape.

Pour configurer une version Canary automatisée personnalisée, incluez un strophe runtimeConfig, comme indiqué ici, et incluez le stanza customCanaryDeployment, comme indiqué ici.

Configurer un déploiement Canary à l'aide du maillage de services de l'API Kubernetes Gateway

Bien que vous puissiez utiliser un déploiement Canary Cloud Deploy pour déployer votre application sur la mise en réseau basée sur les services Kubernetes, une autre solution consiste à utiliser le maillage de services de l'API Gateway de Kubernetes. Cette section décrit la procédure à suivre.

Vous pouvez utiliser l'API Gateway avec Istio ou toute implémentation compatible.

  1. Configurez vos ressources API Gateway:

    Notez qu'il s'agit uniquement d'exemples.

  2. Dans le fichier manifeste Kubernetes fourni à Cloud Deploy lors de la création de la version, incluez les éléments suivants:

    • Un objet HTTPRoute qui fait référence à votre ressource de passerelle

    • Un déploiement

    • Un service

  3. Configurez votre pipeline de livraison et la cible sur laquelle vous effectuerez un déploiement Canary:

    • La configuration de la cible est identique à celle de toutes les cibles.

    • La configuration du pipeline de livraison, dans l'ordre de progression de la cible spécifique, inclut un bloc gatewayServiceMesh pour référencer la configuration HTTPRoute de l'API Kubernetes Gateway, ainsi que votre déploiement et votre service.

      strategy:
       canary:
         runtimeConfig:
           kubernetes:
             gatewayServiceMesh:
               httpRoute: "ROUTE"
               service: "SERVICE"
               deployment: "DEPLOYMENT"
               routeUpdateWaitTime: "WAIT_TIME"
         canaryDeployment:
           percentages:
           - 50
      

      Où...

      • ROUTE est votre configuration httpRoute qui définit le comportement de routage souhaité.

      • SERVICE est votre configuration de service, requise par Cloud Deploy pour les déploiements Canary sur GKE et GKE Enterprise.

      • DEPLOYMENT est votre configuration de déploiement, requise par Cloud Deploy pour les déploiements Canary sur GKE et GKE Enterprise.

      • WAIT_TIME est la durée pendant laquelle Cloud Deploy attend la fin de la propagation des modifications apportées à la ressource HTTPRoute afin d'éviter l'abandon des requêtes. Par exemple : routeUpdateWaitTime: 60s.

        Si vous exécutez Canary à l'aide de l'API Gateway sans Istio et que cette API est connectée à un équilibreur de charge Google Cloud, une petite quantité de trafic peut être perdue lors du scaling à la baisse de l'instance Canary. Si vous observez ce comportement, vous pouvez configurer ce paramètre.

Utiliser le déploiement parallèle avec une stratégie de déploiement Canary

Vous pouvez exécuter un déploiement Canary à l'aide d'un déploiement en parallèle. Cela signifie que la cible sur laquelle vous effectuez un déploiement progressif peut comprendre au moins deux cibles enfants. Par exemple, vous pouvez les déployer progressivement sur des clusters de régions distinctes, en même temps.

Quelle est la différence entre un test Canary parallèle et une version Canary à cible unique ?

  • Comme pour le déploiement Canary à cible unique, si vous effectuez un déploiement sur des cibles GKE, vous devez disposer d'une configuration de déploiement Kubernetes et d'une configuration de service Kubernetes dans votre fichier manifeste.

  • Comme pour le déploiement Canary à cible unique, la configuration de votre pipeline de livraison doit inclure un strophe strategy.canary dans la définition de l'étape pour l'étape applicable.

  • En outre, vous devez configurer une cible multicible et configurer les cibles enfants auxquelles elle fait référence.

  • Lorsque vous créez une version, un déploiement du contrôleur et les déploiements enfants sont créés.

    Les deux types de déploiement (contrôleur et enfant) comportent des phases distinctes pour tous les pourcentages Canary configurés et une phase stable pour le déploiement Canary à 100%.

  • Vous ne pouvez pas avancer un déploiement enfant.

    Vous ne pouvez avancer que les déploiements de contrôleurs. Lorsque vous faites passer le déploiement du contrôleur à l'étape suivante, les déploiements enfants sont également avancés par Cloud Deploy.

  • Vous ne pouvez pas réessayer les tâches ayant échoué dans le déploiement du contrôleur.

    Vous ne pouvez relancer une tâche que dans les déploiements enfants.

  • Vous ne pouvez pas ignore les tâches ayant échoué dans le déploiement du contrôleur.

    Vous ne pouvez ignorer les jobs ayant échoué que dans les déploiements enfants.

  • Vous pouvez annuler un déploiement de contrôleur, mais vous ne pouvez pas annuler les déploiements enfants.

  • Vous ne pouvez arrêter l'exécution d'une tâche que dans le cadre d'un déploiement enfant, et non d'un déploiement de contrôleur.

Que faire si un déploiement parallèle échoue en version Canary ?

En cas d'échec d'un déploiement enfant, le déploiement du contrôleur peut passer à différents états, en fonction de ce qui se passe avec les déploiements enfants:

  • Si un ou plusieurs déploiements enfants échouent, mais qu'au moins un déploiement enfant est toujours à l'état IN_PROGRESS, le déploiement du contrôleur reste IN_PROGRESS.

  • Si un ou plusieurs déploiements enfants échouent, mais qu'au moins un déploiement enfant réussit, le déploiement du contrôleur est HALTED s'il existe plusieurs phases après l'exécution actuelle.

    S'il s'agit de la phase stable, le déploiement du contrôleur est FAILED.

    HALTED vous permet d'ignore, de retenter les tâches ayant échoué dans le déploiement enfant ayant échoué ou d'annuler le déploiement du contrôleur et d'empêcher d'autres actions sur les déploiements enfants.

  • Si le déploiement du contrôleur est à l'état HALTED en raison d'un échec du déploiement enfant et que vous ignorez la tâche ayant échoué dans le déploiement enfant, l'état du déploiement du contrôleur revient à l'état IN_PROGRESS.

Exécuter la version Canary configurée

Pour exécuter le déploiement Canary:

  1. Enregistrez le pipeline de livraison et les cibles configurés.

    gcloud deploy apply --file=PIPELINE
    

    Le pipeline de livraison inclut la configuration Canary automatisée ou personnalisée, pour l'environnement d'exécution de votre choix.

    Cette commande suppose que vos cibles sont définies dans le même fichier ou ont déjà été enregistrées. Si ce n'est pas le cas, veillez également à enregistrer vos cibles.

  2. Créez une version:

    gcloud deploy releases create RELEASE_NAME \
                                  --delivery-pipeline=PIPELINE_NAME \
                                  --region=REGION
    

    Le pipeline de livraison identifié par PIPELINE_NAME contient la configuration Canary automatisée ou personnalisée décrite dans ce document.

  3. Avancez dans la version Canary:

    gcloud CLI

    gcloud deploy rollouts advance ROLLOUT_NAME \
                                --release=RELEASE_NAME \
                                --delivery-pipeline=PIPELINE_NAME \
                                --region=REGION
    

    Où :

    ROLLOUT_NAME est le nom du déploiement en cours que vous passez à la phase suivante.

    RELEASE_NAME est le nom de la version à laquelle fait partie ce déploiement.

    PIPELINE_NAME est le nom du pipeline de livraison que vous utilisez pour gérer le déploiement de cette version.

    REGION est le nom de la région dans laquelle la version a été créée, par exemple us-central1. Ce champ est obligatoire.

    Pour en savoir plus sur la commande gcloud deploy rollouts advance, consultez la documentation de référence de Google Cloud SDK.

    Console Google Cloud

    1. Ouvrez la page des pipelines de diffusion.

    2. Cliquez sur le pipeline affiché dans la liste des pipelines de livraison.

      La page "Détails du pipeline de livraison" affiche une représentation graphique de la progression de votre pipeline.

    3. Dans l'onglet Déploiements, sous Détails du pipeline de livraison, cliquez sur le nom de votre déploiement.

      La page d'informations de ce déploiement s'affiche.

      détails du déploiement dans la console Google Cloud

      Notez que dans cet exemple, le déploiement comporte une phase canary-50 et une phase stable. Votre déploiement peut comporter plusieurs phases ou différentes phases.

    4. Cliquez sur Avancer le déploiement.

      Le déploiement passe à la phase suivante.

Phases ignorées

Si vous déployez une version Canary et que votre application n'a pas encore été déployée dans cet environnement d'exécution, Cloud Deploy ignore la phase Canary et exécute la phase stable. Pour en savoir plus, consultez la section Ignorer des phases la première fois.

Étapes suivantes