Publicado a

Infraestrutura que se pode reconstruir

Se amanhã desaparecer todo o ambiente, quanto tempo leva a tê-lo igual ao de hoje? A resposta mede melhor do que qualquer outra a maturidade de uma infraestrutura.

Linha de serviço Automação e IaC

Uma pergunta incómoda

Imagine que amanhã alguém apaga por erro um ambiente inteiro: redes, servidores, bases de dados, regras de acesso. Os dados estão a salvo nas suas cópias, mas a infraestrutura que os rodeia já não existe. Quanto tempo leva a voltar a tê-la exatamente como estava?

Em muitas organizações a resposta honesta é «não sabemos», seguida de «dias, e não ficaria igual». Ninguém se lembra de todas as regras de rede, dos tamanhos escolhidos, dos ajustes feitos à mão ao longo dos anos.

Reconstruir um ambiente perdidoÀ mão, dias de passos de memória com lacunas; a partir do código, uns minutos e um resultado idêntico.IAC · RECONSTRUIRSe amanhã desaparecer o ambienteÀ MÃO, DE MEMÓRIARedeRegrasServidoresTamanhos?BaseAcessos?CertificadosAjustes?3 a 5 dias · e o resultado não é igual ao originalA PARTIR DO CÓDIGOClonaro repositórioPlanorevisar mudançasAplicarum comandoUns minutos · e é idêntico, porque sai da mesma descriçãoTEMPO PARA VOLTAR A TER O AMBIENTEÀ mão · ~4 diasA partir do código · ~20 minutosA pergunta mede a maturidade da infraestrutura:quanto tempo levaríamos a tê-la igual à de hoje?Dados ilustrativos, não correspondem a nenhum caso realN100F · n100f.com

A infraestrutura como código

A alternativa é descrever toda a infraestrutura em ficheiros de texto: que redes existem, que servidores, com que tamanho, que regras os protegem. Esses ficheiros guardam-se num repositório, revêem-se como o código de uma aplicação e uma ferramenta encarrega-se de que a realidade coincida com o descrito.

Com isso, reconstruir deixa de ser um feito e passa a ser um comando. E, pelo caminho, ganha-se todo o resto:

  • Histórico: cada mudança tem autor, data e motivo.
  • Revisão: uma mudança na rede revê-se antes de ser aplicada, tal como uma mudança no código.
  • Repetição: desenvolvimento, aceitação e produção saem do mesmo código, com parâmetros diferentes.
  • Documentação que não mente: o código é a descrição do que existe.

O que percorre esta série

Do problema dos cliques a declarar o estado desejado; do código da infraestrutura (o seu estado, os seus módulos, o plano antes de aplicar e o seu custo) a manter cada servidor como deve ser e detetar quando se desvia; de como mudar sem medo (reverter, regras como código, incorporar o herdado) a automatizar a operação diária. E, no fim, o que convém não automatizar.

Comecemos pela origem do problema: os cliques.


Como o aplicamos: Automação e IaC.

Se o seu custo cloud cresce sem que ninguém saiba porquê, ou a sua arquitetura depende de quem a montou, falemos.

Falemos