O desvio chega sempre
Por muita disciplina que haja, a realidade afasta-se do código: uma mudança de urgência feita à mão, um ajuste automático do fornecedor, uma atualização que modificou uma configuração. A essa distância chama-se desvio.
Não é um fracasso que exista. É um fracasso não o saber. O desvio não detetado é o que provoca que uma mudança inocente no código «desfaça» um arranjo de urgência que ninguém transpôs, ou que um ambiente reconstruído a partir do código não se comporte como o original.
Verificar com calendário
A deteção faz-se de forma periódica e automática:
- Para a infraestrutura: calcula-se o plano face ao ambiente sem o aplicar. Se o plano não estiver vazio, há desvio.
- Para os servidores: verifica-se cada um face à sua linha de base, como vimos no artigo anterior.
Quanto mais frequente for a verificação, mais pequenas são as diferenças e mais fácil é saber de onde saíram.
Cada diferença, uma decisão
Detetar não basta: cada diferença exige escolher entre dois caminhos.
- A realidade tinha razão. A mudança à mão era necessária (por exemplo, um ajuste de urgência). Leva-se ao código, revê-se e aplica-se formalmente.
- O código tem razão. A mudança à mão não devia existir. Volta-se a aplicar o código para devolver a realidade ao declarado.
O que não serve é a terceira opção, a mais habitual: deixá-la estar. Cada desvio ignorado torna o seguinte mais difícil de entender.
Reduzir a fonte
A melhor forma de ter pouco desvio é deixar pouca margem para o criar: permissões de escrita na consola apenas para emergências, com registo de quem as usa, e a regra de que toda a mudança de urgência se transpõe para o código nesse mesmo dia.
Com a realidade e o código alinhados, pode enfrentar-se o que mais medo dá: mudar coisas importantes em produção.
Como o aplicamos: Automação e IaC.