6 pontos por GN⁺ 2025-03-12 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Gerenciamento de mais de 165.000 recursos em nuvem em 625 workspaces do Terraform e 38 contas AWS
    • Dos 170 engenheiros, 40 são especialistas em infraestrutura
    • São executados 225 releases de infraestrutura (terraform apply) e 723 plans (terraform plan) por dia
  • Para isso, foi adotado o Terraform Cloud para automatizar o processo de release de infraestrutura, reduzindo o trabalho manual e os erros dos desenvolvedores

Problemas antes da adoção do Terraform Cloud

  • Necessidade de alto nível de acesso à AWS: a equipe de infraestrutura precisava ter privilégios elevados na AWS
  • Trabalho demorado: era necessário executar terraform apply em cada diretório e repetir revisões e aprovações, e uma única mudança podia afetar mais de 120 workspaces
  • Ocorrência de drift de infraestrutura: mudanças inesperadas se acumulavam, exigindo revisão e ações adicionais no momento da aplicação

Adoção do Terraform Cloud e efeitos

  • Eliminação do drift → ao eliminar o drift de infraestrutura, reduziram-se o risco e a carga sobre os desenvolvedores
  • Economia de tempo para desenvolvedorescerca de 8.000 horas por ano economizadas (equivalente à carga de trabalho de 4 desenvolvedores)
  • Rastreabilidade das mudanças → é possível acompanhar alterações por meio de logs de auditoria, facilitando o debugging
  • Suporte a speculative plans → mudanças podem ser testadas automaticamente e os resultados podem ser verificados diretamente no GitHub CI

Como o Terraform Cloud é operado atualmente

  • Self-hosted: o Terraform Cloud for Business foi instalado internamente, e os agentes do TFC são operados em um cluster ECS dentro das contas AWS
  • Configuração do pool de agentes: 120 agentes são divididos entre ambiente de desenvolvimento (40) e ambiente de produção (80) para manter alta concorrência

Elementos monitorados com foco principal

  1. Esgotamento de agentes e limite de concorrência → quando faltam agentes, o responsável de plantão é alertado
  2. Tempo de plan → se o tempo de plan no ambiente de desenvolvimento ultrapassa 4 minutos, a equipe é notificada
  3. Drift de infraestrutura → atualmente não é medido (quase não ocorre)

Otimizações para melhorar a qualidade

  • Desenvolvimento de TFC CLI: permite revisar e aprovar automaticamente mudanças em vários workspaces via CLI
  • Criação de sistema de notificações: automação via alertas no Slack para que nenhum apply do Terraform seja perdido
  • Gerenciamento automático de workspaces: uso do Terraform para gerenciar 625 workspaces, aplicando tags para distinguir as equipes responsáveis
  • Análise de uso do Terraform Cloud: uso da API do TFC para coletar dados de versões de estado e entender consumo de recursos e tendências de crescimento
  • Backup do Terraform State: arquivos de estado são copiados automaticamente para um bucket S3 para possibilitar recuperação em caso de falha
  • Gerenciamento de dependências entre workspaces: criação de uma árvore de dependências de módulos para configurar automaticamente os diretórios que cada workspace deve monitorar
  • Automação de upgrade de providers: uso do Dependabot para atualizar providers mensalmente e reduzir a carga operacional por meio de automação

Melhorias futuras

  • Rollout gradual: transição de releases baseados na branch main para um modelo de deploy em múltiplas etapas (desenvolvimento → staging → produção)
  • Divisão de workspaces grandes: a intenção é detalhar os atuais 625 workspaces para mais de 1500, a fim de reduzir o tempo de plan e apply e diminuir o escopo de impacto das mudanças
  • Aprimoramento das notificações: adição de função de reatribuição aos alertas do Slack e introdução de geração automática do comando tfc review
  • Autoscaling de agentes: há planos de adotar um sistema de autoscaling baseado em EKS para lidar de forma eficiente com cargas de trabalho variáveis
  • Open source de ferramentas internas: há planos de publicar como open source várias ferramentas desenvolvidas internamente para que outras equipes também possam utilizá-las

Ainda não há comentários.

Ainda não há comentários.