O que é detecção de desvio (drift detection)?
Detecção de desvio é a prática de comparar regularmente o estado real da infraestrutura com o seu estado declarado e pretendido para revelar qualquer distanciamento - o desvio de configuração - antes que ele cause problemas.
Você não consegue corrigir um desvio que não consegue ver. A detecção de desvio torna o distanciamento visível ao comparar o que está realmente em execução com o que o código da sua infraestrutura diz que deveria estar em execução, para que você encontre e corrija as diferenças de forma deliberada, em vez de descobri-las durante um incidente.
Como funciona
A detecção de desvio consulta o estado real dos recursos e o compara com o estado desejado descrito em código ou em um state file. Qualquer diferença - uma regra de firewall extra, um tamanho de instância alterado, uma configuração editada manualmente - é reportada como desvio. A comparação transforma o distanciamento invisível em uma lista explícita e revisável.
Quando executá-la
A detecção é mais útil quando executada continuamente ou de forma agendada, e não apenas ocasionalmente. Executá-la regularmente captura o desvio logo após ele surgir, enquanto a mudança é recente e fácil de entender. Muitas equipes também a executam no CI antes de aplicar mudanças, para saber que o estado inicial corresponde às expectativas.
Lendo os resultados
Nem todo desvio é igual. Alguns indicam uma mudança não autorizada e perigosa; outros refletem correções de emergência legítimas que simplesmente precisam ser codificadas; e outros são ruído inofensivo de campos que a própria plataforma gerencia. Triar o desvio detectado significa decidir, item por item, se você reverte a realidade para o código ou atualiza o código para corresponder à realidade.
Remediação
Uma vez encontrado o desvio, você reconverge. Reaplicar o código de infraestrutura sobrescreve o estado desviado e restaura a configuração declarada. Como alternativa, se a mudança manual estava correta, você a incorpora ao código para que aplicações futuras a preservem. De qualquer forma, código e realidade voltam a entrar em acordo.
Detecção versus prevenção
A detecção de desvio é uma rede de segurança, não uma cura. A defesa mais forte contra o desvio é preveni-lo - por meio de infraestrutura imutável e fluxos disciplinados de infraestrutura como código. A detecção complementa a prevenção ao capturar o desvio que escapa por quaisquer brechas que restem, mantendo o sistema como um todo honesto.
Principais conclusões
- A detecção de desvio compara a infraestrutura real com o seu estado declarado.
- Executá-la continuamente captura o distanciamento cedo, enquanto ele é fácil de corrigir.
- Remedie reaplicando o código ou codificando a mudança legítima.