BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Benefícios e desafios de incluir a infraestrutura como código no pipeline de CD: Q&A com a Honeycomb

Benefícios e desafios de incluir a infraestrutura como código no pipeline de CD: Q&A com a Honeycomb

O Honeycomb é uma ferramenta para introspecção e interrogação de sistemas de produção. A equipe é pioneira na infraestrutura como código (infrastructure-as-code, IaC) e atualmente usa o HashiCorp Terraform para o gerenciamento da configuração como código. Recentemente, fizeram um esforço para trazer o rigor do processo de release binária para as versões de configuração da infraestrutura.

O InfoQ aproveitou a oportunidade para perguntar à equipe sobre a mudança para a implantação centralizada, como conseguiram reduzir o risco de confiabilidade e o quão doloroso foi a mudança.

InfoQ: No artigo original, foi comentado que ao implantar continuamente a infraestrutura como código, foram colocadas em risco as operações. Valeu a pena fazer das tripas o coração?

Equipe do Honeycomb: Sim, isso nos permitiu avançar muito mais rapidamente, passando de duas para quatro implantações Terraform por semana em estado estacionário para mais duas implantações por dia, e estamos aproveitando algumas das novas features da AWS e da Terraform.

O gerente de engenharia de infraestrutura se preocupa com o fato de estarmos do outro lado do espectro agora, pois ficamos expostos a mais riscos na rede, agora que estamos nos movendo com mais velocidade, mas certamente o risco foi ajustado a uma taxa menor em relação ao número de alterações que estávamos fazendo. A principal preocupação dele é que as pessoas façam grandes mudanças no Terraform, e elas estão recebendo menos controle do que deveriam, mas também consideramos que talvez essas mudanças já estivessem sendo feitas manualmente pelos clientes do Terraform sem passar por uma revisão, antes de entrar em produção, ou seja, mudanças a seco.

InfoQ: Isso ajudou a obter economia de custos na infraestrutura?

Honeycomb: Como em qualquer startup de análise SaaS, o custo da conta na nuvem é uma fração significativa das despesas gerais. Como parte dessa mudança, atualizar nossa instância do Terraform resultou no uso de um recurso da AWS lançado em novembro de 2018, que permite combinar os grupos de dimensionamento automático que já estávamos utilizando com as solicitações Spot para pico de carga e substituir e/ou reagendar automaticamente as instâncias.

InfoQ: Vejo que usou a ferramenta CI de terraform da HashiCorp. Recomendaria essa abordagem a outras pessoas?

Honeycomb: Sim, especialmente considerando que o Terraform Cloud é muito mais barato que as ferramentas anteriores. Nossas ferramentas de IC existentes não gerenciavam o estado Terraform e também não queríamos dar acesso a mutações na produção. Ter algo de imediato que entendesse o Terraform e uma assinatura que incluísse o suporte da HashiCorp além da priorização dos bugs, foi uma vitória definitiva. Anteriormente, diria que era um desafio obter um CI/CD adequado para o Terraform sem o preço do Terraform Enterprise. Recebemos a cotação em dezenas de milhares de dólares, o que nos pareceu um pouco exagerado, pois temos literalmente quatro pessoas na empresa que mexem nele.

InfoQ: Quais os próximos passos?

Honeycomb: Muito trabalho é necessário para dar suporte ao lançamento de recursos, operações contínuas e expansão do Honeycomb durante o próximo ano. Sabemos que centralizar parte do gerenciamento do Chef está na lista de desejos para 2020, porque enquanto usamos o Terraform para manipular a infraestrutura da AWS como código, usamos o Chef para inicializar nós individuais, e esse processo é mais conturbado do que imaginamos.

InfoQ: Planejam mitigar o perfil de maior risco mencionado pelo gerente de engenheiros de infraestrutura ou isso foi aceito?

Honeycomb: Gostaríamos de escrever mais scripts do Sentinel [de política como código] para aplicar segurança contra riscos de disponibilidade e de custo. Porém, isto não está entre as cinco principais coisas a se fazer, porque a infraestrutura sempre deve atender às necessidades da empresa, em vez de correr e deixar o resto para trás.

InfoQ: Quais foram os principais desafios ao incluir a infraestrutura como código em um pipeline CI/CD e o que as outras pessoas podem aprender com a experiência?

Honeycomb: Honestamente, era bem simples e indolor. O backend remote {} é facilmente trocado pelo back-end s3, mas obviamente tivemos que tratar as pessoas com as contas do Terraform Cloud como parte do fluxo de trabalho de integração, em vez do fluxo de trabalho local das máquinas.

A pior dor foi, provavelmente, a atualização não obrigatória, mas ainda útil, do Terraform. Anteriormente, estávamos presos na versão 0.10. A mudança para o Terraform 0.12 introduziu mudanças na linguagem, mas trouxe também algumas diferenças de código, graças ao utilitário de migração.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT