Déployer une version

Ce document explique comment déployer une version à l'aide d'App Lifecycle Manager.

App Lifecycle Manager permet d'effectuer des mises à jour sur plusieurs unités provisionnées à l'aide de déploiements. Les déploiements ciblent les unités en fonction de leur UnitKind et peuvent éventuellement appliquer des filtres (unit_filter) pour cibler un sous-ensemble spécifique d'unités à l'aide de Google Cloud CLI . Cela permet de gérer les mises à jour sur votre base déployée. Un rollback peut être effectué en mettant à niveau les unités vers une version précédente.

Pour les opérations sur une seule unité spécifique, utilisez les commandes disponibles sur la page Détails de l'unité.

Avant de commencer

Avant de mettre à jour votre offre d'application, vous devez effectuer les opérations suivantes :

Créer une version

Avant de pouvoir mettre à jour votre offre d'application, vous devez créer une version. Une version représente une version spécifique de votre application SaaS, définie par un package de plan et ses configurations associées. Essentiellement, une version contient la mise à jour de vos unités.

Console

  1. Accédez à App Lifecycle Manager.

    Accéder à App Lifecycle Manager

  2. Cliquez sur Versions.

  3. Sur la page Versions, cliquez sur Créer.

  4. Sur la page Créer une version :

    1. Dans le champ Nom de la version, saisissez un nom unique pour votre version.
    2. Dans le champ Genre d'unité, sélectionnez le genre d'unité auquel cette version est associée.
    3. Dans la section Mise à niveau uniquement à partir de (facultatif), vous pouvez éventuellement sélectionner les versions à partir desquelles les unités peuvent être mises à niveau vers cette version. Cela vous permet de contrôler les chemins de mise à niveau.
    4. Lors des étapes Créer un plan et Stocker le plan, sélectionnez ou créez votre plan. Pour obtenir des informations détaillées sur les options de création de plans, consultez la documentation sur les plans.
    5. Dans la section Variables (facultatif), vous pouvez éventuellement définir des variables d'entrée pour cette version. Pour en savoir plus sur la définition de variables, consultez la documentation sur les variables.

  5. Cliquez sur Créer.

  6. Vous avez créé une version. Vous pouvez afficher les détails de la version sur la page Détails de la version. Vous pourrez faire référence à cette version lors de la création d'un déploiement.

gcloud

Pour créer une version à l'aide de la Google Cloud console :

gcloud beta app-lifecycle-manager releases create RELEASE_NAME --blueprint-package=BLUEPRINT_PACKAGE_URI --unit-kind=UNIT_KIND [--location=LOCATION] [--labels=[KEY=VALUE,...]] [--upgradeable-from-releases=[RELEASE_NAME,...]] [--input-variable-defaults=[variable=VARIABLE,value=VALUE,type=TYPE,...]]

Remplacez :

  • RELEASE_NAME: ID de la version que vous souhaitez créer. Il fera partie du nom complet de la ressource pour la version.
  • BLUEPRINT_PACKAGE_URI: URI du package de plan à utiliser pour cette version. Les plans sont des images OCI hébergées dans Artifact Registry ou dans un autre registre OCI.
    • Le package de plan contient les artefacts nécessaires pour provisionner une unité, et inclut des métadonnées sur le moteur utilisé (Terraform), ainsi que sur la version.
    • Si vous omettez le nom d'hôte dans l'URI, le chemin d'accès régional d'Artifact Registry est utilisé par défaut (par exemple, us-east1-docker.pkg.dev).
    • Pour en savoir plus sur la création de plans, consultez la documentation sur les plans.
  • UNIT_KIND: ID ou identifiant complet du genre d'unité auquel cette version correspond. UNIT_KIND est immuable une fois que vous avez créé une version.
  • LOCATION: emplacement où vous souhaitez créer la version. Ce flag fournit une valeur de remplacement pour l'emplacement de la version si le chemin d'URI complet n'est pas fourni. La valeur par défaut est l'emplacement configuré dans votre environnement Google Cloud CLI.
  • LABELS: (facultatif) étiquettes à appliquer à la version pour la catégoriser. Les étiquettes sont des paires clé-valeur.
    • Les clés doivent commencer par une lettre minuscule et ne contenir que des tirets, des traits de soulignement, des minuscules et des chiffres.
    • Les valeurs ne doivent contenir que des tirets, des traits de soulignement, des minuscules et des chiffres.
    • Par exemple : --labels=environment=staging,team=app-lifecycle-manager
  • UPGRADEABLE_FROM_RELEASES: (facultatif) liste de noms de versions séparés par une virgule qui spécifie les versions existantes pouvant être mises à jour avec la nouvelle version que vous créez.
    • Si vous laissez ce flag vide, aucune contrainte n'est appliquée aux versions pouvant être mises à jour vers cette version.
    • Lorsqu'elle est fournie, les requêtes de mise à jour d'unité vers cette version appliqueront cette contrainte.
  • INPUT_VARIABLE_DEFAULTS: (facultatif) valeurs par défaut des variables d'entrée requises par le plan.
    • Vous pouvez spécifier des valeurs par défaut de variable en ligne ou en faisant référence à un fichier YAML ou JSON.
    • Les variables définies ici peuvent être remplacées lors de la création du déploiement.

Pour en savoir plus sur la définition de variables, consultez la documentation sur les variables. Pour en savoir plus sur les versions, consultez la documentation de référence sur Release de Google Cloud CLI.

Créer un genre de déploiement

Avant de pouvoir créer un déploiement, vous devez créer un genre de déploiement qui servira de modèle pour le déploiement de votre version sur vos unités.

Console

  1. Accédez à App Lifecycle Manager.

    Accéder à App Lifecycle Manager

  2. Cliquez sur Genres de déploiement.

  3. Sur la page Genres de déploiement, cliquez sur Créer.

  4. Sur la page Créer un genre de déploiement :

    1. Dans le champ Nom du genre de déploiement, saisissez un nom pour votre genre de déploiement.
    2. Dans le champ Genre d'unité, sélectionnez le genre d'unité décrivant le type d'unité sur lequel vous souhaitez déployer la version.
    3. Dans le menu déroulant Stratégie de déploiement, sélectionnez la stratégie que vous souhaitez utiliser pour déployer la version sur vos unités :

      • Un emplacement à la fois (simple) : met à jour un emplacement à la fois (sans temps de stabilisation). Met à jour jusqu'à 5% des unités simultanément.
      • Tout à la fois (simple) : tous les emplacements commencent à être déployés simultanément (idéal pour les environnements de développement et les scénarios d'urgence).
      • Progressif (graduel) : déploie progressivement les mises à jour par lots de pourcentage de manière exponentielle sur plusieurs emplacements (avec temps de stabilisation).
      • Progressif (emplacement unique) : met à jour les unités par lots de pourcentage avec des temps de stabilisation prolongés pour détecter les problèmes dans un seul emplacement.

      Pour en savoir plus sur les stratégies de déploiement, consultez Stratégies de déploiement.

  5. Cliquez sur Créer.

  6. Vous avez créé un genre de déploiement. Sur la page Détails du genre de déploiement , vous pouvez afficher et modifier les paramètres de votre genre de déploiement.

gcloud

Pour créer un genre de déploiement à l'aide de la Google Cloud console :

  gcloud beta app-lifecycle-manager rollout-kinds create ROLLOUT_KIND_NAME --unit-kind=UNIT_KIND --location=LOCATION --rollout_strategy=ROLLOUT_STRATEGY --error_budget=ERROR_BUDGET --unit_filter=UNIT_FILTER --update_unit_kind_default=UPDATE_UNIT_KIND_DEFAULT

Remplacez :

  • ROLLOUT_KIND_NAME : nom du genre de déploiement.
  • UNIT_KIND: définit les unités auxquelles vous souhaitez appliquer des versions. Les versions sont appliquées à toutes les unités du genre d'unité sélectionné.
  • LOCATION: emplacement où vous souhaitez créer votre genre de déploiement.
  • ROLLOUT_STRATEGY: définit la stratégie de déploiement de votre genre de déploiement. Les valeurs possibles sont les suivantes :

    • Google.Cloud.Simple.OneLocationAtATime: met à jour un emplacement à la fois (sans temps de stabilisation). Met à jour jusqu'à 5% des unités simultanément.
    • Google.Cloud.Simple.AllAtOnce: tous les emplacements commencent à être déployés simultanément (idéal pour les environnements de développement et les scénarios d'urgence).
    • Google.Cloud.Progressive.Gradual.v1: déploie progressivement les mises à jour par lots de pourcentage de manière exponentielle sur plusieurs emplacements (avec temps de stabilisation).
    • Google.Cloud.Progressive.SingleLocation.v1: met à jour les unités par lots de pourcentage avec des temps de stabilisation prolongés pour détecter les problèmes dans un seul emplacement.

    Pour en savoir plus sur les stratégies de déploiement, consultez Stratégies de déploiement.

  • ERROR_BUDGET : configuration de la marge d'erreur. Si le nombre d'unités ayant échoué dépasse votre error_budget maximal (défini par allowed_count, allowed_ratio * total_units), le déploiement sera mis en pause. Si error_budget n'est pas défini, App Lifecycle Manager tentera de mettre à jour toutes les unités, quel que soit le nombre d'échecs rencontrés.

  • UNIT_FILTER: CEL chaîne de filtre au format CEL utilisée pour les unités. Le filtre sera appliqué pour déterminer la population d'unités éligibles. Ce filtre ne peut que réduire le champ d'application du déploiement. Il ne peut pas étendre le champ d'application du déploiement.

  • UPDATE_UNIT_KIND_DEFAULT: configuration de la mise à jour du genre d'unité. Par défaut, le genre d'unité sera mis à jour au début du déploiement. Les valeurs possibles sont les suivantes :

    • UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED: la stratégie de mise à jour du genre d'unité n'est pas spécifiée.
    • UPDATE_UNIT_KIND_STRATEGY_ON_START: met à jour la stratégie de genre d'unité au début du déploiement.
    • UPDATE_UNIT_KIND_STRATEGY_NEVER: ne met jamais à jour la stratégie de genre d'unité.

Pour en savoir plus, consultez la documentation de référence sur RolloutKind Google Cloud CLI.

Fonctionnalité de marge d'erreur

App Lifecycle Manager inclut une fonctionnalité de marge d'erreur (ErrorBudget dans RolloutKind) à titre de protection. Cela peut mettre automatiquement en pause un déploiement si le nombre ou le pourcentage d'échecs de mise à jour d'unité (lors de l'application de l'infrastructure, par exemple) dépasse un seuil configuré, ce qui permet de limiter l'impact des problèmes potentiels lors d'une mise à jour.

Créer un déploiement

Une fois que vous avez créé un genre de déploiement, vous pouvez créer un déploiement qui spécifie la version avec laquelle vous souhaitez mettre à jour vos unités.

Une fois le déploiement créé, App Lifecycle Manager met à jour vos unités en fonction de la stratégie définie dans le genre d'unité.

Console

  1. Accédez à App Lifecycle Manager.

    Accéder à App Lifecycle Manager

  2. Cliquez sur Déploiements.

  3. Sur la page Liste des déploiements, cliquez sur Créer.

  4. Sur la page Créer un déploiement :

    1. Dans le champ Genre de déploiement, sélectionnez le genre de déploiement décrivant comment déployer votre version sur les unités spécifiées.
    2. Dans le champ Version, spécifiez la version avec laquelle mettre à jour les unités.
    3. Dans le champ Nom du déploiement, saisissez un nom pour votre déploiement.
  5. Cliquez sur Créer.

  6. Votre déploiement a été créé.

    Sur la page Détails du déploiement global, vous pouvez surveiller les détails du déploiement, y compris son état, sa progression (par nombre d'unités) et ses échecs.

gcloud

Pour créer un déploiement à l'aide de la Google Cloud console :

  gcloud beta app-lifecycle-manager rollouts create ROLLOUT_NAME --rollout-kind=ROLLOUT_KIND_NAME --release=RELEASE_NAME --location=LOCATION

Remplacez :

  • ROLLOUT_NAME : nom du déploiement.
  • ROLLOUT_KIND_NAME: définit le genre de déploiement que vous souhaitez utiliser pour appliquer des versions à vos unités. Les versions sont appliquées à toutes les unités du genre d'unité défini dans le genre de déploiement.
  • RELEASE_NAME: définit le binaire de version que vous souhaitez déployer sur vos unités.
  • LOCATION: emplacement où vous souhaitez créer votre déploiement.

Pour en savoir plus, consultez Rollout documentation de référence de Google Cloud CLI.

Étape suivante