Modernização de plataforma pública sob produção
Um sistema que atende programa de governo com prazo legal não comporta reescrita de uma só vez. O núcleo de oito anos segue servindo enquanto a geração nova assume rota por rota, com uma fatia do tráfego real atravessando o caminho novo antes de qualquer virada.
Stack
Núcleo de 8 anos e mais de 12 mil commits migrando sem janela de indisponibilidade.
O desafio
O núcleo da operação carrega oito anos de histórico e mais de doze mil commits sobre uma stack de geração anterior, e é ele que sustenta os programas públicos com prazo legal para inscrição e contratação. Substituir esse núcleo de uma vez não é uma opção que o negócio possa aceitar: qualquer janela de indisponibilidade cai em cima de jovens tentando se inscrever, e qualquer divergência de comportamento entre o sistema antigo e o novo aparece como candidato barrado ou vaga exibida errada. A maior dificuldade está em manter as duas gerações em operação ao mesmo tempo, provando rota a rota que a nova se comporta como a antiga antes de aposentar qualquer parte, e preservando um caminho de volta previsível a cada etapa.
A abordagem
- 01
Padrão strangler: a geração nova assume uma rota por vez enquanto o legado continua servindo todo o resto.
- 02
Proxy no servidor legado encaminhando as rotas de integração para o servidor novo sob canário, com percentual de rollout controlado no lado receptor.
- 03
Amostragem do canário por requisição, o que faz a exposição crescer de forma gradual e torna o rollback independente de qual cliente foi sorteado.
- 04
Rastreamento distribuído na geração nova, para comparar o comportamento das duas rotas de forma mensurável.
- 05
Teste de carga sobre o fluxo real de inscrição antes dos picos de abertura de edital, com perfil de tráfego equivalente ao do período de maior demanda.
O resultado
- Migração em curso sem janela de indisponibilidade
- Exposição gradual real, com a unidade de amostragem do canário corrigida de cliente para requisição
Frente aplicada
Desenvolvimento Full-Stack
O sistema completo, escrito para outra equipe conseguir manter.
Ver a frente completa →
Traga o problema para um engenheiro.
A primeira conversa é com um engenheiro e não tem custo. Se o projeto não for adequado à OmniTech, dizemos isso logo no início e, quando possível, indicamos quem atende.