App Lifecycle Manager vous permet de stocker, d'héberger, de gérer et de surveiller des applications Software as a Service (SaaS) sur Google Cloud. App Lifecycle Manager gère les déploiements Terraform à grande échelle, ce qui vous permet de gérer à la fois votre application SaaS et l'infrastructure sur laquelle elle s'exécute.
App Lifecycle Manager peut être utilisé de nombreuses manières par différents intervenants du pipeline SaaS. Si votre travail correspond à l'un de ces rôles, vous pouvez être intéressé par l'utilisation d'App Lifecycle Manager :
- Administrateur de plate-forme
- Développeur d'applications
- Architecte
- Administrateur de la conformité
- Ingénieur de plate-forme
- Opérations financières
App Lifecycle Manager offre les avantages suivants :
- Simplifiez la gestion de vos services à grande échelle en automatisant les tâches de gestion des services (telles que le déploiement, les déploiements progressifs et la gestion des indicateurs de fonctionnalité) dans vos locataires SaaS.
- Développez votre observabilité et votre contrôle en affinant vos mises à jour et vos versions dans des unités configurables pour gérer votre offre SaaS avec précision à grande échelle.
- Assurez la cohérence de votre Google Cloud écosystème en gérant les services dans différents Google Cloud produits, y compris Google Cloud, Google Distributed Cloud, Billing, Observability et Resource Manager.
- Utilisez une architecture flexible et basée sur des modèles qui favorise les mises à jour et les déploiements de groupes basés sur des unités pour une efficacité et une réutilisabilité accrues.
Comment fonctionne App Lifecycle Manager ?
App Lifecycle Manager déploie des artefacts qui définissent votre offre SaaS. Ces artefacts doivent avoir une configuration Terraform. Le déploiement est organisé en unités distinctes qui peuvent être mises à jour avec des versions contenant des modifications apportées à votre offre via un processus de déploiement configurable.
Pour en savoir plus sur la nomenclature d'App Lifecycle Manager, consultez le glossaire.
Préparer votre charge de travail pour App Lifecycle Manager
Avant de déployer votre offre SaaS, nous vous recommandons de déterminer l'arrangement idéal de votre offre SaaS dans l'écosystème App Lifecycle Manager.
Organisez les parties de votre offre SaaS qui doivent être mises à jour ou modifiées ensemble dans des configurations Terraform distinctes. Lorsque vous planifiez votre offre SaaS, utilisez des genres d'unité pour chaque regroupement de votre offre SaaS.
Une fois que vous avez déterminé la structure idéale pour votre charge de travail sur App Lifecycle Manager, vous pouvez créer votre offre SaaS, vos genres d'unité, puis déployer vos unités à l'aide d'un déploiement progressif.
Pour obtenir un exemple de configuration d'App Lifecycle Manager, consultez le guide de démarrage rapide.
Utiliser des modèles composites avec App Lifecycle Manager
Vous pouvez utiliser des modèles composites via App Design Center pour définir l'infrastructure de vos offres d'applications App Lifecycle Manager.
Une fois que vous avez associé un modèle composite à votre offre SaaS, App Lifecycle Manager remplit les genres d'unité définis dans votre modèle. Cela vous permet de déployer des unités en fonction de la structure et des ressources définies dans votre modèle composite.
Vous pouvez modifier vos modèles composites dans App Design Center et voir les modifications reflétées dans vos offres SaaS App Lifecycle Manager.
Pour en savoir plus sur les modèles composites, consultez la documentation sur la conception de modèles composites. Pour en savoir plus sur l'association de modèles composites à des offres App Lifecycle Manager, consultez la section Modéliser et empaqueter des unités de déploiement.
Comptes de service App Lifecycle Manager
App Lifecycle Manager utilise une combinaison de comptes de service gérés par Google et gérés par l'utilisateur :
Compte de service App Lifecycle Manager (géré par Google) : ce compte est créé automatiquement après la création de la première ressource d'offre SaaS. Il est géré par Google. Il effectue des actions en votre nom, par exemple en interagissant avec d'autres Google Cloud services lors du provisionnement d'unités.
_Compte de service d'activation (géré par l'utilisateur)_ : vous créez et gérez ce compte de service. App Lifecycle Manager (via Infrastructure Manager) utilise ce compte pour exécuter vos configurations Terraform lors du provisionnement ou de la mise à jour d'unités. Ce compte sert d'identité pour créer et gérer les ressources définies dans votre Terraform. Les autorisations du compte de service d'activation sont directement liées aux ressources gérées par votre configuration Terraform.
Vous pouvez disposer de plusieurs comptes de service d'activation. Nous vous recommandons d'avoir un compte de service d'activation pour chaque locataire.
Facultatif : compte de service de création d'artefacts (géré par l'utilisateur) : ce compte de service est utilisé pour créer et importer votre Terraform empaqueté dans des artefacts OCI. Il s'agit souvent d'un compte de service Cloud Build, mais il peut s'agir de n'importe quel compte de service disposant des autorisations appropriées pour votre offre SaaS.
Compte de service App Lifecycle Manager (géré par Google)
Le compte de service App Lifecycle Manager est un agent de service géré par Google utilisé par App Lifecycle Manager pour effectuer des opérations dans votre projet.
Ce compte de service est provisionné automatiquement lorsque vous créez votre première ressource App Lifecycle Manager. Le compte de service App Lifecycle Manager est créé au format suivant :
service-PROJECT_NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com
Remplacez :
- PROJECT_NUMBER : votre numéro de projet.
Compte de service d'activation (géré par l'utilisateur)
Le compte de service d'activation est un compte de service géré par l'utilisateur que vous devez créer. App Lifecycle Manager (via Infra Manager) utilise ce compte de service pour exécuter vos configurations Terraform. Il s'agit de l'identité qui crée, modifie et supprime les ressources définies dans votre Terraform.
Vous êtes responsable de la création de ce compte de service dans votre projet ou dans votre projet locataire.
Variables d'entrée du compte de service d'activation
Lorsque vous créez une unité, vous devez fournir le compte de service d'activation en tant que variable d'entrée de paire clé-valeur pour la configuration Terraform :
- Nom :
actuation_sa - Type de variable :
String Valeur de la variable : adresse e-mail du compte de service d'activation :
my-actuation-sa@my-identifier.iam.gserviceaccount.com
Autorisations requises
Le compte de service d'activation nécessite des autorisations suffisantes pour gérer les ressources définies dans votre configuration Terraform. Il a besoin au minimum des éléments suivants :
roles/iam.serviceAccountTokenCreator: permet au compte de service de générer des jetons pour l'authentification.roles/config.admin: accorde un contrôle total sur les ressources Infra Manager.roles/storage.admin: accorde un contrôle total sur Cloud Storage.
Le compte de service d'activation a également besoin d'autorisations pour créer et gérer les ressources spécifiques Google Cloud utilisées par votre application.
Exemple :
- Si votre Terraform crée des clusters Google Kubernetes Engine (GKE), le compte de service a besoin des rôles GKE appropriés (par exemple,
roles/container.admin). - Si votre Terraform crée des instances Compute Engine, le compte de service a besoin du rôle
roles/compute.admin. - Si votre Terraform crée des instances Cloud SQL, le compte de service a besoin des rôles Cloud SQL appropriés (par exemple,
roles/cloudsql.admin).
Consultez la documentation de chaqueressource que vous utilisez dans votre Terraform pour déterminer les autorisations nécessaires. Google Cloud Accordez le moindre privilège nécessaire au fonctionnement de votre application.
Compte de service de création d'artefacts (géré par l'utilisateur)
Le compte de service de création d'artefacts est un compte de service géré par l'utilisateur que vous créez pour utiliser un système de compilation (tel que Cloud Build) afin d'empaqueter et d'importer vos artefacts Terraform dans Artifact Registry.
Ce compte de service est distinct des comptes de service App Lifecycle Manager et d'activation. Il compile votre code Terraform et envoie l'artefact résultant à Artifact Registry. Il s'agit souvent du compte de service Cloud Build.
Création manuelle d'artefacts
Si vous créez et importez manuellement vos artefacts Terraform (par exemple, à l'aide de Docker build et Docker push directement), vous n'avez pas besoin d'un compte de service de création d'artefacts distinct.
Au lieu de cela, vous devez vous authentifier à l'aide de vos propres identifiants ou d'un compte de service disposant des autorisations Artifact Registry nécessaires.
Autorisations requises
Si vous utilisez Cloud Build, le compte de service Cloud Build a généralement besoin des rôles suivants :
roles/artifactregistry.writer: pour envoyer des artefacts à Artifact Registry.roles/artifactregistry.repoAdmin: pour gérer le dépôt Artifact Registry.roles/storage.admin: pour gérer les buckets Cloud Storage.roles/developerconnect.admin: autorisations d'utilisation de Developer Connect.roles/developerconnect.readTokenAccessor: autorisations d'obtention du jeton de lecture Developer Connect.roles/logging.logWriter: autorisations d'écriture des journaux.- Si vous déployez votre configuration Terraform à l'aide de Developer Connect :
roles/cloudbuild.builds.builder: pour exécuter des builds. - Toutes les autres autorisations requises par votre processus de compilation (par exemple, accès aux dépôts de code source).
Stratégies de déploiement
App Lifecycle Manager utilise plusieurs stratégies de déploiement pour gérer la mise à jour des unités de votre offre SaaS. Ces stratégies de déploiement suivent Google Cloud's approach to change en appliquant des approches cohérentes au déploiement des modifications dans votre offre SaaS.
Utilisez des stratégies de déploiement pour minimiser les impacts négatifs pour les clients et isoler les problèmes dans des domaines de défaillance logiques et physiques individuels. Définissez vos stratégies de déploiement en créant un genre de déploiement spécifiant l'une des stratégies de déploiement suivantes :
Un emplacement à la fois (simple) : un emplacement est déployé à la fois, sans attente entre les emplacements. Les unités sont sélectionnées de manière arbitraire dans un emplacement, avec un maximum de 5% des unités de l'emplacement mises à jour à un moment donné.
Cette stratégie est recommandée pour les environnements de développement et les scénarios d'urgence.
Tout à la fois (simple) : tous les emplacements commencent à être déployés en même temps.
Cette stratégie est recommandée pour les environnements de développement et les scénarios d'urgence.
Progressif (graduel) : dans chaque emplacement, les unités sont déployées par lots statiques basés sur un pourcentage (par exemple, 1%, 10%, 20%, 30%, ~40%) avec des temps de stabilisation entre les lots. Dans les emplacements, le déploiement progresse avec une augmentation exponentielle du nombre d'emplacements simultanés (par exemple, un emplacement, puis deux, puis quatre) avec des temps de stabilisation (18 heures, par exemple) entre les vagues. Les unités d'un emplacement sont sélectionnées de manière aléatoire.
Cette stratégie est conçue pour permettre des déploiements sécurisés et prévisibles dans plusieurs emplacements. Elle commence par un faible encombrement et s'étend progressivement à mesure que la confiance grandit. Cette stratégie est recommandée dans les environnements de production avec plus d'un emplacement.
Progressif (emplacement unique) : les unités sont mises à jour par lots statiques basés sur un pourcentage (par exemple, 1%, 10%, 20%, 30%, ~40%) avec des temps de stabilisation plus longs (18 heures, par exemple) entre les lots pour laisser suffisamment de temps pour la détection des problèmes et limiter l'impact négatif des modifications de déploiement.
Cette stratégie est adaptée aux offres SaaS fonctionnant dans un emplacement unique. Elle donne la priorité à la sécurité et à la prudence. Nous recommandons cette stratégie dans les environnements de production avec un seul emplacement.
Pour en savoir plus sur la création de genres de déploiement, consultez la section Créer un genre de déploiement.
Régionalisation d'App Lifecycle Manager
Les ressources d'offre SaaS définissent l'emplacement de vos unités App Lifecycle Manager et la manière dont vos déploiements sont gérés. Lorsque vous créez une offre SaaS, les régions que vous sélectionnez servent de source unique de vérité pour les régions compatibles de votre offre SaaS. Les régions que vous sélectionnez sont les régions disponibles que vous avez définies pour votre offre SaaS.
Lorsque vous utilisez App Lifecycle Manager via Google Cloud console, App Lifecycle Manager automatise la réplication des ressources que vous définissez dans votre offre SaaS entre les régions. Cela garantit la cohérence et la disponibilité de vos ressources App Lifecycle Manager dans toutes les régions disponibles que vous avez définies dans votre offre SaaS.
App Lifecycle Manager réplique les ressources suivantes :
- Offre SaaS (
Saas) - Genre d'unité (
UnitKind) - Version (
Release)
Utiliser global comme région
L'inclusion de global en tant que région dans votre offre SaaS est généralement déconseillée pour les cibles de déploiement. App Lifecycle Manager utilise la région global pour propager les déploiements régionaux. Les déploiements régionaux ne peuvent pas s'exécuter dans la région global.
Régionalisation des déploiements
Les emplacements compatibles pour les déploiements sont déterminés par les régions de premier niveau définies dans les régions disponibles de votre offre SaaS.
Les déploiements lisent la liste des régions disponibles à partir de l'offre SaaS associée.
Réplication des ressources
App Lifecycle Manager gère la création et les mises à jour des ressources dans toutes les régions disponibles de votre offre SaaS.
Lorsque vous mettez à jour les régions disponibles de votre offre SaaS, App Lifecycle Manager gère la réplication :
- Emplacements ajoutés : les ressources sont répliquées dans les emplacements nouvellement ajoutés.
- Emplacements avec d'anciennes copies : le contenu est mis à jour.
Emplacements Artifact Registry et Developer Connect
Les emplacements de votre dépôt Artifact Registry et de votre instance Developer Connect sont soumis à des exigences spécifiques :
La région de votre dépôt Artifact Registry et de votre instance Developer Connect peut être n'importe quelle région valide Google Cloud . Il n'est pas nécessaire de les inclure dans les régions disponibles de votre offre SaaS.
La région de votre dépôt Artifact Registry doit correspondre à la région de votre instance Developer Connect.
Cela nécessite la présence de ressources d'offre SaaS, de version et de genre d'unité dans toutes les régions définies dans votre offre SaaS, même si Artifact Registry et Developer Connect résident dans une seule région (potentiellement différente).
Les unités ne peuvent être créées que dans les régions spécifiées dans votre offre SaaS.
Exemple de configuration des régions App Lifecycle Manager
Nous avons fourni cet exemple pour illustrer le fonctionnement de la régionalisation lorsque vous utilisez App Lifecycle Manager avec la réplication de ressources gérée.
Par exemple, si vous souhaitez déployer votre offre SaaS dans us-central1 et europe-west4, tout en hébergeant votre dépôt Artifact Registry et votre instance Developer Connect dans us-east1, l'infrastructure de vos régions App Lifecycle Manager se présenterait comme suit :
- Régions disponibles de l'offre SaaS :
['us-central1', 'europe-west4'] - Région du dépôt Artifact Registry :
us-east1 - Région de l'instance Developer Connect :
us-east1 - Ressources de genre d'unité et de version : App Lifecycle Manager gère la création et les mises à jour de ces ressources dans les régions
global,us-central1eteurope-west4. - Unités : les unités peuvent être créées dans
us-central1oueurope-west4.
Cette configuration vous permet de gérer vos déploiements dans deux régions tout en centralisant la gestion de vos artefacts dans une troisième région distincte avec une réplication de ressources automatisée. Vous devez tenir compte de vos exigences en matière de latence, de conformité et de résidence des données lorsque vous sélectionnez vos régions.
Étape suivante
- Suivez le guide de démarrage rapide pour apprendre à déployer une VM à l'aide d'App Lifecycle Manager.
- Pour commencer à utiliser App Lifecycle Manager, commencez par Créer une offre SaaS.