"SKYLOGIQ" The moon can't shine on its own.
pôle phare

Migration vers Rust

Les systèmes dont le langage d'origine ne vous inspire plus confiance, migrés vers Rust, sans cesser de fonctionner.

l'impératif

L'impératif

En février 2024, l'Office of the National Cyber Director de la Maison-Blanche a appelé l'industrie technologique à adopter des langages à mémoire sûre, dans le prolongement des recommandations de la CISA, de la NSA et d'agences alliées. Les cadres d'achat public et ceux des infrastructures critiques commencent à exiger des feuilles de route de sûreté mémoire. La direction est fixée. La question, pour toute organisation qui exploite des systèmes importants en PHP, C++, Java, Node ou Python, est de savoir si la migration sera planifiée selon son propre calendrier ou imposée selon celui d'un autre.

zéro interruption

Comment nous migrons sans interruption de service

gatewayun seul aiguillage, réversible en quelques secondes
legacy::servicePHP · Node · Java · C++ · Python
rust::servicetrafic dupliqué
parity::verifyancien == nouveau sur le trafic de production
cut_over()puis décommissionnement
  1. Cartographie du système.

    Chaque service, dépendance, flux de données et consommateur, documenté. La plupart des organisations découvrent des systèmes qu'elles avaient oubliés.

  2. Séquencement.

    Les services sont classés par risque, valeur et couplage. La première migration est choisie pour prouver la méthode, pas pour jouer les héros.

  3. Modèle strangler.

    De nouveaux services Rust sont placés à côté des anciens, reçoivent un trafic dupliqué et produisent des résultats comparés automatiquement.

  4. Vérification de parité.

    La migration n'avance que lorsque l'ancien et le nouveau concordent sur le trafic réel de production, aussi longtemps que nécessaire.

  5. Bascule, un service à la fois.

    Le trafic passe sur Rust derrière un aiguillage réversible en quelques secondes.

  6. Décommissionnement et passation.

    L'ancien service est retiré, la documentation est complète et votre équipe a été formée sur le nouveau.

source → cible

Ce qui se migre bien

  • Les monolithes PHP (Laravel, Symfony, code historique) vers des services Rust derrière une passerelle d'API
  • Les services Node.js qui ont des problèmes de débit ou de mémoire
  • Les services Java et C# dont les coûts de licence, de mémoire ou de latence sont devenus structurels
  • Les composants C et C++ ayant un historique d'incidents de sûreté mémoire
  • Les pipelines de données et d'inférence Python où Python lui-même est le goulot d'étranglement
franchise

Ce que nous disons franchement à nos clients

Tout ne doit pas migrer.

Un outil de reporting utilisé par quatre personnes à la direction financière reste en PHP. Un chemin de paiement qui traite votre chiffre d'affaires, non. La cartographie du système que nous produisons en deuxième semaine est le lieu de cette discussion, et c'est le document le plus précieux de la mission.

Les systèmes qui font tourner votre entreprise doivent être construits par des gens qui ont déjà fait tourner des systèmes comparables.

The moon can't shine on its own.