Esegui il deployment di un'istanza di servizio con App Lifecycle Manager

Scopri come eseguire il deployment di un'istanza di servizio utilizzando App Lifecycle Manager. In questo esempio di guida rapida, l'istanza di servizio è una VM.

Prima di iniziare

  1. Accedi al tuo Account Google.

    Se non ne hai già uno, registrati per un nuovo account.

  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 App Lifecycle Manager, 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. Installa Google Cloud CLI.

  7. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  8. Per inizializzare gcloud CLI, esegui questo comando:

    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 App Lifecycle Manager, 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. Installa Google Cloud CLI.

  14. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  15. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Concedi le autorizzazioni al account di servizio del runner SaaS

App Lifecycle Manager utilizza più di un account di servizio. Hai creato un service account nella sezione precedente e, quando abiliti l'API App Lifecycle Manager, App Lifecycle Manager crea un altro account di servizio.

Il account di servizio creato da App Lifecycle Manager si chiama service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com, dove PROJECT-NUMBER è il numero del tuo progetto.

Concedi a questo account di servizio le autorizzazioni richieste procedendo nel seguente modo:

  1. Apri la pagina App Lifecycle Manager > Panoramica > Inizia.

    Vai a Inizia a utilizzare App Lifecycle Manager

  2. Nel banner con il messaggio Non sono state concesse le autorizzazioni richieste per l'account App Lifecycle Manager , fai clic su Concedi autorizzazioni.

Definisci l'istanza di servizio utilizzando una configurazione Terraform

Devi utilizzare una configurazione Terraform per definire l'infrastruttura di cui eseguire il deployment per l'istanza di servizio. In questa guida rapida, eseguirai il deployment di una VM.

Per creare una configurazione Terraform che definisca una VM:

  1. Crea una directory denominata terraform-vm sulla tua macchina locale.

  2. All'interno di terraform-vm, crea i seguenti quattro file Terraform:

    1. Un file denominato versions.tf con i seguenti contenuti:

      terraform {
        required_version = "1.5.7"
        required_providers {
          google = {
            source  = "hashicorp/google"
            version = "~> 4.0"
          }
        }
      }
      
    2. Un file denominato outputs.tf con i seguenti contenuti:

      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 file denominato variables.tf con i seguenti contenuti:

      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 file denominato main.tf con i seguenti contenuti:

      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. Per creare un archivio zip contenente questi quattro file di configurazione Terraform, vai alla directory terraform-vm nel terminale ed esegui il comando seguente:

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

    Ora hai un archivio zip denominato terraform-files.zip che contiene tutti e quattro i file di configurazione Terraform.

Crea un repository in Artifact Registry

Per utilizzare App Lifecycle Manager, devi avere un repository in Artifact Registry. Per creare questo repository:

  1. Nella console, vai ad Artifact Registry.

    Vai ad Artifact Registry

  2. Fai clic su Crea repository.

  3. In Nome, digita vm-quickstart-repo.

  4. Mantieni il Formato selezionato come Docker.

  5. In Regione, scegli us-central1 (Iowa).

  6. Fai clic su Crea.

Crea un'offerta SaaS

Hai la configurazione Terraform che definisce la VM di cui vuoi eseguire il deployment e un repository. Ora puoi utilizzare App Lifecycle Manager per modellare le unità di deployment ed eseguire il deployment della VM.

Crea una risorsa di offerta SaaS

  1. Nella console, vai ad App Lifecycle Manager > Offerta SaaS.

    Vai a Offerta SaaS

  2. Fai clic su Crea.

  3. Nel campo Nome dell'offerta SaaS, digita: vm-quickstart-saas-offering.

  4. Nel campo Regione, seleziona la regione us-central1, quindi fai clic su Ok.

  5. Fai clic su Crea.

Le regioni selezionate per l'offerta SaaS sono quelle in cui sono ospitati i deployment dell'offerta SaaS. Nell'esempio di questa guida rapida, l'offerta SaaS è una singola VM, quindi queste regioni sono quelle in cui viene eseguito il provisioning e l'hosting della VM.

Se gli utenti finali accedono a queste VM, accedono a quelle di cui è stato eseguito il deployment nelle regioni specificate qui.

Modella le unità di deployment

Per modellare l'offerta SaaS, crea componenti chiamati tipi di unità. Un tipo di unità definisce un componente all'interno del servizio di cui eseguire il deployment e la gestione. Ad esempio, potresti avere un tipo di unità per una VM e un secondo tipo di unità per l'applicazione in esecuzione su quella VM.

In questa guida rapida creerai un tipo di unità per la VM.

Per creare il tipo di unità:

  1. Nella console, vai ad App Lifecycle Manager > Tipi di unità.

    Vai a Tipi di unità

  2. Seleziona Crea.

  3. Nella pagina Crea progetti iniziali:

    1. Seleziona Carica.
    2. Per caricare la configurazione Terraform che definisce la VM:
      1. Nel campo Selettore file, seleziona Sfoglia.
      2. Vai a terraform-files.zip e selezionalo. Si tratta del file di archivio zip che hai creato in precedenza.
      3. Seleziona Apri.
    3. Fai clic su Avanti: configura il progetto iniziale.
  4. Nella pagina Progetto iniziale del datastore:

    1. Seleziona Artifact Registry:
      1. Nel campo Seleziona repository da Artifact Registry, seleziona Sfoglia.
      2. Seleziona vm-quickstart-repo, il repository che hai creato in precedenza.
      3. Fai clic su Seleziona.
    2. Nel campo Nome immagine artefatto, digita vm-quickstart-blueprint.
    3. In Versione Terraform di Infrastructure Manager, seleziona 1.5.7.
    4. In Service account Cloud Build, seleziona il service account che hai creato nella sezione Prima di iniziare.
    5. Fai clic su Avanti: dettagli del tipo di unità.
  5. Nella pagina Configura le proprietà del tipo di unità:

    1. In Nome del tipo di unità, digita vm-quickstart-unit-kind.
    2. In Offerta SaaS, seleziona vm-quickstart-saas-offering, la risorsa di offerta SaaS che hai creato in precedenza.
    3. Fai clic su Avanti: configurazione della release.
  6. In Nome della release, digita vm-quickstart-first-release.

  7. Fai clic su Crea.

Esegui il provisioning dell'istanza di servizio

Per eseguire il provisioning delle risorse che fanno parte di un tipo di unità, crea unità. Quando crei un'unità, App Lifecycle Manager esegue il provisioning delle risorse definite nella configurazione Terraform collegata al tipo di unità. Viene eseguito il provisioning delle risorse in ogni regione che fa parte dell'offerta SaaS.

Nell'esempio di questa guida rapida, viene eseguito il provisioning della VM nella regione us-central1.

  1. Crea un'unità:

    1. Nella console, vai ad App Lifecycle Manager > Unità.

      Vai a Unità

    2. Seleziona Crea.

    3. Nella pagina Crea un'unità:

      1. In Nome unità, digita: vm-quickstart-unit.
      2. In Offerta SaaS, seleziona la risorsa di offerta SaaS che hai creato in precedenza: vm-quickstart-saas-offering.
      3. In Regione, seleziona us-central1.
      4. In Tipo di unità, seleziona il tipo di unità che hai creato in precedenza: vm-quickstart-unit-kind.
      5. Seleziona Crea.
  2. Per eseguire il provisioning della VM:

    1. Nella pagina Dettagli unità, seleziona Esegui il provisioning.
    2. Nel campo Release, seleziona vm-quickstart-first-release.
    3. In Service account, seleziona il service account che hai creato nella sezione Prima di iniziare.
    4. Aggiungi un progetto tenant:

      1. Seleziona Aggiungi variabili del progetto tenant.
      2. Seleziona il Google Cloud progetto che stai utilizzando per questa guida rapida. Quando App Lifecycle Manager esegue il deployment della VM, lo esegue in questo progetto.
    5. Seleziona Esegui il provisioning.

App Lifecycle Manager esegue il provisioning di una VM nella regione specificata nell'offerta SaaS. Puoi creare unità in una qualsiasi delle regioni specificate nell'unità. In questa guida rapida, hai specificato una regione (us-central1) ed è in questa regione che viene eseguito il provisioning della VM.

Visualizza la VM di cui è stato eseguito il deployment

Ora hai utilizzato App Lifecycle Manager per eseguire il deployment della VM.

Per visualizzare la VM di cui hai eseguito il deployment in questa guida rapida:

  1. Nella Google Cloud console, vai alla pagina App Lifecycle Manager > Unità > Dettagli unità.

    Vai a Unità

  2. Fai clic sul nome dell'unità: vm-quickstart-unit.

  3. Nella pagina Dettagli unità:

    1. Verifica che lo Stato sia:

      • Pronto se è stato eseguito il provisioning della VM.
      • Provisioning se l'operazione è ancora in corso.
    2. Espandi la sezione Variabili.

    3. In Variabili di output, puoi vedere l'IP esterno che puoi utilizzare per raggiungere l'istanza.

  4. Puoi anche visualizzare la VM in Compute Engine:

    1. Nella console, vai alla pagina Compute Engine > Istanze VM.

      Vai a Istanze VM

    2. Visualizza la VM elencata in Istanze VM.

Libera spazio

Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Elimina il progetto

Se hai eseguito il deployment della soluzione in un nuovo Google Cloud progetto e non ti serve più il progetto, eliminalo completando i seguenti passaggi:

  1. Nella Google Cloud console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Quando richiesto, digita l'ID progetto, quindi fai clic su Chiudi.

Passaggi successivi