Govtech

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

ExpressMySQLNestJSMongoDBOpenTelemetry

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 →
Engenheiro trabalhando em uma estação de trabalho
Próximo passo

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.