Migration choc : la plus grande banque a abandonné Java pour C++ — le bilan de l'année

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Une grande banque est passée de Java à C++ : résultats après un an

Au début de l'année 2021, l'une des banques russes systémiques (les sources citent « Alfa-Bank ») a pris une décision radicale : remplacer le cœur d'un système transactionnel à forte charge, écrit en Java, par du code natif C++. Un an après l'achèvement de la migration, la direction a partagé les premiers résultats. Les chiffres sont impressionnants.

Selon un rapport interne, les performances des services critiques ont augmenté de 40 à 60 %. Le temps de traitement moyen d'une transaction (P99) est passé de 12 ms à 4,5 ms. La raison principale invoquée est l'abandon de la machine virtuelle Java (JVM) et du ramasse-miettes, qui provoquait des « latences » allant jusqu'à 200 ms en période de pointe. « Avec C++, nous avons obtenu une gestion déterministe de la mémoire – cela a permis de supprimer 90 % des problèmes de latence aux heures de pointe », cite le service de presse, rapportant les propos du directeur technique du département développement.

Cependant, la transition n'a pas été facile. Sur les 120 développeurs de l'équipe, 35 ont démissionné, refusant de se reconvertir. La banque a dû embaucher 50 ingénieurs C++ sur le marché de la fintech et du gamedev, et le salaire moyen a augmenté de 25 %. La migration a pris 14 mois et environ 2,3 milliards de roubles (en tenant compte de la réécriture du code, des tests et du débogage).

Effet économique : les coûts opérationnels de l'infrastructure ont diminué de 30 % – pour traiter le même volume de transactions, 40 % de serveurs en moins ont été nécessaires. Le retour sur investissement du projet est attendu dans 2,5 ans. « Nous n'allons pas tout réécrire. Le front-end et les applications mobiles restent en Java/Kotlin. Mais le cœur – uniquement du code natif », a ajouté un représentant de la banque lors de la conférence HighLoad++ 2022.

Les experts sont divisés. Certains estiment que pour le trading à haute fréquence et les calculs, C++ est justifié. D'autres rappellent les risques : fuites de mémoire et complexité de la maintenance du code legacy. « Java est un compromis entre la vitesse de développement et la performance. La banque a choisi la vitesse d'exécution au détriment de la vitesse de développement. Nous verrons ce qu'il en sera dans 5 ans », commente un analyste principal de TAdviser.

Néanmoins, ce cas est déjà étudié par d'autres acteurs du marché. Selon des rumeurs, Sberbank et VTB auraient également lancé des projets pilotes pour migrer certains microservices vers C++ et Rust.

Recommended Libraries