De migrações manuais a tooling self-serve
Toda migração exigia um engenheiro: permissões elevadas, acesso direto a dados sensíveis de pacientes, passos manuais cuidadosos e um cliente prendendo a respiração durante a janela de freeze. Funcionava, mas não escalava, e cada execução carregava os mesmos riscos.
A restrição que moldou o design
O inegociável era privacidade. Quem executasse uma migração não deveria precisar de permissões elevadas nem de acesso direto a dados de pacientes. Essa restrição nos afastou de “runbooks melhores” e nos levou a tooling de verdade: um fluxo guiado que um colega não técnico executa sozinho.
O que construímos
Partindo de um approach inicial desenvolvido com um colega, desenhei e liderei a automação em torno de três propriedades:
- Tracking de status. Toda migração mostra onde está e o que aconteceu, sem adivinhação.
- Tratamento de falhas. Execuções parciais falham de forma visível e segura, nunca silenciosa.
- Rollback. Se algo dá errado, há caminho de volta. Janelas de freeze só funcionam se a recuperação for trivial.
O resultado
Na época da avaliação, o tooling e o processo haviam suportado 33 migrações com zero incidentes reportados, todas dentro das janelas prometidas. São snapshots históricos, não garantias, mas descrevem a mudança: toil convertido em capacidade.
A lição que levo
O padrão se repete: um incidente vira um check de CI, um procedimento manual vira ferramenta, o desconhecido vira instrumentação. Corrija o problema imediato e construa a salvaguarda para a classe de problema parar de recorrer. Isso é engenharia de confiabilidade na prática.
Métricas acima são snapshots da época da avaliação.