Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Reduza o risco de indisponibilidade na nuvem monitorando suas cotas de forma proativa

By Mike SparrMay 1, 20235 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Ver a demanda pelas suas soluções de software disparar deveria ser empolgante, certo? Na maioria das vezes é motivo de comemoração, mas existe um descuido comum em hospedagem em nuvem pública que pode paralisar sua empresa, ou até causar uma indisponibilidade — limites e cotas.

Não seja pego de surpresa na hora mais crítica

Na DoiT International, atendemos milhares de organizações pelo mundo como parceiro de nuvem de confiança e fornecedor de software de FinOps. Com dezenas de milhares de chamados de clientes tratados todo mês pelos nossos cloud architects, um descuido recorrente que vemos é a falta de previsão para o esgotamento das cotas. Isso costuma gerar pedidos de socorro de última hora para acelerar o atendimento das solicitações de aumento de cota junto ao provedor de nuvem.

Quota increase requests from customers

Solicitações de suporte para aumento de cota recebidas dos nossos clientes

Há mais de uma década, nossa paixão é inovar e entregar as verdadeiras promessas da nuvem: simplicidade, elasticidade e eficiência. Para ajudar nossos clientes nesse problema recorrente, incorporamos recursos de monitoramento e alertas de cota à nossa própria plataforma de software multi-cloud, o DoiT Console.

Exemplo: funcionalidade de monitoramento de cotas no DoiT Console para clientes AWS

Infelizmente, nem todo mundo que usa nuvem pública é cliente da DoiT (ainda), e felizmente o time do Google também percebeu esse problema e disponibilizou em open source um projeto chamado "Quota Monitoring Solution (QMS)".

Quota Monitoring Solution open source do Google

Embora o repositório no Github dessa solução traga instruções passo a passo, este artigo busca simplificar as etapas para você colocar tudo no ar rapidamente. Para explicações mais detalhadas de cada passo, fique à vontade para consultar a documentação no repositório.

Em menos de vinte minutos, usando comandos gcloud e terraform em um terminal, você terá um dashboard como o abaixo e poderá personalizar os alertas conforme as necessidades da sua organização.

Looker Studio dashboard of your quotas and usage

Dashboard no Looker Studio mostrando o uso de cotas em nível de organização, pasta, região ou projeto

Recursos

Fonte: Google

Arquitetura

Fonte: Google

Neste artigo, você vai aprender a:

  1. Preparar e configurar seu ambiente do QMS
  2. Instalar o QMS com Terraform
  3. Configurar seu dashboard no Looker Studio

Então vamos lá!

Pré-requisitos

Saber executar comandos gcloud no terminal ou no cloud shell

Embora dê para configurar o serviço manualmente no Cloud Console, ele foi pensado para ser instalado e configurado via terminal e comandos shell. Você pode usar o cliente de terminal de sua preferência ou simplesmente o Cloud Shell embutido no GCP Console.

Saber executar Terraform

Você vai precisar instalar a ferramenta de linha de comando do Terraform na sua máquina ou no Cloud Shell. A configuração da infraestrutura na nuvem e das funções serverless é automatizada com infraestrutura como código (IaC).

Permissão para atribuir papéis IAM

Para prosseguir, você vai precisar de vários papéis IAM para criar um projeto de monitoramento, uma service account e atribuir papéis a essa service account. O recomendável é que você ou alguém do seu time com o papel de Organization Administrator garanta que você tenha os papéis abaixo:

1\. Prepare e configure seu ambiente do QMS

Para simplificar a preparação e configuração, montei um script que faz o seguinte por você:

  • Cria o projeto de monitoramento, a service account e o IAM da service account
  • IAM do alvo (organização ou pasta)
  • Configuração e instruções do Terraform

Execute o comando abaixo no seu terminal ou cloud shell para iniciar a preparação.

Dicas

  • Pressione RETURN para aceitar os [padrões]: nos prompts
  • Tenha o seu billing ID (xxxxxx-xxxxxx-xxxxxx) à mão para copiar e colar
bash <(curl -L https://bit.ly/gcp-qms-setup)

Você pode conferir o código-fonte aqui: https://bit.ly/gcp-qms-setup

Exemplo dos prompts no terminal ao executar o script de instalação acima

2\. Instale o QMS com Terraform

Quando o script concluir a preparação inicial, ele vai pedir que você se autentique e execute o terraform manualmente, permitindo inspecionar o plan antes de aplicar (e tentar de novo em caso de erros).

Exemplo do prompt no terminal após o script de configuração, com os comandos finais para rodar o terraform

Comandos de instalação (substitua <your-…> pelos valores corretos)

PROJECT_ID=<your-project-id>
SA_EMAIL=<your-sa-email-address>
REGION=<your-region>

# configure gcloud sdk
gcloud config set core/project $PROJECT_ID

# set up short-lived oauth token
gcloud config set auth/impersonate_service_account $SA_EMAIL
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)

# run terraform (re-run `terraform plan` and `terraform apply` if errors)
cd quota-monitoring-solution/terraform/example
terraform init
terraform plan
terraform apply

# unset service account impersonation
gcloud config unset auth/impersonate_service_account

# return to project directory
cd ../../../

# start cloud scheduler jobs to begin monitoring quotas
gcloud scheduler jobs run quota-monitoring-cron-job --location $REGION
gcloud scheduler jobs run quota-monitoring-app-alert-config --location $REGION

3\. Configure seu dashboard no Looker Studio

Depois de rodar o setup e instalar o app via terraform, você vai configurar o dashboard seguindo os passos abaixo (a ordem importa, como descobri na prática)

Abra o template do Looker Studio

Clique no menu "..." (3 pontinhos) próximo ao canto superior direito e em "Make a copy"

Quando perguntarem sobre a fonte de dados, mantenha a seleção padrão

Agora você deve ver uma cópia do template do dashboard do Looker Studio em outra aba do navegador. O próximo passo é conectá-lo ao dataset criado anteriormente no seu projeto.

Conectando ao seu dataset

Achei essa parte meio instável e a ordem importa, mas se não der certo de primeira, é só tentar de novo.

Vai aparecer um painel embaixo com uma query SQL, e você precisará editá-la, substituindo por seu [project ID].[dataset].[table].

À esquerda há uma lista de projetos e o seu pode não aparecer. Tente buscar; se mesmo assim não preencher automaticamente com o seu projeto, clique na aba "Recent Projects" e selecione seu projeto -> dataset -> table.

Volte para a aba de teste da query e confirme que o seu project ID continua na query (e não voltou para o padrão do template).

Exemplo: confira se o seu PROJECT ID aparece nos dois lugares

Clique no botão "Reconnect" no canto superior direito desse painel. Quando aparecer a confirmação, confirme a alteração da fonte de dados e clique em "Apply"

Parabéns!

Os dados devem aparecer no dashboard. Se não aparecerem, repita os passos acima — a parte é meio "chatinha" e algumas tentativas costumam resolver.

Basta clicar em "Done" para fechar o painel e, se quiser, em "View" para visualizar seu dashboard.

Configurando monitoramento e alertas

A documentação do Google descreve customizações e configurações adicionais opcionais que você pode fazer para os alertas.

Agora você consegue se manter informado e identificar possíveis problemas de cota antes que eles virem indisponibilidades.