Configurar o App Hub

Este documento fornece instruções para configurar o App Hub para criar, operar e gerenciar aplicativos no Google Cloud. Ele é destinado a pessoas que configuram e administram o App Hub.

Se você estiver configurando o App Hub, as tarefas principais são as seguintes:

  1. Decida se você quer criar um novo projeto host do App Hub ou usar um projeto existente como seu projeto host.
    • Se você pretende ter mais de um projeto de host, recomendamos criar na mesma pasta.
    • Os projetos host no App Hub não são iguais aos projetos host da VPC compartilhada e não têm os mesmos requisitos. Por exemplo, você não precisa de uma rede VPC compartilhada para usar o App Hub. Neste documento, todas as referências a projetos host são projetos host do App Hub.
    • Um projeto host não pode ser um projeto de serviço diferente dele mesmo.
  2. Ative a API App Hub no projeto host.
  3. Adicione um ou mais projetos de serviço do App Hub ao projeto host.
    • Os projetos de serviço no App Hub não são iguais aos projetos de serviço da VPC compartilhada e não têm os mesmos requisitos. Neste documento, todas as referências a projetos de serviço são para projetos de serviço do App Hub.
  4. Designar usuários do App Hub como administradores, editores ou visualizadores.
  5. Criar aplicativos.
  6. Registre serviços e cargas de trabalho no aplicativo.

Serviços e cargas de trabalho

Com o App Hub, os recursos dos projetos de serviço anexados ao projeto host estão disponíveis como serviços e cargas de trabalho. O registro dos seus serviços e cargas de trabalho em um aplicativo permite observar e monitorar os recursos. É possível designar os seguintes recursos como serviços do App Hub e registrá-los em aplicativos do App Hub:

  • Regras de encaminhamento
  • Mapas de URL
  • Serviços de back-end

É possível designar grupos de instâncias gerenciadas (MIGs), mas não VMs individuais, como cargas de trabalho e registrá-los em apps do App Hub.

O App Hub oferece suporte a recursos globais (pré-lançamento) e regionais. Para mais informações, consulte Recursos com suporte do App Hub.

Processo de configuração geral

A lista a seguir resume as etapas para configurar o App Hub:

  1. Determine quais recursos existentes incluir no aplicativo e a quais projetos eles pertencem.
  2. Crie um projeto host do App Hub e ative a API App Hub nele. Opcionalmente, com base na estrutura organizacional da sua empresa, crie mais de um projeto host. Se você criar vários projetos, recomendamos que eles sejam criados em uma nova pasta.
  3. Anexar projetos de serviço. Depois de configurar um projeto host, anexe projetos de serviço com recursos subjacentes necessários aos seus aplicativos ao projeto host. Observe o seguinte:
    1. Os projetos de serviço precisam estar na mesma organização que o projeto host. Depois de anexar um projeto de serviço a um projeto host, não será possível movê-lo para uma organização diferente. Para mover o projeto de serviço para uma organização diferente, siga as instruções deste documento para remover ou desconectar o anexo do projeto de serviço ao projeto host. Em seguida, é possível anexar o projeto de serviço a uma organização diferente.
    2. Um projeto de serviço não pode ser anexado a mais de um projeto host.
    3. Um projeto host pode ser o próprio projeto de serviço, mas não pode ser um projeto de serviço para nenhum outro projeto host.
    4. Depois de anexar projetos de serviço a um projeto host, a consulta de serviços ou cargas de trabalho no projeto host retorna automaticamente todos os serviços e cargas de trabalho em todos os projetos de serviço.
  4. Crie um aplicativo para organizar várias cargas de trabalho e serviços. Observe que:
    1. Verifique se o aplicativo tem um nome exclusivo no projeto e local do host.
    2. Um projeto de serviço pode ser anexado a um projeto host com vários aplicativos, mas os recursos individuais podem ser registrados em apenas um aplicativo.
  5. Consultar serviços e cargas de trabalho e registrá-los no seu aplicativo. Depois de criar um aplicativo, consulte o projeto host para conferir os serviços e cargas de trabalho disponíveis. As consultas são executadas no projeto host e em todos os projetos de serviço anexados a ele. Eles também retornam todos os serviços e cargas de trabalho nesses projetos. Observe o seguinte:
    1. Só é possível registrar um serviço ou uma carga de trabalho em um único aplicativo.
    2. É necessário registrar serviços e cargas de trabalho de uma região específica em um aplicativo regional na mesma região ou em um aplicativo global. As instruções e os comandos a seguir presumem que todos os recursos estejam na mesma região. Para informações sobre quais regiões podem ser designadas, consulte Locais.
    3. Os serviços e cargas de trabalho registrados não são afetados por atualizações no recurso de infraestrutura subjacente. Em outras palavras, se você excluir os recursos que funcionam como serviços e cargas de trabalho, o App Hub não excluirá as cargas de trabalho e os serviços associados do seu aplicativo. É necessário cancelar o registro da carga de trabalho ou do serviço separadamente.

Pré-requisitos

Antes de configurar o App Hub, conclua as seguintes tarefas.

  1. Decida qual projeto existente é o host ou crie um novo para ser o host. Recomendamos que você crie um novo projeto.
  2. Verifique se você decidiu quais indivíduos têm os papéis do Identity and Access Management (IAM) do App Hub: administrador, editor e leitor.

Observe o seguinte:

  • Os projetos host podem ter um ou mais projetos de serviço anexados.
  • Um projeto de serviço não pode ser anexado a mais de um projeto host.
  • A pessoa que anexa um projeto de serviço a um projeto host precisa ter a função de administrador do App Hub do IAM no projeto de serviço e no projeto host. Para mais informações, consulte Papéis e permissões do App Hub.

Configurar o App Hub

Nesta seção, você vai criar um exemplo de arquitetura do App Hub.

No exemplo, uma organização tem três projetos de serviço, com os recursos de infraestrutura implantados nos projetos da seguinte maneira:

  • O projeto de serviço 1 tem dois recursos de infraestrutura, o serviço 1 e o serviço 2.
  • O projeto de serviço 2 tem três recursos de infraestrutura: serviço 3, carga de trabalho 1 e carga de trabalho 2.
  • O projeto de serviço 3 tem três recursos de infraestrutura: serviço 4, carga de trabalho 3 e carga de trabalho 4.

Verifique se os projetos escolhidos para criar o exemplo contêm os recursos descritos nesta seção ou esteja preparado para ajustar o exemplo conforme você segue as instruções.

As seções a seguir contêm as instruções para criar um exemplo de hub de apps. Você cria um projeto host e adiciona projetos de serviço a ele. Em seguida, cria um aplicativo e anexa serviços e cargas de trabalho a ele. O exemplo tem três projetos de serviço, mas você pode adicionar mais ou menos.

O exemplo pressupõe que os projetos de serviço adicionados já existem e contêm serviços e cargas de trabalho que você adiciona ao aplicativo. Antes de criar o exemplo, determine quais projetos de serviço contêm os serviços e cargas de trabalho que você quer incluir no aplicativo.

Ativar o App Hub

Nesta seção, você seleciona ou cria um novo projeto host, ativa a API App Hub e concede papéis e permissões apropriados a pessoas na sua organização. Você também anexa projetos de serviço ao projeto host.

Console

  1. No console do Google Cloud, acesse a página do seletor de projetos.

    Acessar o seletor de projetos

  2. Selecione ou crie um projeto do Google Cloud para ser o projeto de hospedagem do App Hub.

  3. Enable the required API.

    Enable the API

  4. Se você for o criador do projeto, receberá o papel de proprietário básico (roles/owner). Por padrão, esse papel do IAM inclui as permissões necessárias para o acesso total à maioria dos recursos do Google Cloud.

    Se você não é o criador do projeto, as permissões necessárias precisam ser concedidas ao principal apropriado. Por exemplo, um principal pode ser uma Conta do Google (para usuários finais) ou uma conta de serviço (para aplicativos e cargas de trabalho de computação). Para ter as permissões necessárias para concluir este tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:

    1. No console do Google Cloud, abra a página IAM.

      Acessar IAM

    2. Clique em Conceder acesso. O painel Conceder acesso será aberto.

    3. No campo Novos participantes, insira o endereço de e-mail da pessoa que vai administrar o App Hub, a função de administrador do App Hub no projeto de hospedagem.

    4. Clique em Selecionar um papel e, no campo Filtro, insira App Hub.

    5. Selecione a função de administrador do App Hub e clique em Salvar.

    6. Em cada um dos projetos de serviço do App Hub, conceda a função de administrador do App Hub ao mesmo usuário.

  5. No console do Google Cloud, acesse a página Configurações do App Hub.

    Acesse configurações

  6. Na página Configurações, clique em Anexar projetos.

  7. Escolha uma destas opções:

    • Na lista de projetos, marque as caixas de seleção dos projetos que você quer adicionar como projetos de serviço.
    • Pesquise e selecione os projetos que você quer adicionar como projetos de serviço.
  8. Clique em Selecionar. A tabela Attached Service Project(s) mostra os projetos de serviço selecionados.

  9. Clique em Fechar.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Verifique se a versão mais recente da Google Cloud CLI está instalada. Execute o comando a seguir no Cloud Shell:

    gcloud components update
  3. Crie ou selecione um novo projeto, HOST_PROJECT_ID, para ser o projeto host do App Hub.

    • Crie um projeto do Google Cloud:
      gcloud projects create HOST_PROJECT_ID
    • Selecione o projeto do Google Cloud que você criou:
      gcloud config set project HOST_PROJECT_ID
  4. Ative a API App Hub no projeto host que você acabou de criar.

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    
  5. Se você for o criador do projeto, receberá o papel de proprietário básico (roles/owner). Por padrão, esse papel do IAM inclui as permissões necessárias para o acesso total à maioria dos recursos do Google Cloud.

    Se você não é o criador do projeto, as permissões necessárias precisam ser concedidas ao principal apropriado. Por exemplo, um principal pode ser uma Conta do Google (para usuários finais) ou uma conta de serviço (para aplicativos e cargas de trabalho de computação). Para ter as permissões necessárias para concluir este tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:

    1. Opcionalmente, conceda aos indivíduos que vão administrar o App Hub a função de administrador no projeto host. Repita o comando a seguir para cada administrador.

      gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      

      Substitua HOST_PROJECT_ADMIN pelo usuário que tem a função de administrador do App Hub no projeto host. Esse valor tem o formato username@yourdomain, por exemplo, robert.smith@example.com.

    2. Conceda a função de administrador do App Hub nos projetos de serviço às pessoas que administram o App Hub. Eles precisam ter o papel de administrador do App Hub para adicionar projetos de serviço ao projeto host. É necessário ter pelo menos uma pessoa com essa função para cada projeto de serviço. Uma única pessoa pode ter a função em vários projetos de serviço.

      gcloud projects add-iam-policy-binding SERVICE_PROJECT_1 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      
      gcloud projects add-iam-policy-binding SERVICE_PROJECT_2 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      
      gcloud projects add-iam-policy-binding SERVICE_PROJECT_3 \
          --member='user:HOST_PROJECT_ADMIN' \
          --role='roles/apphub.admin'
      

      Substitua:

      • SERVICE_PROJECT_1: o primeiro dos três projetos de serviço neste exemplo.
      • SERVICE_PROJECT_2: o segundo de três projetos de serviço neste exemplo.
      • SERVICE_PROJECT_3: o terceiro dos três projetos de serviço neste exemplo.
  6. Adicione seus projetos de serviço ao projeto host do App Hub.

    gcloud apphub service-projects add SERVICE_PROJECT_1 \
        --project=HOST_PROJECT_ID
    
    gcloud apphub service-projects add SERVICE_PROJECT_2 \
        --project=HOST_PROJECT_ID
    
    gcloud apphub service-projects add SERVICE_PROJECT_3 \
        --project=HOST_PROJECT_ID
    

Opcional: adicione projetos de serviço ao escopo de métricas do projeto host

Para conferir as métricas do sistema dos aplicativos no projeto host, adicione os projetos de serviço como contêineres de recursos ao escopo de métricas do projeto host. Um projeto host do App Hub funciona como um projeto de escopo que hospeda um escopo de métricas. O escopo das métricas de um projeto do Google Cloud define os contêineres de recursos definidos cujos dados de série temporal o projeto host pode representar em gráficos e monitorar. Para mais informações sobre contêineres de recursos, escopo de métricas e projetos de escopo, consulte Cloud Monitoring: modelo de dados.

Para conferir as métricas do sistema de um aplicativo, adicione ou exclua manualmente os projetos de serviço monitorados dos projetos host, conforme necessário. No entanto, se você estiver usando o projeto host como o próprio projeto de serviço, não adicione o projeto ao escopo de métricas, já que os aplicativos do App Hub estão no mesmo projeto.

Verifique se você tem os seguintes papéis do IAM:

Console

  1. No console do Google Cloud, abra a página  Configurações:

    Acessar Configurações

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Selecione Escopo da métrica.

    A guia Escopo de métricas lista os recursos monitorados pelo projeto atual do Google Cloud. Ele também lista os projetos do Google Cloud cujo escopo de métricas inclui o projeto atual do Google Cloud.

  3. Para adicionar projetos do Google Cloud ao escopo de métricas:

    1. No painel Google Cloud Projects, clique em Adicionar projetos.
    2. Na caixa de diálogo Add Google Cloud projects, clique em Select Projects e marque as caixas de seleção dos projetos de serviço necessários que você quer monitorar.
    3. Para salvar as alterações, clique em Adicionar projetos.

      A página Configurações é exibida com a tabela atualizada para listar suas seleções.

Depois de adicionar projetos a um escopo de métricas, leva cerca de 60 segundos para que as alterações sejam propagadas por todos os sistemas do Monitoring.

Para mais informações sobre como configurar os escopos de métricas usando o console do Google Cloud, consulte Configurar um escopo de métricas.

gcloud

Para adicionar seus projetos de serviço como um contêiner de recursos monitorados ao projeto host do App Hub:

gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_1 \
    --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_2 \
    --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_3 \
    --project=HOST_PROJECT_ID

Para mais informações sobre como configurar os escopos de métricas usando a Google Cloud CLI, consulte Configurar um escopo de métricas usando a API.

Criar um aplicativo

Crie um aplicativo para ser o contêiner dos seus serviços e cargas de trabalho, se ainda não tiver um. Com base no escopo dos seus serviços e cargas de trabalho nos projetos de serviço, crie uma aplicação global (pré-lançamento) ou regional.

  • Um aplicativo global (pré-lançamento) permite registrar serviços e cargas de trabalho descobertos de recursos regionais e globais do Google Cloud.
  • Um aplicativo regional permite registrar serviços e cargas de trabalho descobertos de recursos regionais do Google Cloud.

Depois de criar um aplicativo, não será possível mudar o escopo dele. Para mais informações sobre aplicativos globais e regionais, consulte Aplicativos globais e regionais do App Hub.

Console

  1. Verifique se você está no projeto host.
  2. No console do Google Cloud, acesse a página Applications do App Hub.

    Acesse Aplicativos

  3. Clique em Criar aplicativo.

  4. Na página Criar aplicativo, no painel Escolher região e nome do aplicativo, com base no escopo de serviços e workloads que você quer registrar no aplicativo, faça uma das seguintes ações:

    • Para criar um aplicativo que permita registrar serviços e cargas de trabalho em um local global, selecione Global (Pré-lançamento).

    • Para criar um aplicativo que permita registrar serviços e cargas de trabalho em um único local:

      1. Selecione Regional.
      2. Selecione uma Região.
  5. Insira o Nome do aplicativo e clique em Continuar.

  6. Opcionalmente, adicione mais detalhes para o aplicativo nos campos a seguir. Para mais informações, consulte Atualizar um aplicativo do App Hub neste documento.

  7. Clique em Criar.

gcloud

  1. Crie um novo aplicativo chamado APPLICATION_NAME e atribua um nome de exibição, APPLICATION_DISPLAY_NAME.

    gcloud apphub applications create APPLICATION_NAME \
      --scope-type=SCOPE_TYPE \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    Substitua:

    • APPLICATION_NAME: o nome do seu aplicativo. O nome precisa incluir apenas caracteres alfanuméricos minúsculos sem espaços.
    • SCOPE_TYPE: o escopo do aplicativo que define quais serviços e cargas de trabalho estão disponíveis para você registrar no aplicativo. Use um dos seguintes valores:
    • REGION: a região do aplicativo. Dependendo do --scope-type, atribua o valor us-east1 ou global (Pré-lançamento).
  2. Liste os aplicativos no projeto host.

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

    O resultado será assim:

    ID                DISPLAY_NAME              CREATE_TIME
    APPLICATION_NAME  APPLICATION_DISPLAY_NAME  2023-10-31T18:33:48
    
  3. Conferir detalhes do app que você criou.

    gcloud apphub applications describe APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    O comando retorna informações no formato YAML, semelhante ao seguinte.

    createTime: '2023-10-31T18:33:48.199394108Z'
    displayName: APPLICATION_DISPLAY_NAME
    name: projects/HOST_PROJECT_ID/locations/REGION/applications/APPLICATION_NAME
    scope:
      type: SCOPE_TYPE
    state: ACTIVE
    uid: [APPLICATION_UID]
    updateTime: '2023-10-31T18:33:48.343303819Z'
    
    

Atualizar um app do App Hub

Também é possível atualizar os atributos do app depois que ele é criado.

Console

  1. No console do Google Cloud, acesse a página Applications do App Hub.

    Acesse Aplicativos

  2. Na lista de aplicativos, clique em Editar para o aplicativo que você quer atualizar.

  3. Edite os campos conforme necessário e clique em Salvar.

  4. Opcional: na lista Criticalidade, para indicar a importância do app, selecione uma das seguintes opções:

    • Serviços críticos
    • Alta
    • Meio
    • Baixa
  5. Opcional: na lista Ambiente, para indicar o estágio do ciclo de vida do software, selecione uma das seguintes opções:

    • Production
    • Preparação
    • Development
    • Testar
  6. Opcional: adicione os seguintes detalhes conforme necessário para proprietários de desenvolvedor, proprietários de operador e proprietários de empresa. É necessário inserir o endereço de e-mail do proprietário se você adicionar um nome de exibição.

    1. Insira o nome de exibição de um proprietário.
    2. Insira o endereço de e-mail do proprietário. Esse valor precisa ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.
  7. Repita essas etapas para cada desenvolvedor, operador e proprietário de empresa.

  8. Clique em Salvar.

gcloud

  1. Atualize seu app com os atributos criticality-type, environment-type e tipo de proprietário:

    gcloud apphub applications update APPLICATION_NAME \
      --display-name='APPLICATION_DISPLAY_NAME' \
      --criticality-type='CRITICALITY_LEVEL' \
      --environment-type='ENVIRONMENT' \
      --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \
      --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \
      --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    Substitua:

    • APPLICATION_DISPLAY_NAME: o nome de exibição do seu aplicativo.
    • CRITICALITY_LEVEL: indica a importância de um aplicativo, serviço ou carga de trabalho para as operações de negócios. Forneça um dos seguintes valores:
      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • ENVIRONMENT: indica as fases do ciclo de vida do software. Forneça um dos seguintes valores:
      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • DISPLAY-NAME-DEVELOPER, DISPLAY-NAME-OPERATOR e DISPLAY-NAME-BUSINESS: mostram os nomes dos proprietários do desenvolvedor, do operador e da empresa, respectivamente.
    • EMAIL-NAME-DEVELOPER, EMAIL-NAME-OPERATOR e EMAIL-NAME-BUSINESS: endereços de e-mail dos proprietários do desenvolvedor, do operador e da empresa, respectivamente. Esses valores precisam ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.
  2. Liste os aplicativos em que o atributo environment-type tem o valor PRODUCTION.

    gcloud apphub applications list \
        --filter='attributes.environment.type=PRODUCTION' \
        --project=HOST_PROJECT_ID \
        --location=REGION
    

    O resultado será assim:

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

Registrar serviços e cargas de trabalho

Quando você registra serviços e cargas de trabalho de infraestrutura em um aplicativo, eles são registrados como recursos do App Hub. Use um aplicativo global (pré-lançamento) para registrar recursos globais ou distribuídos em várias regiões. Use um aplicativo regional para registrar recursos da mesma região do aplicativo. Se você estiver usando os marcadores de posição para criar o aplicativo com a CLI gcloud, os serviços e os workloads nos três projetos de serviço serão os seguintes:

  • O projeto de serviço 1 tem dois recursos de infraestrutura, o serviço 1 e o serviço 2.
  • O projeto de serviço 2 tem três recursos de infraestrutura: serviço 3, carga de trabalho 1 e carga de trabalho 2.
  • O projeto de serviço 3 tem três recursos de infraestrutura: serviço 4, carga de trabalho 3 e carga de trabalho 4.

Console

  1. No console do Google Cloud, acesse a página Applications do App Hub.

    Acesse Aplicativos

  2. Clique no nome do seu app. A guia Serviços e cargas de trabalho é exibida com uma lista de serviços e cargas de trabalho registrados nos seus projetos de serviço.

  3. 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. Na página Registrar serviço ou carga de trabalho, no painel Selecionar recurso, clique em Procurar para selecionar o serviço ou a carga de trabalho como um Recurso.
    3. No painel Selecionar recurso, escolha um serviço ou uma carga de trabalho e clique em Selecionar.
    4. No painel Selecionar recurso, insira um Nome para o serviço ou a carga de trabalho e clique em Continuar.
    5. Opcionalmente, no painel Adicionar atributos, adicione mais detalhes do serviço ou da carga de trabalho nos campos a seguir. Para mais informações, neste documento, consulte Atualizar um aplicativo do App Hub. É possível selecionar valores para os campos Grau de criticidade e Ambiente que sejam diferentes dos valores definidos ao criar o aplicativo.
    6. Clique em Continuar.
    7. Opcionalmente, na seção Adicionar proprietários, adicione mais detalhes sobre os proprietários do serviço ou da carga de trabalho nos campos seguintes. Para mais informações, consulte Atualizar um aplicativo do App Hub neste documento.
    8. Clique em Registrar.

A guia Serviços e cargas de trabalho mostra o serviço ou a carga de trabalho registrados. Para mais informações sobre os status de registro, consulte as propriedades e os atributos do App Hub.

gcloud

  1. Adicione uma pessoa com permissões de editor do App Hub.

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
      --member='user:APP_HUB_EDITOR' \
      --role='roles/apphub.editor'
    

    Substitua APP_HUB_EDITOR pelo usuário que tem a função de editor do App Hub no projeto host. Esse valor tem o formato username@yourdomain, por exemplo, robert.smith@example.com.

  2. Liste as cargas de trabalho descobertas do projeto de serviço 2, que está anexado ao projeto host. Esse comando retorna as cargas de trabalho que estão disponíveis para serem registradas em um aplicativo.

    gcloud apphub discovered-workloads list \
      --filter='workload_properties.gcp_project=projects/SERVICE_PROJECT_2' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    O resultado é semelhante ao seguinte, que inclui MIGs não registradas:

    ID                           WORKLOAD_REFERENCE                                                                                                      WORKLOAD_PROPERTIES
    [DISCOVERED_WORKLOAD_ID_1]   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-1'}     {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    [DISCOVERED_WORKLOAD_ID_2]   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}     {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
    

    Copie o ID da carga de trabalho da saída para usar na próxima etapa.

  3. Registre uma carga de trabalho da etapa anterior no seu aplicativo.

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --discovered-workload='projects/HOST_PROJECT_ID/locations/REGION/discoveredWorkloads/DISCOVERED_WORKLOAD_ID_2' \
      --display-name='mywebserver-deployment1' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    Substitua:

    • WORKLOAD_NAME: um nome para registrar a carga de trabalho.
    • DISCOVERED_WORKLOAD_ID_2: o ID da carga de trabalho da saída da etapa anterior.
  4. Repita as duas etapas anteriores para filtrar e registrar as cargas de trabalho que você quer no projeto de serviço 3.

  5. Opcional: é possível atualizar as cargas de trabalho com os atributos criticality-type, environment-type e proprietário.

    gcloud apphub applications workloads update WORKLOAD_NAME \
      --application=APPLICATION_NAME \
      --criticality-type='CRITICALITY_LEVEL' \
      --environment-type='ENVIRONMENT' \
      --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \
      --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \
      --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    É necessário fornecer um dos valores especificados para criticality-type e environment-type, mas o valor pode ser diferente dos valores definidos ao criar o aplicativo.

  6. Listar as cargas de trabalho registradas no aplicativo.

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

    O resultado será assim:

    ID                DISPLAY_NAME                 WORKLOAD_REFERENCE                                                                                                    CREATE_TIME
    WORKLOAD_NAME     mywebserver-deployment1      {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'}   2023-10-31T18:34:23
    

    As cargas de trabalho registradas, mas separadas, são indicadas por um valor vazio no campo WORKLOAD_REFERENCE. Para mais informações sobre os status de registro, consulte as propriedades e os atributos do App Hub.

  7. Liste os serviços descobertos com regras de encaminhamento no projeto de serviço 1 anexado ao projeto host. Esse comando retorna os serviços que estão disponíveis para registro em um aplicativo.

    gcloud apphub discovered-services list \
      --filter='service_properties.gcp_project=projects/SERVICE_PROJECT_1 AND service_reference.uri~"forwardingRules"' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    O resultado será assim:

    ID                           SERVICE_REFERENCE                                                                                                                    SERVICE_PROPERTIES
    [DISCOVERED_SERVICE_ID_1]    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-1'}     {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    [DISCOVERED_SERVICE_ID_2]    {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}     {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
    

    Copie o ID do serviço, DISCOVERED_SERVICE_ID_2, da saída para usar na próxima etapa.

  8. Registre a regra de encaminhamento, testing-forwarding-rule-2, no projeto de serviço 1 como um serviço.

    gcloud apphub applications services create SERVICE_NAME \
      --discovered-service='projects/HOST_PROJECT_ID/locations/REGION/discoveredServices/DISCOVERED_SERVICE_ID_2' \
      --display-name='mywebserver-service1' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    Substitua:

    • SERVICE_NAME: um nome para registrar o serviço.
    • DISCOVERED_SERVICE_ID_2: o ID do serviço da saída da etapa anterior.
  9. Repita as etapas anteriores que listam serviços, filtram esses serviços e registram os serviços nos projetos de serviço 1, 2 e 3.

  10. Atualize um serviço com o atributo criticality-type e o environment-type.

    gcloud apphub applications services update SERVICE_NAME \
      --criticality-type='CRITICALITY_LEVEL' \
      --environment-type='ENVIRONMENT' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID  \
      --location=REGION
    
  11. Listar os serviços registrados no aplicativo APPLICATION_NAME e no projeto host HOST_PROJECT_ID.

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

    O resultado será semelhante ao seguinte para cada serviço:

    ID                DISPLAY_NAME                 SERVICE_REFERENCE                                                                                                                  CREATE_TIME
    SERVICE_NAME      mywebserver-service1         {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'}   2023-11-01T21:38:08
    

    Os serviços registrados, mas separados, são indicados por um valor vazio no campo SERVICE_REFERENCE.

  12. Filtre os serviços no aplicativo APPLICATION_NAME e no projeto host HOST_PROJECT_ID para aqueles em que o atributo environment-type está definido como PRODUCTION.

    gcloud apphub applications services list \
      --filter='attributes.environment.type=PRODUCTION' \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

O processo de configuração do App Hub foi concluído.

Adicionar ou remover projetos de serviço

É possível modificar os anexos do projeto de serviço para disponibilizar diferentes recursos de infraestrutura para agrupar em um aplicativo.

Para conferir as métricas do sistema para aplicativos no projeto host, adicione os projetos de serviço como contêineres de recursos ao escopo de métricas do projeto host. Para mais informações, neste documento, consulte Adicionar projetos de serviço ao escopo de métricas do projeto host. Ao remover um projeto de serviço de um projeto host, considere remover os projetos de serviço como contêineres de recursos do escopo de métricas do projeto host (se você tiver optado por visualizar as métricas do sistema dos aplicativos no projeto host). Para mais informações, neste documento, consulte as etapas para remover os projetos de serviço do escopo de métricas do projeto host.

Console

Para adicionar um projeto de serviço a um projeto host:

  1. No console do Google Cloud, acesse a página Configurações do App Hub.

    Acesse configurações

  2. Na página Configurações, clique em Anexar projetos.

  3. No painel que abrir, pesquise projetos na lista exibida e marque as caixas de seleção dos projetos que você quer adicionar como projetos de serviço.

  4. Clique em Selecionar. A tabela Attached Service Project(s) mostra os projetos selecionados como os projetos de serviço do projeto host.

  5. Clique em Fechar.

Para remover um projeto de serviço de um projeto host:

  1. No console do Google Cloud, acesse a página Configurações do App Hub.

    Acesse configurações

  2. Na página Configurações, marque as caixas de seleção dos projetos que você quer remover como projetos de serviço.

  3. Clique em Desanexar projetos. A tabela Attached Service Project(s) é atualizada para mostrar apenas os projetos que permanecem anexados ao projeto host.

gcloud

Para adicionar um projeto de serviço a um projeto host:

gcloud apphub service-projects add SERVICE_PROJECT_ID \
   --project=HOST_PROJECT_ID
Substitua SERVICE_PROJECT_ID pelo nome do projeto de serviço que você quer adicionar ao projeto host.
Para remover um projeto de serviço do projeto host:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \
   --project=HOST_PROJECT_ID

Conferir aplicativos, serviços e cargas de trabalho

É possível conferir os aplicativos em um projeto e listar serviços e cargas de trabalho em um aplicativo.

Console

  • Para conferir as inscrições em um projeto:

    1. No console do Google Cloud, acesse a página Aplicativos do Hub de apps.

      Acesse Aplicativos

    2. Opcional: para filtrar o aplicativo:

      1. No campo Filtro, selecione uma opção, como Grau de criticidade.
      2. Selecione Alto como o valor.
        Uma lista de aplicativos de alta criticidade criados no projeto host é exibida.
  • Para listar serviços e cargas de trabalho:

    Aplicativos

    1. No console do Google Cloud, acesse a página Applications do App Hub.

      Acesse Aplicativos

    2. Clique no nome de um aplicativo. Uma página com uma lista de serviços e cargas de trabalho registrados no aplicativo é exibida.

    3. Opcional: para filtrar os serviços ou workloads:

      1. No campo Filtro, selecione uma opção, como Grau de criticidade.
      2. Selecione Alto como o valor.
        Uma lista de serviços e cargas de trabalho de alta criticidade que estão registrados no aplicativo aparece.

    Serviços e cargas de trabalho

    1. No console do Google Cloud, acesse a página Serviços e cargas de trabalho do App Hub.

      Acesse "Serviços e cargas de trabalho"

    2. Na lista Região, selecione as regiões em que você quer acessar os serviços e os workloads. Por exemplo, selecione us-east1.
      A página Serviços e cargas de trabalho mostra todos os serviços e cargas de trabalho dos projetos de serviço anexados associados a us-east1.

    3. Opcional: para filtrar os serviços ou workloads:

      1. No campo Filtro, selecione uma opção, como Ambiente.
      2. Selecione Produção como o valor.
        Uma lista de serviços e cargas de trabalho no ambiente de produção que está registrada em um aplicativo aparece.

gcloud

  • Para conferir as inscrições em um projeto:

    gcloud apphub applications list \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  • Para listar os serviços registrados em um aplicativo:

    gcloud apphub applications services list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  • Para listar as cargas de trabalho registradas em um aplicativo:

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  • Opcional: para filtrar os recursos com base em atributos variáveis, adicione uma flag de comando filter aos comandos anteriores. Por exemplo, para listar todas as cargas de trabalho registradas em que o atributo criticality-type está definido como HIGH:

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME \
      --filter='attributes.criticality.type=HIGH' \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    Para mais informações sobre os atributos que podem ser usados para filtrar, nesta página, consulte Atualizar um aplicativo do App Hub.

Opcional: conferir métricas do aplicativo

É possível conferir as métricas do sistema dos aplicativos criados no projeto de host do App Hub. Essas métricas correspondem aos indicadores de ouro (tráfego, erros, latência e saturação) que ajudam a monitorar o desempenho e a integridade do aplicativo.

  1. No console do Google Cloud, acesse a página Applications do App Hub.

    Acesse Aplicativos

  2. Clique no nome de um aplicativo.

    A guia Serviços e cargas de trabalho é mostrada com os metadados dos serviços e das cargas de trabalho registrados no aplicativo.

  3. Opcional: para mudar o período em que as métricas são exibidas, use o seletor de período. O intervalo de tempo padrão é de uma hora.

  4. Para conferir as métricas do sistema de serviços e cargas de trabalho registrados, clique em bar_chart Métricas.

    Uma tabela é mostrada com os seguintes indicadores:

    • Tráfego: taxas de solicitações de entrada no recurso no período selecionado.
    • Taxa de erros do servidor: porcentagem média de solicitações recebidas que geram códigos de erro HTTP da série 5xx no período selecionado.
    • Latência P95: 95º percentil de latência para uma solicitação de serviço agregada no período selecionado, em milissegundos.
    • Uso da CPU: a porcentagem média de uso da CPU para uma carga de trabalho, agregada no período especificado. Os valores geralmente são números entre 0,0 e 100,0, mas podem exceder 100,0.
    • Utilização da memória: a porcentagem média de utilização da memória para uma carga de trabalho, agregada no período especificado.

Opcional: analisar métricas usando gráficos

Para criar gráficos de métricas dos seus projetos do App Hub, use o Metrics Explorer. É possível restringir os dados que aparecem no gráfico aplicando filtros com base em rótulos. Para mais informações, consulte Criar gráficos com o Metrics Explorer.

Os seguintes identificadores de metadados do sistema do App Hub estão disponíveis para filtragem (pré-lançamento):

  • apphub_application_host_project_id
  • apphub_application_id
  • apphub_application_location
  • apphub_workload_criticality_type
  • apphub_workload_environment_type
  • apphub_workload_id

Para visualizar os rótulos de metadados do App Hub em um gráfico, siga estas instruções. Siga o mesmo procedimento para os outros rótulos de metadados do sistema e as métricas do App Hub.

  1. No Console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. No elemento Metric, expanda o menu Selecionar uma métrica, digite VM Instance na barra de filtro e use os submenus para selecionar um tipo de recurso e métrica específicos:
    1. No menu Recursos ativos, selecione Instância de VM.
    2. No menu Categorias de métrica ativas, selecione Métricas populares.
    3. No menu Métricas ativas, selecione Utilização da CPU.
    4. Clique em Aplicar.
    O nome totalmente qualificado dessa métrica é compute.googleapis.com/instance/cpu/utilization.
  3. Configure a visualização dos dados. Para mostrar apenas as métricas de um rótulo específico, siga estas etapas:
    1. No elemento Filtro, clique em Adicionar filtro e selecione apphub_application_id. Para o valor, insira um nome específico do hub de apps.
    2. Na entrada Agregação, defina o primeiro menu como Não agregado.

    Para mais informações sobre como configurar um gráfico, consulte Selecionar métricas ao usar o Metrics Explorer.

Limpar

Limpe um aplicativo existente e remova um anexo de projeto de serviço do projeto host para remover os recursos associados ao projeto. Isso interrompe a detecção automática de recursos no projeto de serviço.

Para fazer isso, primeiro exclua as cargas de trabalho e os serviços registrados no aplicativo.

Console

  1. No console do Google Cloud, acesse a página Aplicativos do Hub de apps.

    Acesse Aplicativos

  2. Clique no nome de um aplicativo. Uma lista de serviços e cargas de trabalho registrados no aplicativo vai aparecer.

  3. Cancelar a inscrição de um serviço ou carga de trabalho.

    1. Na guia Serviços e cargas de trabalho, na seção Serviços e cargas de trabalho registrados, clique no nome do serviço ou da carga de trabalho que você quer cancelar o registro.
    2. Na guia Detalhes, clique em Cancelar registro para atualizar o serviço ou a carga de trabalho como um recurso Descoberto.
      Na guia Serviços e cargas de trabalho, um alerta notifica que a carga de trabalho não está registrada.
    3. Repita essas instruções para cada serviço e carga de trabalho.
  4. Acesse a página Aplicativos do hub.

    Acesse Aplicativos

  5. Clique no nome de um aplicativo.

  6. Na página com os detalhes do aplicativo, clique em Excluir.

  7. Para remover os projetos de serviço do projeto host, consulte a seção Adicionar ou remover projetos de serviço deste documento.

  8. Para remover os projetos de serviço do escopo de métricas do projeto host:

    1. No console do Google Cloud, abra a página  Configurações:

      Acessar Configurações

      Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

    2. Selecione Escopo da métrica.
    3. No painel Google Cloud Projects, clique em Remove project e preencha a caixa de diálogo de confirmação.

gcloud

  1. Liste as cargas de trabalho registradas no aplicativo:

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME --project=HOST_PROJECT_ID \
      --location=REGION
    
  2. Cancele o registro da carga de trabalho no aplicativo:

    gcloud apphub applications workloads delete WORKLOAD_NAME \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    A carga de trabalho agora é uma carga de trabalho descoberta que pode ser registrada no aplicativo.

  3. Repita o comando anterior para excluir os demais workloads registrados do aplicativo.

  4. Liste os serviços registrados no aplicativo:

    gcloud apphub applications services list \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  5. Cancele o registro do serviço no aplicativo:

    gcloud apphub applications services delete SERVICE_NAME \
      --application=APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    

    O serviço agora é um serviço descoberto que pode ser registrado no aplicativo.

  6. Repita o comando anterior para cancelar o registro dos serviços restantes registrados no aplicativo.

  7. Exclua o aplicativo:

    gcloud apphub applications delete APPLICATION_NAME \
      --project=HOST_PROJECT_ID \
      --location=REGION
    
  8. Remova um projeto de serviço do projeto host:

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    
  9. Repita o comando anterior para remover todos os projetos de serviço do projeto host.

  10. Remova os projetos de serviço do escopo de métricas do projeto host (pré-lançamento):

    gcloud beta monitoring metrics-scopes delete projects/SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    
  11. Repita o comando anterior para remover todos os projetos de serviço do projeto host do escopo de métricas.

A seguir