Présentation de l'environnement d'exécution SaaS

L'environnement d'exécution SaaS vous permet de stocker, d'héberger, de gérer et de surveiller des applications Software as a Service (SaaS) sur Google Cloud. L'environnement d'exécution SaaS 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.

L'environnement d'exécution SaaS peut être utilisé de différentes manières par divers acteurs du pipeline SaaS. Si votre travail correspond à l'un de ces rôles, vous pouvez utiliser SaaS Runtime :

  • Administrateur de plate-forme
  • Développeur d'applications
  • Architecte
  • Administrateur de la conformité
  • Ingénieur de plate-forme
  • Opérations financières

L'environnement d'exécution SaaS offre les avantages suivants :

  • Simplifiez la gestion de vos services à grande échelle en automatisant les tâches de gestion des services (comme le déploiement, les déploiements progressifs et la gestion des flags de fonctionnalité) pour vos locataires SaaS.
  • Améliorez votre observabilité et votre contrôle en affinant vos mises à jour et vos versions sur des unités configurables pour gérer votre offre SaaS avec précision à grande échelle.
  • Assurez la cohérence de votre écosystème Google Cloud en gérant les services dans différents produits Google Cloud , y compris Google CloudGoogle Distributed Cloud, la facturation, l'observabilité 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 améliorer l'efficacité et la réutilisabilité.

Comment fonctionne l'environnement d'exécution SaaS ?

L'environnement d'exécution SaaS déploie des artefacts qui définissent votre offre SaaS. Ces artefacts doivent disposer d'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 de l'environnement d'exécution SaaS, consultez le glossaire.

Préparer votre charge de travail pour l'environnement d'exécution SaaS

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 SaaS Runtime.

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 SaaS Runtime, vous pouvez créer votre offre SaaS et vos types d'unités, puis déployer vos unités à l'aide d'un déploiement.

Pour obtenir un exemple de configuration de l'environnement d'exécution SaaS, consultez le guide de démarrage rapide.

Comptes de service d'exécution SaaS

L'environnement d'exécution SaaS utilise une combinaison de comptes de service gérés par Google et par l'utilisateur :

  • Compte de service d'exécution SaaS (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, comme interagir avec d'autres services Google Cloud lors du provisionnement des unités.

  • Compte de service d'actionnement (géré par l'utilisateur) : vous créez et gérez ce compte de service. L'environnement d'exécution SaaS (via Infrastructure Manager) utilise ce compte pour exécuter vos configurations Terraform lors du provisionnement ou de la mise à jour des unités. Ce compte sert d'identité pour créer et gérer les ressources définies dans votre fichier Terraform. Les autorisations du compte de service d'actionnement sont directement liées aux ressources que votre configuration Terraform gère.

    Vous pouvez disposer de plusieurs comptes de service d'actionnement. Nous vous recommandons d'avoir un compte de service d'actionnement 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 package Terraform 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 d'exécution SaaS (géré par Google)

Le compte de service de l'environnement d'exécution SaaS est un agent de service géré par Google et utilisé par l'environnement d'exécution SaaS pour effectuer des opérations dans votre projet.

Ce compte de service est automatiquement provisionné lorsque vous créez votre première ressource SaaS Runtime. Le compte de service de l'environnement d'exécution SaaS est créé au format suivant :

  service-PROJECT_NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com

Remplacez :

  • PROJECT_NUMBER : numéro de votre projet.

Compte de service d'activation (géré par l'utilisateur)

Le compte de service d'actionnement est un compte de service géré par l'utilisateur que vous devez créer. L'environnement d'exécution SaaS (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 fichier Terraform.

Il vous incombe de créer ce compte de service dans votre projet ou dans votre projet de 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'actionnement 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'actionnement :

    my-actuation-sa@my-identifier.iam.gserviceaccount.com
    

Autorisations requises

Le compte de service d'actionnement doit disposer des autorisations suffisantes pour gérer les ressources définies dans votre configuration Terraform. Pour effectuer cette opération, vous devez disposer au minimum des autorisations suivantes :

  • 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 le contrôle total de Cloud Storage.

Le compte de service d'actionnement doit également disposer des autorisations nécessaires pour créer et gérer les ressources Google Cloud spécifiques utilisées par votre application.

Exemple :

  • Si votre configuration Terraform crée des clusters Google Kubernetes Engine (GKE), le compte de service doit disposer des rôles GKE appropriés (roles/container.admin, par exemple).
  • Si votre fichier Terraform crée des instances Compute Engine, le compte de service doit disposer du rôle roles/compute.admin.
  • Si votre fichier Terraform crée des instances Cloud SQL, le compte de service doit disposer des rôles Cloud SQL appropriés (roles/cloudsql.admin, par exemple).

Consultez la documentation de chaque ressource Google Cloud que vous utilisez dans Terraform pour déterminer les autorisations nécessaires. 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 d'exécution SaaS et d'activation. Il crée 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 (à l'aide de Docker build et Docker push directement, par exemple), vous n'avez pas besoin d'un compte de service distinct pour la création d'artefacts.

À la place, 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 transférer des artefacts vers 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 permettant d'utiliser Developer Connect.
  • roles/developerconnect.readTokenAccessor : autorisations permettant d'obtenir le jeton de lecture Developer Connect.
  • roles/logging.logWriter : autorisations permettant d'écrire des journaux.
  • Si vous déployez votre configuration Terraform à l'aide de Developer Connect : roles/cloudbuild.builds.builder : pour exécuter des compilations.
  • Toutes les autres autorisations requises par votre processus de compilation (par exemple, l'accès aux dépôts de code source).

Stratégies de déploiement

L'environnement d'exécution SaaS utilise plusieurs stratégies de déploiement pour gérer la façon dont les unités de votre offre SaaS sont mises à jour. Ces stratégies de déploiement suivent l'approche deGoogle Cloudconcernant le changement 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 qui spécifie l'une des stratégies de déploiement suivantes :

  • Un emplacement à la fois (simple) : un emplacement est déployé à la fois, sans délai d'attente entre les emplacements. Les unités sont sélectionnées de manière arbitraire dans un établissement, avec un maximum de 20 % des unités de l'établissement mises à jour à un moment donné.

    Cette stratégie est recommandée pour les environnements de développement et les scénarios d'urgence.

  • Tous en même temps (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.

  • Progressive (graduelle) : dans chaque emplacement, les unités sont déployées par lots statiques basés sur des pourcentages (par exemple, 1 %, 10 %, 20 %, 30 %, ~40 %) avec des temps de stabilisation entre les lots. Le déploiement progresse dans les différents lieux avec une augmentation exponentielle du nombre de lieux simultanés (par exemple, un lieu, 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 plusieurs emplacements.

  • Progressif (un seul emplacement) : les unités sont mises à jour par lots statiques basés sur des pourcentages (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 du 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 établissement.

Pour en savoir plus sur la création de types de déploiement, consultez Créer un type de déploiement.

Étapes suivantes