Déployer une instance de service avec l'environnement d'exécution SaaS

Découvrez comment déployer une instance de service à l'aide de l'environnement d'exécution SaaS. Dans cet exemple de démarrage rapide, votre instance de service est une VM.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the SaaS Runtime, Artifact Registry, Infrastructure Manager, Developer Connect, Cloud Build, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Project > Owner role to the service account.

      To grant the role, find the Select a role list, then select Project > Owner.

    7. Click Continue.
    8. Click Done to finish creating the service account.

  6. Installez la Google Cloud CLI.

  7. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  8. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the SaaS Runtime, Artifact Registry, Infrastructure Manager, Developer Connect, Cloud Build, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  12. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Project > Owner role to the service account.

      To grant the role, find the Select a role list, then select Project > Owner.

    7. Click Continue.
    8. Click Done to finish creating the service account.

  13. Installez la Google Cloud CLI.

  14. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  15. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init

Accorder des autorisations au compte de service de l'exécuteur SaaS

L'environnement d'exécution SaaS utilise plusieurs comptes de service. Vous avez créé un compte de service dans la section précédente. Lorsque vous activez l'API d'environnement d'exécution SaaS, l'environnement d'exécution SaaS crée un autre compte de service.

Le compte de service créé par l'environnement d'exécution SaaS est appelé service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com, où PROJECT-NUMBER est le numéro de votre projet.

Accordez les autorisations requises à ce compte de service en procédant comme suit :

  1. Ouvrez la page SaaS Runtime > Overview > Get Started (Environnement d'exécution SaaS > Présentation > Premiers pas).

    Accéder à Premiers pas dans l'environnement d'exécution SaaS

  2. Dans la bannière contenant le message The required permissions for SaaS Runtime account haven't been granted (Les autorisations requises pour le compte d'environnement d'exécution SaaS n'ont pas été accordées), cliquez sur Grant permissions (Accorder des autorisations).

Définir l'instance de service à l'aide d'une configuration Terraform

Vous devez utiliser une configuration Terraform pour définir l'infrastructure à déployer pour l'instance de service. Dans ce guide de démarrage rapide, vous déployez une VM.

Pour créer une configuration Terraform qui définit une VM :

  1. Créez un répertoire nommé terraform-vm sur votre machine locale.

  2. Dans terraform-vm, créez les quatre fichiers Terraform suivants :

    1. Un fichier nommé versions.tf avec le contenu suivant :

      terraform {
        required_version = "1.5.7"
        required_providers {
          google = {
            source  = "hashicorp/google"
            version = "~> 4.0"
          }
        }
      }
      
    2. Un fichier nommé outputs.tf avec le contenu suivant :

      output "instance_name" {
        description = "Name of the instance"
        value       = google_compute_instance.vm_instance.name
      }
      
      output "instance_external_ip" {
        description = "External IP of the instance"
        value       = google_compute_instance.vm_instance.network_interface[0].access_config[0].nat_ip
      }
      
      output "instance_self_link" {
        description = "Self-link of the instance"
        value       = google_compute_instance.vm_instance.self_link
      }
      
    3. Un fichier nommé variables.tf avec le contenu suivant :

      variable "region" {
        description = "The Google Cloud region"
        type        = string
        default     = "us-central1"
      }
      
      variable "zone" {
        description = "The Google Cloud zone"
        type        = string
        default     = "us-central1-a"
      }
      
      variable "instance_name" {
        description = "Name for the Compute Engine instance"
        type        = string
        default = "saas-runtime-vm-instance"
      }
      
      variable "machine_type" {
        description = "Machine type for the Compute Engine instance"
        type        = string
        default = "e2-medium"
      }
      
      variable "disk_size" {
        description = "Boot disk size in GB"
        type        = number
        default = 10
      }
      
      variable "actuation_sa" {
        description = "The email of the Actuation Service Account"
        type        = string
      }
      
      variable "tenant_project_id" {
        description = "The project ID of the tenant project"
        type        = string
      }
      
      variable "tenant_project_number" {
        description = "The project number of the tenant project"
        type        = number
      }
      
    4. Un fichier nommé main.tf avec le contenu suivant :

      resource "google_compute_instance" "vm_instance" {
        project      = var.tenant_project_id
        name         = var.instance_name
        machine_type = var.machine_type
        zone         = var.zone
      
        boot_disk {
          initialize_params {
            image = "debian-cloud/debian-11"
            size  = var.disk_size
          }
        }
      
        network_interface {
          network = "default"
          access_config {
            # Ephemeral public IP - empty block is okay here
          }
        }
      
        tags = ["allow-ssh"]
      }
      
  3. Pour créer une archive ZIP contenant ces quatre fichiers de configuration Terraform, accédez au répertoire terraform-vm dans votre terminal et exécutez la commande suivante :

    zip terraform-files.zip main.tf outputs.tf variables.tf versions.tf
    

    Vous disposez maintenant d'une archive ZIP nommée terraform-files.zip qui contient les quatre fichiers de configuration Terraform.

Créer un dépôt dans Artifact Registry

Pour utiliser l'environnement d'exécution SaaS, vous avez besoin d'un dépôt dans Artifact Registry. Pour créer ce dépôt, procédez comme suit :

  1. Dans la console, accédez à Artifact Registry.

    Accéder à Artifact Registry

  2. Cliquez sur Créer un dépôt.

  3. Dans le champ Name (Nom), saisissez vm-quickstart-repo.

  4. Laissez le Format sélectionné sur Docker.

  5. Dans le champ Region (Région), sélectionnez us-central1 (Iowa).

  6. Cliquez sur Créer.

Créer une offre SaaS

Vous disposez de la configuration Terraform qui définit la VM que vous souhaitez déployer et d'un dépôt. Vous pouvez maintenant utiliser l'environnement d'exécution SaaS pour modéliser les unités de déploiement et déployer la VM.

Créer une ressource d'offre SaaS

  1. Dans la console, accédez à SaaS Runtime > SaaS Offering (Environnement d'exécution SaaS > Offre SaaS).

    Accéder à Offre SaaS

  2. Cliquez sur Créer.

  3. Dans le champ Name of the SaaS offering (Nom de l'offre SaaS), saisissez vm-quickstart-saas-offering.

  4. Dans le champ Region (Région), sélectionnez la région us-central1, puis cliquez sur OK.

  5. Cliquez sur Créer.

Les régions que vous avez sélectionnées pour l'offre SaaS sont celles où sont hébergés les déploiements de votre offre SaaS. Dans l'exemple de ce guide de démarrage rapide, l'offre SaaS est une seule VM. Ces régions sont donc celles où la VM est provisionnée et hébergée.

Si des utilisateurs finaux accèdent à ces VM, ils accèdent à celles qui sont déployées dans les régions que vous spécifiez ici.

Modéliser les unités de déploiement

Pour modéliser l'offre SaaS, vous créez des composants appelés genres d'unité. Un genre d'unité définit un composant de votre service à déployer et à gérer. Par exemple, vous pouvez avoir un genre d'unité pour une VM et un deuxième genre d'unité pour l'application qui s'exécute sur cette VM.

Dans ce guide de démarrage rapide, vous créez un genre d'unité pour la VM.

Pour créer le genre d'unité :

  1. Dans la console, accédez à SaaS Runtime > Unit Kinds (Environnement d'exécution SaaS > Genres d'unité).

    Accéder à Genres d'unité

  2. Sélectionnez Créer.

  3. Sur la page Create blueprints (Créer des plans) :

    1. Sélectionnez Importer.
    2. Pour importer la configuration Terraform qui définit la VM, procédez comme suit :
      1. Dans le champ File picker (Sélecteur de fichiers), sélectionnez Browse.
      2. Accédez à terraform-files.zip, qui est le fichier d'archive ZIP que vous avez créé précédemment, puis sélectionnez-le.
      3. Sélectionnez Ouvrir.
    3. Cliquez sur Suivant : Configurer le plan.
  4. Sur la page Store blueprint (Stocker le plan) :

    1. Sélectionnez Artifact Registry :
      1. Dans le champ Select repository from Artifact Registry (Sélectionner un dépôt dans Artifact Registry), sélectionnez Parcourir.
      2. Sélectionnez vm-quickstart-repo, qui est le dépôt que vous avez créé précédemment.
      3. Cliquez sur Sélectionner.
    2. Dans le champ Artifact image name (Nom de l'image d'artefact), saisissez vm-quickstart-blueprint.
    3. Pour le champ Infrastructure Manager terraform version (Version Terraform d'Infrastructure Manager), sélectionnez 1.5.7.
    4. Pour le champ Cloud Build service account (Compte de service Cloud Build), sélectionnez le compte de service que vous avez créé dans la section Avant de commencer.
    5. Cliquez sur Suivant : Détails du genre d'unité.
  5. Sur la page Configure unit kind properties (Configurer les propriétés du genre d'unité), procédez comme suit :

    1. Dans le champ Unit kind name (Nom du genre d'unité), saisissez vm-quickstart-unit-kind.
    2. Pour le champ SaaS Offering (Offre SaaS), sélectionnez vm-quickstart-saas-offering, qui est la ressource d'offre SaaS que vous avez créée précédemment.
    3. Cliquez sur Suivant : Configuration de la version.
  6. Dans le champ Release name (Nom de la version), saisissez vm-quickstart-first-release.

  7. Cliquez sur Créer.

Provisionner l'instance de service

Pour provisionner les ressources qui font partie d'un genre d'unité, vous créez des unités. Lorsque vous créez une unité, l'environnement d'exécution SaaS provisionne les ressources définies dans la configuration Terraform connectée au genre d'unité. Les ressources sont provisionnées dans chaque région qui fait partie de l'offre SaaS.

Dans l'exemple de ce guide de démarrage rapide, la VM est provisionnée dans la région us-central1.

  1. Créez une unité :

    1. Dans la console, accédez à SaaS Runtime > Units (Environnement d'exécution SaaS > Unités).

      Accéder à Unités

    2. Sélectionnez Créer.

    3. Sur la page Create a unit (Créer une unité) :

      1. Dans le champ Unit name (Nom de l'unité), saisissez vm-quickstart-unit.
      2. Sous SaaS offering (Offre SaaS), sélectionnez la ressource d'offre SaaS que vous avez créée précédemment : vm-quickstart-saas-offering.
      3. Sous Region (Région), sélectionnez us-central1.
      4. Sous Unit kind (Genre d'unité), sélectionnez le genre d'unité que vous avez créé précédemment : vm-quickstart-unit-kind.
      5. Sélectionnez Créer.
  2. Pour provisionner la VM :

    1. Sur la page Unit detail (Détails de l'unité), sélectionnez Provision (Provisionner).
    2. Dans le champ Release (Version), sélectionnez vm-quickstart-first-release.
    3. Pour le champ Service account (Compte de service), sélectionnez le compte de service que vous avez créé dans la section Avant de commencer.
    4. Ajoutez un projet locataire :

      1. Sélectionnez Add tenant project variables (Ajouter des variables de projet locataire).
      2. Sélectionnez le Google Cloud projet que vous utilisez pour ce guide de démarrage rapide. Lorsque l'environnement d'exécution SaaS déploie la VM, il la déploie dans ce projet.
    5. Sélectionnez Provision (Provisionner).

L'environnement d'exécution SaaS provisionne une VM dans la région que vous avez spécifiée dans l'offre SaaS. Vous pouvez créer des unités dans n'importe quelle région que vous avez spécifiée dans l'unité. Dans ce guide de démarrage rapide, vous avez spécifié une région (us-central1), et c'est dans cette région que la VM est provisionnée.

Afficher la VM déployée

Vous avez maintenant utilisé l'environnement d'exécution SaaS pour déployer la VM.

Pour afficher la VM que vous avez déployée dans ce guide de démarrage rapide :

  1. Dans la console, accédez à la page SaaS Runtime > Units > Unit details (Environnement d'exécution SaaS > Unités > Détails de l'unité).

    Accéder à Unités

  2. Cliquez sur le nom de votre unité : vm-quickstart-unit.

  3. Sur la page Unit details (Détails de l'unité) :

    1. Vérifiez que l'État est défini sur :

      • Prêt si la VM est provisionnée.
      • Provisionnement si l'opération est toujours en cours.
    2. Développez la section Variables.

    3. Dans les Variables de sortie, vous pouvez voir l'adresse IP externe que vous pouvez utiliser pour accéder à l'instance.

  4. Vous pouvez également afficher la VM dans Compute Engine :

    1. Dans la console, accédez à la page Compute Engine > VM instances (Compute Engine > Instances de VM).

      Accéder à la page Instances de VM

    2. La VM s'affiche sous VM instances (Instances de VM).

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre Google Cloud compte pour les ressources utilisées sur cette page, procédez comme suit :

Supprimer le projet

Si vous avez déployé la solution dans un nouveau Google Cloud projet et que vous n'avez plus besoin de ce dernier, supprimez-le en procédant comme suit :

  1. Dans la Google Cloud console, accédez à la page Gérer les ressources.

    Accéder à la page "Gérer les ressources"

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Lorsque vous y êtes invité, saisissez l'ID du projet, puis cliquez sur Arrêter.

Étape suivante