Infraestrutura, nuvem e DevOps · Avançado

Infraestrutura como código

Em uma linha: Se você não consegue reproduzir o ambiente a partir de um arquivo no controle de versões, você não tem infraestrutura, mas um histórico de cliques.

O princípio

Recursos de cloud são definidos em arquivos, revisados em revisão por pares e aplicados por um processo automatizado. Uma mudança manual no console da cloud é um desvio para documentar e devolver ao código.

O que dá na prática

Recuperação de desastres, ambientes idênticos, um histórico de quem mudou o quê e por quê, e a capacidade de ver exatamente o que vai mudar antes que aconteça.

Também: precificação. Dá para ver na pull request que alguém está pedindo para levantar um recurso caro, antes de a fatura revelar isso.

Armadilhas

Um arquivo de estado salvo localmente ou sem bloqueio — duas pessoas executando em paralelo podem destruir um ambiente. Mantenha-o remoto e bloqueado.

Módulos gigantes onde qualquer mudança toca tudo. Divida por ciclo de vida: rede e bancos de dados raramente mudam, aplicações com frequência.

Indo mais fundo

Execute um plano de mudanças em cada pull request e exiba as diferenças na resposta. A maioria dos incidentes de infraestrutura começa com uma mudança cujo escopo ninguém entendeu, e mostrar as diferenças na revisão as previne quase completamente.