Rápido hoje, caro amanhã
Abrir a consola do fornecedor, criar uma máquina, abrir uma porta e ajustar um tamanho leva cinco minutos. Por isso quase todas as infraestruturas começam assim. O problema não aparece nesse dia, mas meses depois, quando é preciso responder a perguntas simples:
- Porque está esta porta aberta?
- Quem mudou o tamanho desta base de dados?
- Porque é que a aceitação não se comporta como a produção?
A consola registra que algo mudou, na melhor das hipóteses. Não registra porquê, não permite revê-lo antes e não ajuda a repeti-lo noutro lugar.
Como divergem os ambientes
O efeito mais danoso dos cliques é silencioso: o desvio entre ambientes. Alguém amplia um disco em produção por uma urgência e não o faz em aceitação. Outra pessoa abre uma porta em desenvolvimento para testar algo e deixa-a. Um terceiro atualiza uma versão só onde dela precisava.
Cada mudança, isolada, é razoável. Juntas, produzem ambientes que já não se parecem, e uma aceitação que deixa de servir para prever a produção (como vimos na série de Plataforma).
Também não se trata de proibir a consola
A consola continua a ser útil para olhar: explorar, diagnosticar, entender o que está a acontecer. A mudança de hábito é outra: a consola usa-se para ler; as mudanças fazem-se em código. E se uma urgência obrigar a mudar algo à mão, a mudança leva-se ao código nesse mesmo dia, para que a realidade e a sua descrição não se separem.
Para que essa regra seja fácil de cumprir, o código tem de descrever o que se quer, não a lista de passos para o conseguir. Essa é a diferença entre declarar e ordenar.
Como o aplicamos: Automação e IaC.