Configurar um aplicativo gRPC em Google Cloud com a observabilidade de microsserviços

As ferramentas de observabilidade de microsserviços oferecem a capacidade de instrumentar seus aplicativos para coletar e apresentar dados de telemetria no Cloud Monitoring, Cloud Logging e Cloud Trace de cargas de trabalho gRPC implantadas em Google Cloud e em outros lugares. A observabilidade de microsserviços funciona com qualquer implantação que tenha permissão para acessar o Monitoring, o Logging e o Trace ao ativar a API Microservices.

Neste tutorial, você vai aprender a usar os recursos de observabilidade de microsserviços criando um aplicativo gRPC simples no Google Cloud com o Compute Engine, instrumentando seu aplicativo com a observabilidade de microsserviços e visualizando-os como ativos no Monitoring e no Logging.

Objetivos

Em geral, você faz o seguinte.

  • Como desenvolvedor de serviços, você pode fazer o seguinte:

    • Crie um aplicativo gRPC na linguagem de sua escolha (C++, Go ou Java).
    • Ative seu aplicativo e controle o plug-in de observabilidade de microsserviços.
    • Implante o aplicativo em uma VM do Compute Engine.
  • Como operador de serviços, você consome os dados coletados de várias maneiras.

    • Visualize traces no Trace.
    • Confira as métricas no painel de monitoramento chamado de monitoramento de microsserviços (gRPC).
    • Veja métricas no Metrics Explorer.
    • Inspecione entradas de registro na Análise de registros.

Custos

Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custo baseada na sua projeção de uso, utilize a calculadora de preços.

Novos usuários do Google Cloud podem estar qualificados para um teste sem custo financeiro.

Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.

Antes de começar

Console

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  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. Ative as APIs Compute Engine e Microservices.

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar as APIs

  5. Verifique se você tem o papel do IAM de criação de contas de serviço (roles/iam.serviceAccountCreator) e o papel de administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin). Saiba como conceder papéis.
  6. No console Google Cloud , acesse a página Criar conta de serviço.

    Acesse "Criar conta de serviço"
  7. Selecione o projeto.
  8. No campo Nome da conta de serviço, insira um nome. O console Google Cloud preenche o campo ID da conta de serviço com base nesse nome.

    No campo Descrição da conta de serviço, insira uma descrição. Por exemplo, Service account for quickstart.

  9. Clique em Criar e continuar.
  10. Conceda os seguintes papéis à conta de serviço: Geração de registros > Visualizador de registros > Gravador de registros, Monitoramento > Editor do Monitoramento > Gravador de métricas, Trace > Administrador do Trace > Agente do Trace.

    Para conceder um papel, encontre a lista Selecionar um papel e escolha uma opção.

    Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.

  11. Clique em Continuar.
  12. No campo Papel de usuários da conta de serviço, insira o identificador do principal que vai anexar a conta de serviço a outros recursos, como instâncias do Compute Engine.

    Normalmente, é o endereço de e-mail de uma Conta do Google.

  13. Clique em Concluído para terminar a criação da conta de serviço.

  • 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

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

  • Ative as APIs Compute Engine e Microservices.

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar as APIs

  • Verifique se você tem o papel do IAM de criação de contas de serviço (roles/iam.serviceAccountCreator) e o papel de administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin). Saiba como conceder papéis.
  • No console Google Cloud , acesse a página Criar conta de serviço.

    Acesse "Criar conta de serviço"
  • Selecione o projeto.
  • No campo Nome da conta de serviço, insira um nome. O console Google Cloud preenche o campo ID da conta de serviço com base nesse nome.

    No campo Descrição da conta de serviço, insira uma descrição. Por exemplo, Service account for quickstart.

  • Clique em Criar e continuar.
  • Conceda os seguintes papéis à conta de serviço: Geração de registros > Visualizador de registros > Gravador de registros, Monitoramento > Editor do Monitoramento > Gravador de métricas, Trace > Administrador do Trace > Agente do Trace.

    Para conceder um papel, encontre a lista Selecionar um papel e escolha uma opção.

    Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.

  • Clique em Continuar.
  • No campo Papel de usuários da conta de serviço, insira o identificador do principal que vai anexar a conta de serviço a outros recursos, como instâncias do Compute Engine.

    Normalmente, é o endereço de e-mail de uma Conta do Google.

  • Clique em Concluído para terminar a criação da conta de serviço.

  • Leia a Visão geral da observabilidade de microsserviços.
  • Leia sobre as duas variáveis de ambiente compatíveis, decida qual delas usar e determine os valores exigidos pela variável de ambiente.
  • CLI

    1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
    2. Instale a CLI do Google Cloud.

    3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    4. Para inicializar a gcloud CLI, execute o seguinte comando:

      gcloud init
    5. Crie ou selecione um Google Cloud projeto.

      Funções necessárias para selecionar ou criar um projeto

      • Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
      • Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a permissão resourcemanager.projects.create. Saiba como conceder papéis.
      • Crie um projeto do Google Cloud :

        gcloud projects create PROJECT_ID

        Substitua PROJECT_ID por um nome para o projeto Google Cloud que você está criando.

      • Selecione o projeto Google Cloud que você criou:

        gcloud config set project PROJECT_ID

        Substitua PROJECT_ID pelo nome do projeto do Google Cloud .

    6. Verifique se o faturamento está ativado para o projeto do Google Cloud .

    7. Ative as APIs Compute Engine e Microservices:

      Funções necessárias para ativar APIs

      Para ativar as APIs, é necessário ter o papel do IAM de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

      gcloud services enable compute.googleapis.com microservices.googleapis.com
    8. Configure a autenticação:

      1. Verifique se você tem o papel do IAM de criação de contas de serviço (roles/iam.serviceAccountCreator) e o papel de administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin). Saiba como conceder papéis.
      2. Crie a conta de serviço:

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

        Substitua SERVICE_ACCOUNT_NAME por um nome para a conta de serviço.

      3. Conceda papéis à conta de serviço. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM: roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agent

        gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

        Substitua:

        • SERVICE_ACCOUNT_NAME: o nome da conta de serviço.
        • PROJECT_ID: o ID do projeto em que você criou a conta de serviço
        • ROLE: o papel a ser concedido
      4. Conceda ao principal o papel necessário para anexar a conta de serviço a outros recursos.

        gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

        Substitua:

        • SERVICE_ACCOUNT_NAME: o nome da conta de serviço.
        • PROJECT_ID: o ID do projeto em que você criou a conta de serviço
        • USER_EMAIL: o endereço de e-mail de uma Conta do Google
    9. Instale a CLI do Google Cloud.

    10. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    11. Para inicializar a gcloud CLI, execute o seguinte comando:

      gcloud init
    12. Crie ou selecione um Google Cloud projeto.

      Funções necessárias para selecionar ou criar um projeto

      • Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
      • Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a permissão resourcemanager.projects.create. Saiba como conceder papéis.
      • Crie um projeto do Google Cloud :

        gcloud projects create PROJECT_ID

        Substitua PROJECT_ID por um nome para o projeto Google Cloud que você está criando.

      • Selecione o projeto Google Cloud que você criou:

        gcloud config set project PROJECT_ID

        Substitua PROJECT_ID pelo nome do projeto do Google Cloud .

    13. Verifique se o faturamento está ativado para o projeto do Google Cloud .

    14. Ative as APIs Compute Engine e Microservices:

      Funções necessárias para ativar APIs

      Para ativar as APIs, é necessário ter o papel do IAM de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

      gcloud services enable compute.googleapis.com microservices.googleapis.com
    15. Configure a autenticação:

      1. Verifique se você tem o papel do IAM de criação de contas de serviço (roles/iam.serviceAccountCreator) e o papel de administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin). Saiba como conceder papéis.
      2. Crie a conta de serviço:

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

        Substitua SERVICE_ACCOUNT_NAME por um nome para a conta de serviço.

      3. Conceda papéis à conta de serviço. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM: roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agent

        gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

        Substitua:

        • SERVICE_ACCOUNT_NAME: o nome da conta de serviço.
        • PROJECT_ID: o ID do projeto em que você criou a conta de serviço
        • ROLE: o papel a ser concedido
      4. Conceda ao principal o papel necessário para anexar a conta de serviço a outros recursos.

        gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

        Substitua:

        • SERVICE_ACCOUNT_NAME: o nome da conta de serviço.
        • PROJECT_ID: o ID do projeto em que você criou a conta de serviço
        • USER_EMAIL: o endereço de e-mail de uma Conta do Google
    16. Leia a Visão geral da observabilidade de microsserviços.
    17. Leia sobre as duas variáveis de ambiente compatíveis, decida qual delas usar e determine os valores exigidos pela variável de ambiente.