Infraestrutura como código muito além do hype

O que é hype?

A definição de hype segundo o Dicionário Cambridge é algo ou uma situação em que é anunciado e discutido em jornais, televisão e mídias digitais, algo que ganha publicidade ou promoção extravagante e intensa para atrair o interesse de muitas pessoas.

O termo infraestrutura como código ou infrastructure as code está surfando o topo da onda de assuntos hype, observo isso em muitas palestras e eventos em que plataformas, ferramentas, serviços prometem serem capazes de gerir sua infraestrutura como código, ao ouvir uma afirmação como essa automaticamente vêm algumas perguntas à minha cabeça, quais são essas capacidades mesmo?? O que realmente querem dizer com “ser capaz de gerir sua infraestrutura como código”?

Infraestrutura como código na prática

No dia a dia vejo que as equipes de ainda estão se acostumando com essa nova abordagem, logar no sistema e no console das máquinas ainda é algo que aquece o coração. Quando se fala em gerenciar um ambiente no modelo de infraestrutura como código é muito mais do que simplesmente do ter automação para configurar o sistema operacional, realizar adequação de ambientes ou instalação de pacotes.

Criar e gerenciar recursos de maneira dinâmica é o objetivo principal desse modelo gestão, é a idéia é realmente tratar a infraestrutura da mesma forma que se trata aplicações, tratar sua infraestrutura como gado e não como um pet.

Um novo modelo de gestão de infra requer uma mudança de hábitos, senão não se pode chamar de novo não é verdade ?? :) Para trilhar esse novo caminho deve-se considerar passar pelas seguintes etapas:

  • Controle de mudanças: Regra de ouro, regra número 1, condição sine qua non para todas as seguintes, guardar todos os seus códigos em uma ferramenta de gestão de controle de versionamento como git, se possível integrado a uma ferramenta de controle de processos;

  • Testes: Ao tratar sua infraestrutura como código, quer dizer que deve-se realizar testes do seu código TAMBÉM, utilizando ferramentas como: Chef InSpec, Puppet Rspec, Ansible ou Terraform integrado a uma de Continuous Integration (CI);

  • Repetitividade: Capacidade de realizar várias e várias vezes o mesmo trabalho por meio de APIs em ambientes como: Local, DEV, QA, Homologação e Produção sempre utilizando o mesmo código de configuração na construção dos ambientes;

  • Auditabilidade: Capacidade de uma equipe poder auditar uma configuração antes de ser aplicada em um novo ambiente saber o que mudou, quem mudou e quando foi mudado. Em grandes corporações esse item é bem sensível para times de segurança, governança e compliance;

  • Colaboração: Equipe multidisciplinares trabalhando com um único objetivo, colaborando para a construção de um produto melhor sempre buscando uma maior cobertura de testes e redução de falhas.

  • Tirar férias: Parece algo de outro mundo, não é? Ao utilizar Infraestrutura como código todos codificam a infraestrutura numa ferramenta que pode ser Puppet, Chef ou Ansible, mas, o mais importante é deixar de existir o shellzinho mágico que só o Mandrak da empresa sabe executar. Conforme dito no item anterior a colaboração fluindo ninguém se torna caminho crítico, dessa forma tirar férias deixa de ser um problema para os membros da equipe e seus gestores.

Primeiros passos

Esta lista de é uma lista que eu considero importante, ela é melhor lista que existe? Definitivamente não, ela é uma lista pessoal, outras pessoas podem levar em consideração outros critérios e montar uma lista totalmente diferente desta. Se até hoje na sua empresa essas práticas não estão implementadas não tem problema nenhum, mas se você chegou até esse ponto do post, é sinal que ao menos está buscando se informar, e a partir de agora meu caro(a), você tem um dever de casa para fazer.

Para implementar infraestrutura como código na sua empresa sugiro que leve os pontos apresentados acima em consideração como um norte de orientação, não precisa implementar tudo e todos itens ao mesmo tempo, já adianto você não vai ter energia suficiente para gastar em tantas frentes de batalha e vai dar tudo errado no final. Escolha um item divida-o em quatro ou cinco “degraus de implementação” e vai com ele até o final. Quebre algumas barreiras, entre em algumas brigas políticas (internas tá!? 😉), convença meia dúzia de incrédulos e ao final apresente os resultados para seus colegas, coordenadores e gerentes. Em seguida, parta para o segundo item, depois o terceiro, quarto e assim para todos os novos pontos da sua lista.

Conclusão

Ao final da primeira etapa, você terá concluído o seu primeiro passo em direção a um novo modelo de gestão de infraestrutura, terá passado por algumas dificuldades que jamais poderia ter pensado anteriormente e vai estar bem claro que o hype de infraestrutura como código está muito além dos lindos slides feitos com letras pretas e fundo branco super bem pensados para funcionar em uma apresentação.


Eu adoraria ouvir suas outras histórias e situações semelhantes ao que acabei de escrever neste post, você pode me encontrar em @infraascode_br ou linkedin.com/in/leonardoml/ .

Te convido a ver os outros posts do blog Infra-as-Code garanto que tem coisas legais lá!!


--- --- IMPORTANTE --- ---
As opiniões aqui expressas são pessoais e de responsabilidade única e exclusiva do autor, elas não refletem necessariamente a posição das empresas que eu trabalho(ei) e/ou presto(ei) serviço.