«Em testes funcionava»
É uma das frases mais repetidas em qualquer incidente. E quase sempre é verdade: o que funcionava em testes não era exatamente o que foi implementado em produção. Voltou a compilar-se, atualizou-se uma dependência pelo meio, a etiqueta «última versão» apontava já para outra coisa.
A impressão digital do artefacto
Quando uma aplicação se empacota (por exemplo, como imagem de contentor), o resultado tem uma impressão digital criptográfica única, um digest: um identificador calculado a partir do seu conteúdo exato. Se mudar um só byte, muda a impressão digital.
Implementar por digest significa:
- Constrói-se uma vez, num ambiente controlado, para a arquitetura de destino.
- Registra-se a impressão digital do que foi construído.
- Cada ambiente recebe esse mesmo artefacto pela sua impressão digital, não por um nome ou uma etiqueta que possa mudar.
- A porta de aprovação para produção aprova uma impressão digital concreta: a que passou a aceitação.
As etiquetas legíveis («versão 2.3») continuam a ser úteis para as pessoas, mas não decidem o que se implementa.
O que se ganha
- O aprovado é o implementado, sem margem para dúvida.
- Voltar atrás é imediato: reimplementa-se a impressão digital anterior, que continua a existir tal e qual.
- A rastreabilidade é completa: de uma impressão digital chega-se ao código, à construção e à aprovação que a levou a produção.
Que o artefacto seja idêntico em todos os ambientes só faz sentido se os ambientes também se parecerem. Esse é o passo seguinte.
Como o aplicamos: Engenharia de Plataforma.