// 05 Modernização de legados

Modernização de sistemas legados Java sem parar a operação

Modernização de sistemas legados Java: migração para Java 21 e Spring Boot 3, monolito para microsserviços, sem big bang e sem parar a operação.

Todo mundo tem medo de mexer naquele sistema. Ele roda em Java 8, usa um Spring de outra década, ninguém sabe ao certo o que acontece se uma classe for alterada, e mesmo assim é ele que fatura. A modernização de sistemas legados não precisa ser um projeto de dois anos com data de virada assustadora. Pode ser um trabalho incremental, medido e reversível, que entrega valor desde as primeiras semanas.

A Arko Labs moderniza sistemas Java com squads de agentes de IA que trabalham 24/7 sobre o seu código, supervisionados por um arquiteto sênior humano que aprova cada plano.

O desafio

Empresas brasileiras com sistemas críticos em Java costumam enfrentar o mesmo conjunto de problemas:

  • Versões sem suporte. Java 8 ou 11, bibliotecas desatualizadas e vulnerabilidades conhecidas que aparecem em auditorias de segurança.
  • Spring legado. Configuração em XML, servidores de aplicação pesados e dependências que travam a atualização de todo o resto.
  • Monolito acoplado. Uma mudança em faturamento quebra o cadastro. O deploy é semanal, mensal ou pior, e exige janela de manutenção.
  • Pouca ou nenhuma cobertura de testes. Ninguém refatora com confiança, então o código só cresce em complexidade.
  • Conhecimento concentrado. As regras de negócio vivem na cabeça de poucas pessoas, ou de ninguém.
  • Tentativas anteriores de reescrita. O projeto big bang atrasou, estourou o orçamento e foi abandonado, deixando dois sistemas para manter.

Enquanto isso, o negócio pede integrações com PIX, Open Finance Brasil, novos canais e adequação à LGPD, e cada pedido demora mais que o anterior.

Como o squad da Arko Labs atua

O squad reúne agentes com papéis definidos (arquiteto, desenvolvedores, QA, segurança, revisor e DevOps). O arquiteto sênior humano aprova os planos e responde pela entrega.

  1. Mapeamento do legado. Os agentes leem o código, mapeiam módulos, dependências, pontos de integração e regras de negócio implícitas. O resultado é um mapa navegável do sistema, não um documento genérico.
  2. Testes de caracterização. Antes de mudar qualquer linha, o squad escreve testes que registram o comportamento atual. Eles protegem contra regressões em código que nunca teve testes.
  3. Plano incremental. O arquiteto aprova uma sequência de etapas pequenas, cada uma entregável e reversível. Sem big bang.
  4. Atualização de plataforma. Migração de Java 8 ou 11 para Java 21, passando por versões intermediárias quando necessário. Atualização de bibliotecas e eliminação de APIs removidas.
  5. Spring legado para Spring Boot 3. Troca de configuração XML por configuração em código, migração de javax para jakarta, adoção de padrões atuais de segurança e observabilidade.
  6. Monolito para microsserviços com strangler pattern. Os domínios mais instáveis ou mais valiosos são extraídos primeiro. O tráfego migra aos poucos, com o monolito funcionando em paralelo até cada parte ser desativada.
  7. Pipeline e infraestrutura. CI/CD automatizado, containers, Kubernetes e infraestrutura em Terraform, para que o deploy deixe de depender de janela de manutenção.

Microsserviços não são obrigatórios. Se um monolito modular bem organizado resolve o problema do cliente, essa é a recomendação.

O que entregamos

  • Diagnóstico do legado com mapa de dependências, riscos e estimativa por etapa
  • Suíte de testes de caracterização cobrindo os fluxos críticos
  • Aplicação rodando em Java 21 com dependências atualizadas e vulnerabilidades tratadas
  • Migração para Spring Boot 3 com configuração moderna
  • Domínios extraídos em serviços independentes, quando a arquitetura alvo pedir
  • Camada de roteamento para o strangler pattern, com migração gradual de tráfego
  • Integração entre serviços com APIs REST ou eventos via Kafka
  • Pipeline de CI/CD com testes automatizados e deploy sem janela de manutenção
  • Documentação das regras de negócio recuperadas do código
  • Registros de decisão de arquitetura para cada escolha relevante

Segurança, compliance e controle

Os agentes trabalham com acesso mínimo, usando credenciais do cliente que podem ser revogadas a qualquer momento. Cada plano, decisão e commit fica em trilha de auditoria. O trabalho respeita a LGPD e as políticas internas da sua empresa, o que inclui o tratamento de dados pessoais encontrados em bases e logs do legado.

Nenhuma mudança chega à branch principal sem revisão humana. Toda alteração passa pelos quatro gates do Sentinel Method, framework open source da Arko Labs: testes, segurança, performance e manutenibilidade. Em modernização, isso garante que cada etapa preserve o comportamento existente, não introduza vulnerabilidades e não piore o tempo de resposta.

Por que a Arko Labs

O arquiteto fundador da Arko Labs tem mais de 19 anos em sistemas financeiros, boa parte deles em Java, de versões antigas a Java 21. No histórico estão uma plataforma global de remessas com mais de 10 milhões de transações por dia em mais de 200 países e 99,99% de uptime, uma plataforma de recompensas fintech com mais de 250 mil transações por hora e um e-commerce com mais de 1 milhão de usuários simultâneos na Black Friday. A experiência inclui liderança de squads de 8 a mais de 25 engenheiros.

A Arko Labs é uma empresa brasileira de Ribeirão Preto (SP), fundada em 2019. Trabalhamos no mesmo fuso da sua equipe e com contrato em reais. Você moderniza o sistema que sustenta o negócio sem apostar tudo numa reescrita e sem parar a operação.

// perguntas frequentes

Perguntas sobre modernização de sistemas legados

Vale a pena migrar de Java 8 para Java 21?

Na maioria dos casos, sim. Versões antigas acumulam dependências sem suporte e vulnerabilidades conhecidas, e o Java 21 traz melhorias de desempenho e recursos como virtual threads. A migração pode ser feita em etapas, passando por versões intermediárias quando necessário.

Como migrar um monolito para microsserviços sem reescrever tudo?

Com o strangler pattern: novas funcionalidades e partes extraídas do monolito passam a rodar em serviços separados, enquanto o restante continua funcionando. O tráfego é redirecionado aos poucos, e o monolito encolhe até poder ser desligado. Não há uma data de virada única.

Preciso parar o sistema para modernizar?

Não. A modernização de sistemas legados é feita de forma incremental, com cada etapa entrando em produção separadamente e com possibilidade de rollback. A operação continua enquanto o código evolui.

E se o sistema legado não tiver testes?

É o cenário mais comum. Antes de refatorar, escrevemos testes de caracterização, que registram o comportamento atual do sistema, inclusive os comportamentos estranhos. Eles funcionam como rede de segurança: se uma mudança altera o resultado, o teste falha.

Quanto custa modernizar um sistema legado Java?

Depende do tamanho do código, da cobertura de testes existente e do objetivo final. Por isso o trabalho começa com um diagnóstico que mapeia dependências, riscos e esforço. Com esse mapa, o plano é dividido em etapas com escopo e custo previsíveis, e o contrato é em reais.

Vamos colocar um squad nesse desafio?

Um arquiteto da Arko Labs avalia seu caso e responde em até um dia útil.

Agendar um diagnóstico

// outros serviços

// leituras relacionadas