Publicado a

Construir uma vez, implementar por digest

Se em produção se implementa algo diferente do que foi testado em aceitação, a aceitação não serviu de nada. Construir uma só vez e mover sempre o mesmo artefacto, identificado pela sua impressão digital, fecha essa porta.

Linha de serviço Engenharia de Plataforma

«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

O testado é o implementadoReconstruir leva a produção algo não testado; implementar por impressão digital leva exatamente o aprovado.PLATAFORMA · IMPLEMENTAÇÃOO testado é o implementadoReconstruir ou usar «última versão»DESENVOLVIMENTOsha256:4f1a…ACEITAÇÃOsha256:4f1a…PRODUÇÃOsha256:9c07…A produção recebeu algo que ninguém testou.Construir uma vez, implementar por impressão digitalDESENVOLVIMENTOsha256:4f1a…ACEITAÇÃOsha256:4f1a…PRODUÇÃOsha256:4f1a…A porta aprovou essa impressão digital; é essa que corre.Reversão = reimplementar a impressão digital anterior, que continua intacta.Impressões digitais de exemploN100F · n100f.com

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:

  1. Constrói-se uma vez, num ambiente controlado, para a arquitetura de destino.
  2. Registra-se a impressão digital do que foi construído.
  3. Cada ambiente recebe esse mesmo artefacto pela sua impressão digital, não por um nome ou uma etiqueta que possa mudar.
  4. 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.

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

Falemos