Migração-Choque: maior banco abandonou Java em favor de C++ — resultados do ano

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Grande banco migrou de Java para C++: resultados após um ano

No início de 2021, um dos bancos russos sistemicamente importantes (fontes citam o "Alfa-Bank") tomou uma decisão radical: substituir o núcleo de um sistema transacional de alta carga, escrito em Java, por código nativo em C++. Um ano após a conclusão da migração, a diretoria compartilhou os primeiros resultados. Os números impressionam.

De acordo com um relatório interno, a performance dos serviços críticos aumentou de 40 a 60%. O tempo médio de processamento de uma transação (P99) caiu de 12 ms para 4,5 ms. O principal motivo apontado é a eliminação da máquina virtual Java (JVM) e do garbage collector, que em picos de carga causava "lags" de até 200 ms. "Com C++, obtivemos gerenciamento determinístico de memória — isso permitiu eliminar 90% dos problemas de latência nos horários de pico", cita o serviço de imprensa, em declaração do diretor técnico do departamento de desenvolvimento.

No entanto, a transição não foi fácil. Dos 120 desenvolvedores da equipe, 35 pediram demissão por não quererem se requalificar. O banco teve que contratar 50 engenheiros C++ do mercado de fintech e game dev, e o salário médio aumentou 25%. A migração levou 14 meses e cerca de 2,3 bilhões de rublos (considerando reescrita de código, testes e depuração).

Efeito econômico: os custos operacionais com infraestrutura caíram 30% — para atender ao mesmo volume de transações, foram necessários 40% menos servidores. O retorno sobre o investimento do projeto é esperado em 2,5 anos. "Não vamos reescrever tudo. O front-end e os aplicativos móveis permanecem em Java/Kotlin. Mas o núcleo — apenas código nativo", acrescentou um representante do banco na conferência HighLoad++ 2022.

Especialistas estão divididos. Alguns acreditam que, para negociação de alta frequência e cálculos, o C++ se justifica. Outros lembram dos riscos: vazamentos de memória e complexidade na manutenção de código legado. "Java é um compromisso entre velocidade de desenvolvimento e performance. O banco escolheu velocidade de execução em detrimento da velocidade de desenvolvimento. Vamos ver o que acontece daqui a 5 anos", comenta o analista líder do TAdviser.

No entanto, o caso já está sendo estudado por outros players do mercado. Segundo rumores, o Sberbank e o VTB também lançaram projetos piloto para migrar microsserviços específicos para C++ e Rust.

Recommended Libraries