Publicado a

Detetar o desvio

O desvio é a distância entre o que diz o código e o que existe de verdade. Aparece sempre; o que distingue uma infraestrutura saudável é que o deteta cedo e decide o que fazer com cada diferença.

Linha de serviço Automação e IaC

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

Diferenças entre código e realidadeNúmero de diferenças em doze semanas: com verificação diária mantém-se baixo; cada diferença exige uma decisão.IAC · DESVIODiferenças entre código e realidade05101520s1s2s3s4s5s6s7s8s9s10s11s12verificação diáriaverificação a cada duas semanasverificação e correçãoCADA DIFERENÇA, UMA DECISÃOA realidade tinha razãoleva-se ao códigoO código tem razãovolta-se a aplicarDeixá-la estarnão é uma opçãoDados ilustrativos, não correspondem a nenhum caso realN100F · n100f.com

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.

  1. 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.
  2. 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.

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

Falemos