Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Iris 3: rotulagem automática para controle de custos

By Joshua FoxFeb 25, 20255 min read

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

Grandes melhorias no seu rotulador de recursos favorito do Google Cloud — agora com suporte a PubSub e CloudSQL.

Em 2018, a DoiT International lançou o Iris, um projeto open-source para rotulagem automatizada de recursos no Google Cloud. Agora é com muita satisfação que anuncio o Iris 3, com novos recursos e uma implementação moderna.

Como o Iris ajuda você

O Iris atribui labels automaticamente aos recursos do Google Cloud para facilitar a geração de relatórios de billing mais detalhados.

Cada recurso do Google Cloud na organização GCP recebe labels gerados automaticamente que refletem campos do recurso. Por exemplo, uma instância do Google Compute Engine recebe labels como [iris_name:nginx] e [iris_region:us-central1]. (O prefixo é configurável.)

Pode parecer surpreendente, mas, sem esses labels, essa informação simplesmente não fica disponível nos dados de billing.

Com esses labels, você consegue criar relatórios na sua ferramenta de análise de billing favorita.

Como usar o Iris

Vamos ver como o Iris pode economizar seu tempo na hora de criar relatórios sobre suas faturas de cloud em dois sistemas de relatórios:

  1. A Cloud Management Platform da DoiT International
  2. O Billing Console do Google Cloud

DoiT Cloud Management Platform

Na interface do Cloud Reports, dentro da Cloud Management Platform, monte um relatório com o período desejado e outros campos e clique no chip Labels para selecionar o nome (ou nomes) do label, por exemplo, iris_instance_type. Clique no novo chip de label (iris_instance_type) para filtrar por valores específicos. Nessa etapa, você também pode excluir recursos sem label, como aqueles em projetos que o Iris 3 foi configurado para ignorar.

Em seguida, arraste o chip de label para o painel à esquerda para definir o agrupamento, e pronto.

Relatório por tipo de instância na Cloud Management Platform

Relatórios de billing do Google Cloud Platform

Eu adoraria ter você com a gente na DoiT, mas, como nem todo mundo já está, dá pra fazer isso pelos próprios relatórios de billing nativos do GCP.

Em uma view do Billing Console, monte um relatório com o período desejado e outros campos, depois clique em Labels no painel inferior direito e informe o nome da chave (ou chaves) de label, por exemplo, iris_instance_type. Nessa etapa, você pode selecionar valores específicos para filtrar. (Recursos sem label são excluídos automaticamente.) Depois, vá até Grouping e informe o label novamente.

Relatório por tipo de instância no Billing Console

Produtos do Google Cloud com suporte

No momento, há suporte para os seguintes tipos de recursos:

  • Instâncias do Compute Engine (incluindo preemptíveis e as criadas por Managed Instance Groups), Disks e Snapshots. (Os labels são name, region, zone e instance type)
  • Buckets do Cloud Storage (name)
  • Instâncias do CloudSQL (name e region)
  • Datasets e Tables do BigQuery (name e location)
  • Instâncias do BigTable (name, region e zone)
  • Topics e Subscriptions do PubSub (name)

Você pode adicionar facilmente outros tipos de labels e de recursos. Veja as instruções aqui.

Quando ele é executado?

O Iris faz isso de duas formas: por agendamento e na criação do recurso:

  • Todo tipo de recurso é rotulado por agendamento, a cada 12 horas (configurável). Alguns tipos — instâncias do Cloud SQL e boot disks criados junto com uma instância — são rotulados por agendamento.
  • A maioria dos recursos também é rotulada na hora, no momento da criação: o Iris 3 faz isso ouvindo os logs do Google Cloud Operations.

Novidades do Iris 3

O Iris traz melhorias significativas, tanto em novos recursos quanto na plataforma que está por trás.

Novos recursos

  • Rotulagem para Topics e Subscriptions do PubSub e instâncias do Cloud SQL
  • Opção de copiar automaticamente os labels do projeto para cada recurso dele
  • Opção de escolher quais projetos serão rotulados (caso só alguns precisem disso, o que também reduz custos); ou, como alternativa, rotular recursos em todos os projetos da organização inteira
  • Opção de reduzir custos usando apenas rotulagem agendada, sem rotulagem sob demanda
  • Desenvolvimento e configuração de plugins muito mais simples. (Detalhes aqui.)
  • Testes automatizados para garantir qualidade
  • Correções de bugs, otimizações e melhorias. (Detalhes aqui.)

Nova plataforma

Mas a maior mudança — e o motivo do novo nome e do fork do repositório — foi a migração de Python 2 para a versão Python 3 do Google App Engine Standard Environment. A linguagem Python 2 está em fim de vida e sem suporte desde janeiro de 2020, e a versão Python 2 do GAE está descontinuada há ainda mais tempo.

O Google se comprometeu com o suporte de longo prazo ao GAE Python 2 por causa dos clientes legados, que teriam dificuldade para migrar. Mas desenvolver novos recursos nessa versão antiga é algo entre o desafiador e o impossível, já que as ferramentas de desenvolvimento e deploy, os runtimes e as APIs estão envelhecidos. Além disso, o Google não consegue mais garantir a correção de todas as vulnerabilidades de segurança, o que é um grande sinal de alerta para uma aplicação web.

A migração exigiu algumas APIs novas: entre outras mudanças, o suporte a Task Queues foi removido, e por isso o PubSub foi usado no lugar.

Melhor ainda, foi a oportunidade de uma reescrita completa, com um estilo de código limpo e padronizado, menos duplicação e outras melhorias que vão facilitar a vida de quem desenvolve e contribui com pull requests.

Por que "Iris 3"?

Esta versão está em um repositório separado, com um novo nome.

Isso porque muitos usuários preferem ficar no GAE Python 2 o máximo de tempo possível — apesar de ele estar obsoleto! — devido às diferenças significativas em relação ao GAE Python 3.

O "3", claro, não é um número de versão: é uma homenagem à plataforma GAE Python 3

Experimente o Iris

Baixe o Iris 3 no GitHub e siga as instruções para fazer o deploy, desenvolver ou testar. Estou ansioso pelo seu feedback e pelos relatos de problemas. E o melhor de tudo: dê uma olhada no arquivo TODO.md e mande alguns pull requests!

GCP Auto-Tag vs. Iris 3

O GCP Auto-Tag é outro projeto open-source da DoiT para rotulagem automática de instâncias e disks no momento da criação.

As diferenças:

  • Diferentemente do Iris 3, o GCP Auto-Tag adiciona labels com o e-mail de quem criou o recurso e, no caso dos disks, com o nome da instância à qual o disk está anexado
  • O GCP Auto-Tag rotula boot disks na criação, junto com a instância.
  • Diferentemente do Auto-Tag, o Iris 3 adiciona labels com name, zone, region e instance type.
  • O Iris 3 rotula mais tipos de recursos.
  • O Iris 3 cobre vários projetos em uma organização e copia os labels do projeto para os recursos.
  • O Iris 3 rotula até recursos que já existiam antes de ele ser implantado.

Saiba mais

Leia mais sobre o Iris: