Enregistrer des ressources existantes dans une application

En enregistrant vos ressources Google Cloud existantes en tant que services et charges de travail dans une application App Hub, vous pouvez simplifier la gestion en organisant les ressources en fonction de leur objectif commercial. Cette approche offre une visibilité, une surveillance, une gouvernance et un contrôle opérationnel unifiés.

Ce guide vous explique comment regrouper les ressources Google Cloud existantes qui ne sont pas encore formellement définies comme une application.

Avant de commencer

Vous devez effectuer la configuration initiale de la gestion des applications avant d'organiser les ressources dans des applications. Ce processus implique généralement les rôles et étapes suivants :

Créer une application

Créez une application dans App Hub pour qu'elle serve de conteneur logique pour vos ressources Google Cloud existantes :

Console

  1. Dans la console Google Cloud , utilisez le sélecteur de projet pour sélectionner votre projet de gestion.
  2. Accédez à la page Applications depuis App Hub :

    Accéder à la page Applications

  3. Cliquez sur Créer une application.

  4. Dans le volet Choisir la région et le nom de l'application, sélectionnez l'emplacement le plus adapté à votre application en fonction de vos exigences de répartition géographique :

    • Sélectionnez Régional pour créer une application régionale. Ensuite, sélectionnez la région spécifique de votre application en fonction des régions compatibles avec le hub d'applications.
    • Sélectionnez Global pour créer une application globale.

    Pour en savoir plus sur le meilleur emplacement pour votre application, consultez Applications globales et régionales.

  5. Saisissez le nom de l'application, puis cliquez sur Continuer. Ce nom est un identifiant unique qui ne peut contenir que des lettres minuscules, des chiffres ou des traits d'union. Vous ne pourrez pas modifier ce nom une fois l'application créée.

  6. Facultatif : Définissez les attributs de premier niveau de l'application pour faciliter la découverte et la gouvernance :

    • Dans la section Ajouter des attributs, saisissez le nom à afficher. Le nom à afficher n'est pas un identifiant unique. Vous pouvez le modifier après avoir créé l'application.
    • Dans la liste Criticité, sélectionnez une valeur pour indiquer l'importance de l'application.
    • Dans la liste Environnement, sélectionnez une valeur pour indiquer l'étape du cycle de vie du logiciel.
    • Ajoutez les coordonnées des propriétaires, y compris leur nom à afficher et leur adresse e-mail. Notez que les adresses e-mail doivent être au format username@yourdomain, par exemple jane-doe@gmail.com.
  7. Cliquez sur Créer.

gcloud

  1. Utilisez Google Cloud CLI pour créer une application depuis votre terminal ou Cloud Shell :

    gcloud apphub applications create APPLICATION_NAME \
      --project=PROJECT_ID \
      --scope-type=LOCATION \
      --location=REGION \
      --display-name=DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Remplacez APPLICATION_NAME par le nom de votre application. Ce nom est un identifiant unique qui ne peut contenir que des lettres minuscules, des chiffres ou des traits d'union.

    Utilisez des indicateurs facultatifs tels que --criticality-type pour définir les attributs de premier niveau de l'application et favoriser la découverte et la gouvernance.

    Pour les indicateurs obligatoires et facultatifs, remplacez les éléments suivants :

    • Obligatoire : PROJECT_ID : ID du projet de gestion.
    • Obligatoire : LOCATION : emplacement de votre application en fonction de vos exigences de distribution géographique. Utilisez l'une des valeurs suivantes :

      • REGIONAL pour les applications régionales.
      • GLOBAL pour les applications mondiales.

      Pour en savoir plus sur le meilleur emplacement pour votre application, consultez Applications globales et régionales.

    • Obligatoire : REGION, la région spécifique de votre application. Appliquez l'une des valeurs suivantes :

      • Si l'emplacement --scope-type de votre application est défini sur REGIONAL, spécifiez le nom d'une région compatible avec App Hub.
      • Si la localisation --scope-type de votre application est définie sur GLOBAL, utilisez global.
    • Facultatif : DISPLAY_NAME : nom à afficher de votre application. Le nom à afficher n'est pas un identifiant unique et vous pouvez le modifier après avoir créé l'application.

    • Facultatif : CRITICALITY, niveau d'importance de l'application pour vos opérations. Utilisez l'une des valeurs suivantes :

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT (facultatif) : étape du cycle de vie du logiciel. Appliquez l'une des valeurs suivantes :

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Facultatif : DEV_NAME et DEV_EMAIL correspondent respectivement au nom à afficher et à l'adresse e-mail du propriétaire du compte de développeur.

    • Facultatif : OPERATOR_NAME et OPERATOR_EMAIL : nom à afficher et adresse e-mail du propriétaire de l'opérateur, respectivement.

    • Facultatif : BUSINESS_NAME et BUSINESS_EMAIL, respectivement le nom à afficher et l'adresse e-mail du propriétaire de l'entreprise.

  2. Répertoriez les applications de votre projet :

    gcloud apphub applications list \
      --project=PROJECT_ID \
      --location=REGION
    

    Vous devez obtenir un résultat semblable à ce qui suit :

    ID                 DISPLAY_NAME   CREATE_TIME
    APPLICATION_NAME   DISPLAY_NAME   2023-10-31T18:33:48
    

Terraform

Pour créer une application avec Terraform, utilisez la ressource google_apphub_application. Cette ressource vous permet de définir les propriétés de l'application, y compris son nom, son emplacement et ses attributs.

L'exemple suivant crée une application régionale dans us-central1 avec des attributs de criticité, d'environnement et de propriétaire définis :

resource "google_apphub_application" "example" {
    project        = "my-project-id"
    location       = "us-central1"
    application_id = "my-application"
    display_name   = "My Application"
    description    = "This application represents our platform."
    scope {
        type = "REGIONAL"
    }
    attributes {
        criticality {
            type = "MISSION_CRITICAL"
        }
        environment {
            type = "PRODUCTION"
        }
        business_owners {
            display_name = "Alice"
            email        = "alice@example.com"
        }
        developer_owners {
            display_name = "Bob"
            email        = "bob@example.com"
        }
        operator_owners {
            display_name = "Charlie"
            email        = "charlie@example.com"
        }
    }
}

Enregistrer des services et des charges de travail

App Hub vous permet de sélectionner des ressources compatibles situées dans la limite de gestion de votre application pour les enregistrer en tant que services et charges de travail. Après avoir créé une application, enregistrez-y vos ressourcesGoogle Cloud existantes en tant que services et charges de travail.

Vous ne pouvez enregistrer les services exclusifs que pour une seule application. Toutefois, les services partagés peuvent être enregistrés dans plusieurs applications. App Hub détecte les services partagés lorsque vous les enregistrez dans une application, même s'ils sont déjà enregistrés dans une autre application. Toutefois, vous ne pourrez peut-être pas modifier leurs attributs.

Console

  1. Dans la console Google Cloud , utilisez le sélecteur de projet pour sélectionner votre projet de gestion.
  2. Accédez à la page Applications depuis App Hub :

    Accéder à la page Applications

  3. Cliquez sur le nom de l'application pour laquelle vous souhaitez enregistrer les ressources Google Cloud existantes en tant que services et charges de travail.

  4. Sur la page des détails de l'application, sélectionnez l'onglet Services et charges de travail. Cet onglet affiche la liste des ressources existantes que vous pouvez enregistrer dans l'application. App Hub vous permet de sélectionner des ressources compatibles situées dans la limite de gestion de vos applications en tant que services ou charges de travail.

  5. Pour chaque service ou charge de travail que vous souhaitez enregistrer, procédez comme suit :

    1. Dans l'onglet Services et charges de travail, cliquez sur Enregistrer un service/une charge de travail.
    2. Accédez au volet Sélectionner une ressource, puis cliquez sur Parcourir pour trouver le service ou la charge de travail que vous souhaitez enregistrer.
    3. Sélectionnez le service ou la charge de travail, puis cliquez sur Sélectionner.
    4. Dans le volet Sélectionner une ressource, saisissez un nom pour le service ou la charge de travail, puis cliquez sur Continuer.
    5. Facultatif : Dans le volet Ajouter des attributs, définissez les attributs de premier niveau de la ressource pour faciliter la découverte et la gouvernance.

    6. Cliquez sur Continuer.

    7. Facultatif : Dans la section Ajouter des propriétaires, ajoutez des informations sur les propriétaires du service ou de la charge de travail.

    8. Cliquez sur S'inscrire.

L'onglet Services et charges de travail affiche le service ou la charge de travail enregistrés.

gcloud

App Hub vous permet de sélectionner des ressources compatibles situées dans la limite de gestion de vos applications en tant que services ou charges de travail. Utilisez Google Cloud CLI pour lister les services ou les charges de travail que vous pouvez enregistrer dans l'application depuis votre terminal ou Cloud Shell. Les commandes sont légèrement différentes pour les services et les charges de travail :

Enregistrer les services

  1. Répertoriez les services disponibles que vous pouvez enregistrer dans une application :

    gcloud apphub discovered-services list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    Pour les indicateurs obligatoires et facultatifs, remplacez les éléments suivants :

    • Obligatoire : PROJECT_ID : ID du projet de gestion.
    • Obligatoire : REGION : région spécifique de votre service en fonction de votre répartition géographique. Utilisez l'une des valeurs suivantes :

    • Facultatif : FILTER_EXPRESSION : expression de filtre pour l'indicateur --filter afin d'afficher uniquement les services d'un projet spécifié dans la limite de gestion des applications ou avec une propriété spécifique, par exemple :

      • service_properties.gcp_project=projects/PROJECT_ID
      • service_properties.gcp_project=projects/PROJECT_ID AND service_reference.uri~"forwardingRules"

    Le résultat ressemble à celui de l'exemple ci-dessous.

    ID            SERVICE_REFERENCE                                                                                             SERVICE_PROPERTIES
    SERVICE_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. Copiez l'ID de service, SERVICE_ID, à partir de la sortie.

  3. Enregistrez le service dans votre application :

    gcloud apphub applications services create SERVICE_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-service=projects/PROJECT_ID/locations/REGION/discoveredServices/SERVICE_ID \
      --display-name=SERVICE_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Remplacez SERVICE_NAME par le nom que vous souhaitez utiliser pour enregistrer le service auprès de l'application.

    Utilisez des indicateurs facultatifs tels que --criticality-type pour définir les attributs de premier niveau du service et favoriser la détectabilité et la gouvernance.

    Pour les indicateurs obligatoires et facultatifs, remplacez les éléments suivants :

    • Obligatoire : PROJECT_ID : ID du projet de gestion.
    • Obligatoire : REGION : région spécifique de votre service en fonction de votre répartition géographique. Utilisez l'une des valeurs suivantes :

    • Obligatoire : APPLICATION_NAME : nom de l'application pour laquelle vous souhaitez enregistrer le service.

    • Obligatoire : SERVICE_ID : ID de service que vous avez copié à partir du résultat précédent.

    • Facultatif : SERVICE_DISPLAY_NAME : nom à afficher de votre service.

    • Facultatif : CRITICALITY : niveau d'importance du service pour vos opérations. Utilisez l'une des valeurs suivantes :

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT (facultatif) : étape du cycle de vie du logiciel. Appliquez l'une des valeurs suivantes :

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Facultatif : DEV_NAME et DEV_EMAIL, respectivement le nom à afficher et l'adresse e-mail du propriétaire du compte de développeur.

    • Facultatif : OPERATOR_NAME et OPERATOR_EMAIL : nom à afficher et adresse e-mail du propriétaire de l'opérateur, respectivement.

    • Facultatif : BUSINESS_NAME et BUSINESS_EMAIL, respectivement le nom à afficher et l'adresse e-mail du propriétaire de l'établissement.

  4. Listez les services enregistrés dans votre application :

    gcloud apphub applications services list \
      --application=APPLICATION_NAME
      --project=PROJECT_ID \
      --location=REGION
    

    Vous devez obtenir un résultat semblable à ce qui suit pour chaque service enregistré :

    ID              DISPLAY_NAME            SERVICE_REFERENCE                                                                                             CREATE_TIME
    SERVICE_NAME    SERVICE_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    2023-11-01T21:38:08
    

Enregistrer des charges de travail

  1. Listez les charges de travail disponibles que vous pouvez enregistrer dans une application :

    gcloud apphub discovered-workloads list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    Pour les indicateurs obligatoires et facultatifs, remplacez les éléments suivants :

    • Obligatoire : PROJECT_ID : ID du projet de gestion.
    • Obligatoire : REGION : région spécifique de votre charge de travail en fonction de votre répartition géographique. Utilisez l'une des valeurs suivantes :

    • Facultatif : FILTER_EXPRESSION : expression de filtre pour l'indicateur --filter afin d'afficher uniquement les charges de travail d'un projet spécifié dans la limite de gestion des applications ou avec une propriété spécifique, par exemple workload_properties.gcp_project=projects/PROJECT_ID.

    Le résultat ressemble à celui de l'exemple ci-dessous.

    ID             WORKLOAD_REFERENCE                                                                                    WORKLOAD_PROPERTIES
    WORKLOAD_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. Copiez l'ID de charge de travail, WORKLOAD_ID, à partir de la sortie.

  3. Enregistrez la charge de travail dans votre application :

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-workload=projects/PROJECT_ID/locations/REGION/discoveredWorkloads/WORKLOAD_ID \
      --display-name=WORKLOAD_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Remplacez WORKLOAD_NAME par le nom que vous souhaitez utiliser pour enregistrer la charge de travail auprès de l'application.

    Utilisez des indicateurs facultatifs tels que --criticality-type pour définir les attributs de premier niveau de la charge de travail et favoriser la détectabilité et la gouvernance.

    Pour les indicateurs obligatoires et facultatifs, remplacez les éléments suivants :

    • Obligatoire : PROJECT_ID : ID du projet de gestion.
    • Obligatoire : REGION : région spécifique de votre charge de travail en fonction de votre répartition géographique. Utilisez l'une des valeurs suivantes :

    • Obligatoire : APPLICATION_NAME : nom de l'application pour laquelle vous souhaitez enregistrer la charge de travail.

    • Obligatoire : WORKLOAD_ID : ID de charge de travail que vous avez copié à partir du résultat précédent.

    • WORKLOAD_DISPLAY_NAME (facultatif) : nom à afficher de votre charge de travail.

    • Facultatif : CRITICALITY : niveau d'importance de la charge de travail pour vos opérations. Utilisez l'une des valeurs suivantes :

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT (facultatif) : étape du cycle de vie du logiciel. Appliquez l'une des valeurs suivantes :

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Facultatif : DEV_NAME et DEV_EMAIL, respectivement le nom à afficher et l'adresse e-mail du propriétaire du compte de développeur.

    • Facultatif : OPERATOR_NAME et OPERATOR_EMAIL : nom à afficher et adresse e-mail du propriétaire de l'opérateur, respectivement.

    • Facultatif : BUSINESS_NAME et BUSINESS_EMAIL, respectivement le nom à afficher et l'adresse e-mail du propriétaire de l'établissement.

  4. Répertoriez les charges de travail enregistrées dans votre application :

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME
      --project=PROJECT_ID \
      --location=REGION
    

    Vous devez obtenir un résultat semblable à ce qui suit pour chaque charge de travail enregistrée :

    ID               DISPLAY_NAME             WORKLOAD_REFERENCE                                                                                    CREATE_TIME
    WORKLOAD_NAME    WORKLOAD_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    2023-11-01T21:38:08
    

Terraform

Pour utiliser Terraform afin d'enregistrer des ressources Google Cloud dans la limite de gestion de votre application en tant que services ou charges de travail dans une application, utilisez les sources de données google_apphub_discovered_service et google_apphub_discovered_workload pour récupérer de manière dynamique des informations sur les ressources que vous souhaitez enregistrer.

Ensuite, utilisez les ressources google_apphub_service ou google_apphub_workload pour enregistrer respectivement les services ou les charges de travail.

Enregistrer les services

  1. Obtenez des informations sur un service à l'aide de son URI :

    data "google_apphub_discovered_service" "my-service" {
        location = "REGION"
        service_uri = "SERVICE_URI"
    }
    
  2. Enregistrez le service détecté dans votre application, par exemple :

    resource "google_apphub_service" "example" {
        project            = "my-project-id"
        location           = "us-central1"
        application_id     = google_apphub_application.example.application_id
        service_id         = "frontend-load-balancer"
        discovered_service = data.google_apphub_discovered_service.my-forwarding-rule.name
        display_name       = "Frontend Load Balancer"
        description        = "The primary load balancer for the frontend."
    }
    

Enregistrer des charges de travail

  1. Obtenez des informations sur une charge de travail à l'aide de son URI :

    data "google_apphub_discovered_workload" "my-workload" {
        location = "REGION"
        workload_uri = "WORKLOAD_URI"
    }
    
  2. Enregistrez la charge de travail découverte dans votre application, par exemple :

    resource "google_apphub_workload" "example" {
        project             = "my-project-id"
        location            = "us-central1"
        application_id      = google_apphub_application.example.application_id
        workload_id         = "frontend-instance-group"
        discovered_workload = data.google_apphub_discovered_workload.my-mig.name
        display_name        = "Frontend Instance Group"
        description         = "The managed instance group for the frontend."
    }
    

L'état d'enregistrement des services et des charges de travail enregistrés dans une application peut passer à Détaché si vous déplacez un projet ou un dossier en dehors de la limite de gestion de votre application, ou si vous supprimez la ressource sous-jacente. Les services et les charges de travail détachés restent dans l'application jusqu'à ce que vous les désenregistriez, mais App Hub ne peut plus les gérer ni les surveiller. Pour en savoir plus, consultez État d'enregistrement des services et des charges de travail.

Pour rattacher à nouveau des services ou des charges de travail à une application, vous devez les enregistrer à nouveau.

Accorder des autorisations et commencer les opérations

Après avoir créé une application et enregistré des services et des charges de travail dans App Hub, vous devez accorder l'accès aux utilisateurs en fonction des responsabilités liées au cycle de vie pour gérer ce regroupement logique en tant qu'unité unique :

  1. Selon vos besoins d'accès, vous pouvez accorder des autorisations à des applications spécifiques ou à toutes les applications. Pour obtenir la liste des rôles recommandés, consultez Attribuer des rôles axés sur les applications à vos utilisateurs.
  2. Vous pouvez également accéder à Cloud Hub pour afficher un tableau de bord opérationnel unifié pour votre application définie, y compris ses données sur l'état, les performances et les coûts.