Registrar recursos atuais em um aplicativo

Ao registrar seus recursos Google Cloud atuais como serviços e cargas de trabalho em um aplicativo do App Hub, você simplifica o gerenciamento organizando os recursos com base na finalidade comercial deles. Essa abordagem oferece visibilidade, monitoramento, governança e controle operacional unificados.

Neste guia, mostramos como agrupar recursos Google Cloud existentes que ainda não foram definidos formalmente como um aplicativo.

Antes de começar

É preciso concluir a configuração inicial do gerenciamento de aplicativos antes de organizar recursos em aplicativos. Esse processo geralmente envolve as seguintes funções e etapas:

Criar um aplicativo

Crie um aplicativo no App Hub para atuar como um contêiner lógico para seus recursos Google Cloud atuais:

Console

  1. No console Google Cloud , use o seletor de projetos para escolher seu projeto de gerenciamento.
  2. Acesse a página Aplicativos no App Hub:

    Acesse Aplicativos

  3. Clique em Criar aplicativo.

  4. No painel Escolha a região e o nome do aplicativo, selecione o melhor local para seu aplicativo com base nos requisitos de distribuição geográfica:

    • Selecione Regional para criar um aplicativo regional. Em seguida, selecione a região específica do aplicativo com base nas regiões compatíveis com o App Hub.
    • Selecione Global para criar um aplicativo global.

    Para mais informações sobre o melhor local para seu aplicativo, consulte Aplicativos globais e regionais.

  5. Insira o Nome do aplicativo e clique em Continuar. Esse nome é um identificador exclusivo que só pode conter letras minúsculas, números ou hífens. Não é possível mudar esse nome depois de criar o aplicativo.

  6. Opcional: defina os atributos de nível superior do aplicativo para oferecer suporte à capacidade de descoberta e à governança:

    • Na seção Adicionar atributos, insira o Nome de exibição. O nome de exibição não é um identificador exclusivo e pode ser alterado depois da criação do aplicativo.
    • Na lista Gravidade, selecione um valor para indicar a importância do aplicativo.
    • Na lista Ambiente, selecione um valor para indicar a etapa do ciclo de vida do software.
    • Adicione detalhes de dados de contato dos proprietários, incluindo nome de exibição e endereço de e-mail. Os endereços de e-mail precisam ter o formato username@yourdomain, por exemplo, jane-doe@gmail.com.
  7. Clique em Criar.

gcloud

  1. Use a Google Cloud CLI para criar um aplicativo no terminal ou no 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
    

    Substitua APPLICATION_NAME pelo nome do aplicativo. Esse nome é um identificador exclusivo que só pode conter letras minúsculas, números ou hifens.

    Use flags opcionais, como --criticality-type, para definir os atributos de nível superior do aplicativo e apoiar a capacidade de descoberta e a governança.

    Para flags obrigatórias e opcionais, substitua o seguinte:

    • Obrigatório: PROJECT_ID: o ID do projeto de gerenciamento.
    • Obrigatório: LOCATION: o local do seu aplicativo com base nos requisitos de distribuição geográfica. Use um dos seguintes valores:

      • REGIONAL para aplicativos regionais.
      • GLOBAL para aplicativos globais.

      Para mais informações sobre o melhor local para seu aplicativo, consulte Aplicativos globais e regionais.

    • Obrigatório: REGION, a região específica do seu aplicativo. Use um dos seguintes valores:

    • Opcional: DISPLAY_NAME: o nome de exibição do aplicativo. O nome de exibição não é um identificador exclusivo e pode ser mudado depois da criação do aplicativo.

    • Opcional: CRITICALITY: o nível de importância do aplicativo para suas operações. Use um dos seguintes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT: o estágio do ciclo de vida do software. Use um dos seguintes valores:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME e DEV_EMAIL: o nome de exibição e o endereço de e-mail do proprietário do desenvolvedor, respectivamente.

    • Opcional: OPERATOR_NAME e OPERATOR_EMAIL: o nome de exibição e o endereço de e-mail do proprietário do operador, respectivamente.

    • Opcional: BUSINESS_NAME e BUSINESS_EMAIL: o nome de exibição e o endereço de e-mail do proprietário da empresa, respectivamente.

  2. Liste os aplicativos no seu projeto:

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

    Você vai receber uma saída semelhante a esta:

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

Terraform

Para criar um aplicativo com o Terraform, use o recurso google_apphub_application. Com esse recurso, é possível definir as propriedades do aplicativo, incluindo nome, local e atributos.

O exemplo a seguir cria um aplicativo regional em us-central1 com atributos de criticidade, ambiente e proprietário definidos:

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"
        }
    }
}

Registrar serviços e cargas de trabalho

Com o App Hub, é possível selecionar recursos compatíveis localizados no limite de gerenciamento de aplicativos para registrá-los como serviços e cargas de trabalho. Depois de criar um aplicativo, registre os recursos Google Cloud atuais como serviços e cargas de trabalho nele.

Só é possível registrar serviços exclusivos em um aplicativo. No entanto, os serviços compartilhados podem ser registrados em mais de um aplicativo. O App Hub vai descobrir serviços compartilhados quando você os registrar em um aplicativo, mesmo que já estejam registrados em outro aplicativo, mas talvez não seja possível modificar os atributos deles.

Console

  1. No console Google Cloud , use o seletor de projetos para escolher seu projeto de gerenciamento.
  2. Acesse a página Aplicativos no App Hub:

    Acesse Aplicativos

  3. Clique no nome do aplicativo para o qual você quer registrar recursos Google Cloud existentes como serviços e cargas de trabalho.

  4. Na página de detalhes do aplicativo, selecione a guia Serviços e cargas de trabalho. Essa guia mostra a lista de recursos que podem ser registrados no aplicativo. Com o App Hub, você pode selecionar recursos compatíveis localizados no limite de gerenciamento de aplicativos como serviços ou cargas de trabalho.

  5. Para cada serviço ou carga de trabalho que você quer registrar, faça o seguinte:

    1. Na guia Serviços e cargas de trabalho, clique em Registrar serviço/carga de trabalho.
    2. Acesse o painel Selecionar recurso e clique em Procurar para encontrar o serviço ou a carga de trabalho que você quer registrar.
    3. Escolha o serviço ou a carga de trabalho e clique em Selecionar.
    4. No painel Selecionar recurso, insira um nome para o serviço ou carga de trabalho e clique em Continuar.
    5. Opcional: no painel Adicionar atributos, defina os atributos de nível superior do recurso para oferecer suporte à capacidade de descoberta e à governança.

    6. Clique em Continuar.

    7. Opcional: na seção Adicionar proprietários, adicione mais detalhes sobre os proprietários do serviço ou da carga de trabalho.

    8. Clique em Registrar.

A guia Serviços e cargas de trabalho mostra o serviço ou a carga de trabalho registrada.

gcloud

Com o App Hub, é possível selecionar recursos compatíveis localizados no limite de gerenciamento de aplicativos como serviços ou cargas de trabalho. Use a CLI do Google Cloud para listar serviços ou cargas de trabalho que podem ser registrados no aplicativo no terminal ou no Cloud Shell. Os comandos são um pouco diferentes para serviços e cargas de trabalho:

Registrar serviços

  1. Liste os serviços disponíveis que podem ser registrados em um aplicativo:

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

    Para flags obrigatórias e opcionais, substitua o seguinte:

    • Obrigatório: PROJECT_ID: o ID do projeto de gerenciamento.
    • Obrigatório: REGION, a região específica do seu serviço com base na distribuição geográfica. Use um dos seguintes valores:

    • Opcional: FILTER_EXPRESSION: a expressão de filtro para a flag --filter para mostrar apenas serviços de um projeto especificado no limite de gerenciamento de aplicativos ou com uma propriedade específica, por exemplo:

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

    A resposta será semelhante a:

    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. Copie o ID do serviço, SERVICE_ID, da saída.

  3. Registre o serviço no seu aplicativo:

    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
    

    Substitua SERVICE_NAME pelo nome que você quer usar para registrar o serviço no aplicativo.

    Use flags opcionais, como --criticality-type, para definir os atributos de nível superior do serviço e apoiar a capacidade de descoberta e a governança.

    Para flags obrigatórias e opcionais, substitua o seguinte:

    • Obrigatório: PROJECT_ID: o ID do projeto de gerenciamento.
    • Obrigatório: REGION, a região específica do seu serviço com base na distribuição geográfica. Use um dos seguintes valores:

    • Obrigatório: APPLICATION_NAME: o nome do aplicativo em que você quer registrar o serviço.

    • Obrigatório: SERVICE_ID: o ID do serviço que você copiou da saída anterior.

    • Opcional: SERVICE_DISPLAY_NAME: o nome de exibição do seu serviço.

    • Opcional: CRITICALITY: o nível de importância do serviço para suas operações. Use um dos seguintes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT: o estágio do ciclo de vida do software. Use um dos seguintes valores:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME e DEV_EMAIL: o nome de exibição e o endereço de e-mail do proprietário do desenvolvedor, respectivamente.

    • Opcional: OPERATOR_NAME e OPERATOR_EMAIL: o nome de exibição e o endereço de e-mail do proprietário do operador, respectivamente.

    • Opcional: BUSINESS_NAME e BUSINESS_EMAIL: o nome de exibição e o endereço de e-mail do proprietário da empresa, respectivamente.

  4. Liste os serviços registrados no seu aplicativo:

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

    Você precisa receber uma saída semelhante à seguinte para cada serviço registrado:

    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
    

Registrar cargas de trabalho

  1. Liste as cargas de trabalho disponíveis que podem ser registradas em um aplicativo:

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

    Para flags obrigatórias e opcionais, substitua o seguinte:

    • Obrigatório: PROJECT_ID: o ID do projeto de gerenciamento.
    • Obrigatório: REGION, a região específica da sua carga de trabalho com base na distribuição geográfica. Use um dos seguintes valores:

    • Opcional: FILTER_EXPRESSION: a expressão de filtro para a flag --filter para mostrar apenas cargas de trabalho de um projeto especificado dentro do limite de gerenciamento de aplicativos ou com uma propriedade específica, por exemplo, workload_properties.gcp_project=projects/PROJECT_ID.

    A resposta será semelhante a:

    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. Copie o ID da carga de trabalho, WORKLOAD_ID, da saída.

  3. Registre a carga de trabalho no seu aplicativo:

    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
    

    Substitua WORKLOAD_NAME pelo nome que você quer usar para registrar a carga de trabalho no aplicativo.

    Use flags opcionais, como --criticality-type, para definir os atributos de nível superior da carga de trabalho e oferecer suporte à capacidade de descoberta e à governança.

    Para flags obrigatórias e opcionais, substitua o seguinte:

    • Obrigatório: PROJECT_ID: o ID do projeto de gerenciamento.
    • Obrigatório: REGION, a região específica da sua carga de trabalho com base na distribuição geográfica. Use um dos seguintes valores:

    • Obrigatório: APPLICATION_NAME: o nome do aplicativo para o qual você quer registrar a carga de trabalho.

    • Obrigatório: WORKLOAD_ID: o ID da carga de trabalho copiado da saída anterior.

    • Opcional: WORKLOAD_DISPLAY_NAME: o nome de exibição da sua carga de trabalho.

    • Opcional: CRITICALITY: o nível de importância da carga de trabalho para suas operações. Use um dos seguintes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT: o estágio do ciclo de vida do software. Use um dos seguintes valores:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME e DEV_EMAIL: o nome de exibição e o endereço de e-mail do proprietário do desenvolvedor, respectivamente.

    • Opcional: OPERATOR_NAME e OPERATOR_EMAIL: o nome de exibição e o endereço de e-mail do proprietário do operador, respectivamente.

    • Opcional: BUSINESS_NAME e BUSINESS_EMAIL: o nome de exibição e o endereço de e-mail do proprietário da empresa, respectivamente.

  4. Liste as cargas de trabalho registradas no seu aplicativo:

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

    Você precisa receber uma saída semelhante à seguinte para cada carga de trabalho registrada:

    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

Para usar o Terraform e registrar recursos Google Cloud no limite de gerenciamento de aplicativos como serviços ou cargas de trabalho em um aplicativo, use as fontes de dados google_apphub_discovered_service e google_apphub_discovered_workload para recuperar informações dinamicamente sobre os recursos que você quer registrar.

Em seguida, use os recursos google_apphub_service ou google_apphub_workload para registrar serviços ou cargas de trabalho, respectivamente.

Registrar serviços

  1. Receba informações sobre um serviço usando o URI dele:

    data "google_apphub_discovered_service" "my-service" {
        location = "REGION"
        service_uri = "SERVICE_URI"
    }
    
  2. Registre o serviço descoberto no seu aplicativo, por exemplo:

    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."
    }
    

Registrar cargas de trabalho

  1. Receba informações sobre uma carga de trabalho usando o URI dela:

    data "google_apphub_discovered_workload" "my-workload" {
        location = "REGION"
        workload_uri = "WORKLOAD_URI"
    }
    
  2. Registre a carga de trabalho descoberta no seu aplicativo, por exemplo:

    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."
    }
    

O status de registro de serviços e cargas de trabalho registrados em um aplicativo pode mudar para desvinculado se você mover um projeto ou uma pasta para fora do limite de gerenciamento de aplicativos ou excluir o recurso subjacente. Os serviços e as cargas de trabalho desconectados permanecem no aplicativo até serem cancelados, mas o App Hub não pode mais gerenciá-los ou monitorá-los. Para mais informações, consulte Status de registro de serviços e cargas de trabalho.

Para anexar serviços ou cargas de trabalho a um aplicativo, registre-os novamente.

Conceder permissões e iniciar operações

Depois de criar um aplicativo e registrar serviços e cargas de trabalho no App Hub, conceda acesso do usuário com base nas responsabilidades do ciclo de vida para gerenciar esse agrupamento lógico como uma única unidade:

  1. Dependendo das suas necessidades de acesso, é possível conceder permissões a aplicativos individuais ou a todos eles. Para ver uma lista de funções recomendadas, consulte Conceder funções centradas em aplicativos aos usuários.
  2. Se quiser, navegue até o Cloud Hub para ver um painel operacional unificado do aplicativo definido, incluindo dados de integridade, performance e custo.