Déployer une version

Ce document explique comment déployer une version à l'aide de SaaS Runtime.

SaaS Runtime permet de mettre à jour 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 la Google Cloud CLI . Cela permet de gérer les mises à jour sur l'ensemble de votre base déployée. Un rollback peut être effectué en mettant à niveau les unités vers une version antérieure.

Pour effectuer des 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 modifier votre offre SaaS, vous devez :

Créer une version

Avant de pouvoir mettre à jour votre offre SaaS, 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. En résumé, une version contient la mise à jour de vos unités.

Console

  1. Accédez à SaaS Runtime.

    Accéder à SaaS Runtime

  2. Cliquez sur Versions.

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

  4. Sur la page Créer une version :

    1. Dans la zone Nom de la version, saisissez un nom unique pour votre version.
    2. Dans la zone Genre d'unité, sélectionnez le genre d'unité auquel cette version est associée.
    3. Dans la section Mise à niveau possible 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 procédures de mise à niveau.
    4. Lors des étapes Créer un blueprint et Stocker un blueprint, sélectionnez ou créez votre blueprint. Pour en savoir plus 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 configuration des variables, consultez la documentation sur les variables.

  5. Cliquez sur Créer.

  6. Vous avez créé une version. Vous pouvez consulter les détails de la version sur la page Détails de la version. Vous pourrez référencer cette version lorsque vous créerez un déploiement.

gcloud

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

gcloud beta saas-runtime 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 Artifact Registry est utilisé par défaut (us-east1-docker.pkg.dev, par exemple).
    • Pour en savoir plus sur la création de blueprints, consultez la documentation sur les blueprints.
  • UNIT_KIND : ID ou identifiant complet du type d'unité auquel correspond cette version. UNIT_KIND est immuable une fois la version créée.
  • LOCATION : emplacement dans lequel vous souhaitez créer la version. Cette option 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 correspond à l'emplacement configuré dans votre environnement Google Cloud CLI.
  • LABELS : (facultatif) libellés à appliquer à la version pour la catégoriser. Les libellés 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 lettres 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=saas-runtime
  • 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 ne renseignez pas cet indicateur, aucune contrainte ne s'applique aux versions pouvant être mises à jour vers cette version.
    • Lorsque des demandes de mise à jour d'unités vers cette version sont fournies, cette contrainte est appliquée.
  • INPUT_VARIABLE_DEFAULTS (facultatif) : valeurs par défaut pour les variables d'entrée requises par le plan.
    • Vous pouvez spécifier des valeurs par défaut pour les variables en ligne ou en référençant 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 des variables, consultez la documentation sur les variables. Pour en savoir plus sur les versions, consultez la documentation de référence de Release 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 sert de modèle pour le déploiement de votre version sur vos unités.

Console

  1. Accédez à SaaS Runtime.

    Accéder à SaaS Runtime

  2. Cliquez sur Types de déploiement.

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

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

    1. Dans le champ Nom du type de déploiement, saisissez un nom pour votre type de déploiement.
    2. Dans le champ Genre d'unité, sélectionnez le genre d'unité qui décrit le type d'unité pour 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 d'imprégnation). Mise à jour de 20 % des unités simultanément.
      • Tous en même temps (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 : déploie progressivement les mises à jour par lots de pourcentage de manière exponentielle dans plusieurs zones géographiques (avec des temps de stabilisation).
      • Progressive (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 console Google Cloud  :

  gcloud beta saas-runtime 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 type de déploiement.
  • UNIT_KIND : définit les unités auxquelles vous souhaitez appliquer les versions. Les versions s'appliquent à toutes les unités du type d'unité sélectionné.
  • LOCATION : emplacement dans lequel vous souhaitez créer votre type de déploiement.
  • ROLLOUT_STRATEGY : définit la stratégie de déploiement pour votre type de déploiement. Les valeurs possibles sont les suivantes :

    • Google.Cloud.Simple.OneLocationAtATime : met à jour un emplacement à la fois (sans temps de stabilisation). Mise à jour de 20 % des unités simultanément.
    • Google.Cloud.Simple.AllAtOnce : le déploiement commence simultanément dans tous les lieux (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 dans plusieurs zones géographiques (avec des temps de stabilisation).
    • Google.Cloud.Progressive.SingleLocation.v1 : met à jour les unités par lots de pourcentage avec des temps de trempage 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 du budget d'erreur. Si le nombre d'unités ayant échoué dépasse votre limite maximale de error_budget (définie par allowed_count, allowed_ratio * total_units), le déploiement sera mis en pause. Si error_budget n'est pas défini, l'environnement d'exécution SaaS tentera de mettre à jour toutes les unités, quel que soit le nombre d'échecs rencontrés.

  • UNIT_FILTER : 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 permettant de mettre à jour le type 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 : mettez à jour la stratégie de type d'unité au début du déploiement.
    • UPDATE_UNIT_KIND_STRATEGY_NEVER : ne mettez jamais à jour la stratégie de type d'unité.

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

Fonctionnalité de marge d'erreur

SaaS Runtime inclut une fonctionnalité de marge d'erreur (ErrorBudget dans RolloutKind) comme mesure de protection. Cela peut mettre automatiquement en pause un déploiement si le nombre ou le pourcentage d'échecs de mise à jour des unités (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 type 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éé, l'environnement d'exécution SaaS met à jour vos unités en fonction de la stratégie définie dans le genre d'unité.

Console

  1. Accédez à SaaS Runtime.

    Accéder à SaaS Runtime

  2. Cliquez sur Déploiements.

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

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

    1. Dans la zone Genre de déploiement, sélectionnez le genre de déploiement qui décrit 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 le nom de 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 les échecs de déploiement.

gcloud

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

  gcloud beta saas-runtime 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 type 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 dans lequel vous souhaitez créer votre déploiement.

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

Étapes suivantes