Aller au contenu
XSIS
Parler à un ingénieur

Ingénierie logicielle

Modernisation des systèmes hérités

Moderniser les systèmes dont vous dépendez sans arrêter l’activité

Migration progressive d’applications et de bases de données vieillissantes vers des plateformes maintenues, l’ancien système restant en service jusqu’à ce que le nouveau ait fait ses preuves.

Présentation

Les systèmes vieillissants portent souvent les traitements les plus critiques : grands livres, facturation, extensions de l’ERP et outils de back-office que personne ne veut toucher. Ils sont difficiles à faire évoluer, difficiles à doter en compétences et de plus en plus difficiles à sécuriser. Les remplacer d’un seul coup est l’un des projets les plus risqués qu’une entreprise puisse mener.

Nous modernisons étape par étape. Nous plaçons une interface propre devant l’ancien système, transférons une fonction à la fois vers une plateforme maintenue située derrière cette interface, et n’orientons le travail vers chaque nouvelle partie qu’une fois qu’elle a fait ses preuves. L’ancien et le nouveau fonctionnent côte à côte, leurs résultats étant comparés, jusqu’à ce que chaque ancienne partie puisse être retirée.

Parfois, la bonne réponse consiste à encapsuler l’ancien système plutôt qu’à le réécrire : exposer ses fonctions au moyen d’API modernes et laisser le cœur en place. Nous évaluons chaque partie selon ses mérites et vous indiquons où le changement est rentable et où il ne l’est pas.

Ce que nous livrons

  1. Évaluation du système

    Un inventaire du code, des données, des interfaces, des dépendances et des personnes qui les connaissent, avec les risques classés par ordre de priorité.

  2. Options et feuille de route

    Pour chaque partie, le choix de la conserver, de l’encapsuler, de la migrer vers une nouvelle plateforme, de la réécrire ou de la retirer, avec les raisons et l’ordre des travaux.

  3. Couche d’API

    Des API modernes devant l’ancien système, afin que les nouveaux canaux et les nouvelles intégrations ne dépendent plus de son fonctionnement interne.

  4. Composants modernisés

    Des fonctions reconstruites une à une sur une plateforme maintenue, chacune dotée de tests automatisés.

  5. Migration des données

    Des données mises en correspondance, nettoyées et migrées, avec des rapports de rapprochement qui démontrent que rien n’a été perdu ni modifié.

  6. Tests de caractérisation

    Des tests qui consignent ce que fait réellement l’ancien système, afin de démontrer que le nouveau s’y conforme.

  7. Preuves de fonctionnement en parallèle

    Les sorties de l’ancien et du nouveau système comparées sur des charges réelles, chaque écart étant expliqué avant la bascule.

  8. Plan de décommissionnement

    La manière dont chaque partie remplacée est arrêtée, dont ses données sont archivées et dont ses licences et son infrastructure prennent fin.

Notre méthode

  1. 01

    Comprendre le système

    Nous lisons le code, retraçons les données et interrogeons les personnes qui l’exploitent, et nous consignons ce qu’il fait réellement.

  2. 02

    Choisir la trajectoire

    Nous décidons avec vous quelles parties conserver, encapsuler, migrer ou retirer, et dans quel ordre.

  3. 03

    Encapsuler

    Nous plaçons une couche d’API devant l’ancien système, afin que les nouveaux développements ne dépendent plus de son fonctionnement interne.

  4. 04

    Remplacer pièce par pièce

    Nous reconstruisons une fonction à la fois derrière la couche d’API, avec des tests qui démontrent sa conformité.

  5. 05

    Faire fonctionner en parallèle

    Nous faisons tourner l’ancien et le nouveau côte à côte, comparons leurs résultats et ne basculons que lorsqu’ils concordent.

  6. 06

    Retirer

    Nous arrêtons ce qui a été remplacé, archivons ses données et supprimons ses licences et son infrastructure.

Technologies

Langages
  • Java
  • C#
  • SQL
Frameworks
  • .NET
  • Spring Boot
Données et analytique
  • Apache Kafka
  • Debezium
Bases de données
  • Oracle Database
  • Microsoft SQL Server
  • PostgreSQL
DevOps et observabilité
  • Docker
  • Kubernetes
Intégration
  • OpenAPI
  • REST
  • SOAP

Modes de collaboration

Questions et réponses

Pourquoi ne pas réécrire tout le système d’un coup ?

Parce qu’une réécriture complète doit reproduire des années de comportement avant de pouvoir remplacer quoi que ce soit, alors que l’activité continue d’évoluer autour d’elle. Ces projets dépassent souvent les délais et sont lancés avec des lacunes. Remplacer une fonction à la fois apporte de la valeur tôt, conserve l’ancien système comme filet de sécurité et vous permet de vous arrêter ou de changer de cap à chaque étape.

Lien vers cette question
L’activité devra-t-elle s’arrêter pendant la migration ?

L’approche est conçue pour l’éviter. L’ancien système continue de fonctionner pendant que chaque nouvelle partie est construite et éprouvée en parallèle. Le travail bascule progressivement vers la nouvelle partie, et peut revenir en arrière en cas de problème. Lorsqu’une migration de données nécessite une bascule, nous la répétons au préalable et la planifions avec vous.

Lien vers cette question
Personne ne comprend entièrement notre ancien système. Pouvez-vous quand même le moderniser ?

Oui, et c’est une situation courante. Nous reconstituons la connaissance à partir du code, des données, des journaux et des personnes qui utilisent le système, et nous consignons ce qu’il fait réellement dans des tests de caractérisation. Ces tests deviennent la spécification à laquelle les nouvelles parties doivent répondre, de sorte que les comportements non documentés sont conservés, sauf si vous décidez de les modifier.

Lien vers cette question
Qu’est-ce qui détermine le coût d’une modernisation ?

La taille et la complexité de l’ancien système, la qualité de ses données, le nombre de systèmes qui en dépendent, et la part de ce qui doit changer plutôt qu’être conservé. Les langages et bases de données anciens que peu d’ingénieurs maîtrisent ajoutent de l’effort. Le travail étant incrémental, vous pouvez le financer par étapes et constater le résultat de chacune avant de valider la suivante.

Lien vers cette question
Comment migrez-vous les données en toute sécurité ?

Nous commençons par cartographier et profiler les données, afin de détecter les problèmes avant la migration plutôt qu’après. Les migrations sont scriptées et reproductibles, exécutées d’abord sur des copies, et rapprochées au moyen de comptages et de totaux qui démontrent que rien n’a été perdu ni altéré. Les données personnelles et sensibles sont protégées tout au long du processus, et leur accès est limité à des personnes désignées.

Lien vers cette question
Quand vaut-il mieux encapsuler un système que le remplacer ?

Lorsque l’ancien cœur est stable et correct, mais difficile d’accès. Des API modernes placées devant lui permettent aux nouveaux canaux, partenaires et produits d’utiliser ses fonctions sans toucher à son fonctionnement interne, avec un risque bien moindre qu’un remplacement. Nous recommandons le remplacement lorsque le système bloque le changement, ne peut pas être sécurisé ou ne trouve plus les compétences nécessaires.

Lien vers cette question
Avec quelles technologies anciennes pouvez-vous travailler ?

Nous travaillons avec les piles technologiques sur lesquelles de nombreux systèmes de gestion ont été construits, notamment les anciennes versions de Java et de .NET, des bases de données relationnelles comme Oracle Database et SQL Server, des services SOAP et des interfaces à base de fichiers. Pour les plateformes plus rares, nous évaluons d’abord le code et vous disons franchement si nous disposons des compétences nécessaires, ou si un spécialiste doit rejoindre l’équipe.

Lien vers cette question
Comment protégez-vous nos systèmes, notre code et nos données ?

Les accès sont accordés nominativement, limités aux besoins de chaque rôle et retirés lorsque la personne quitte le projet. Nous travaillons dans vos dépôts et vos environnements si vous le préférez, utilisons l’authentification multifacteur et conservons les secrets dans un coffre-fort numérique, jamais dans le code. Le code est relu avant d’être fusionné, les dépendances sont analysées, et les données de production ne sont jamais copiées dans les environnements de test sans masquage. Nous convenons de ces contrôles avec votre équipe sécurité dès le départ.

Lien vers cette question

Dites-nous ce que vous devez construire ou connecter.

Décrivez les systèmes, le calendrier et les contraintes. Les ingénieurs concernés prennent ensuite le relais.

  • Notre équipe vous appellera dans les 24 heures, sur le créneau de votre choix
  • Notre équipe est disponible 24 h/24, 7 j/7