Modernisation et fiabilisation de l'application de pilotage et supervision du Bus d'entreprise

Durée
5 mois
Equipe
3 personnes

Le projet

Alors que la confiance s'érodait autour d'un outil clé, GEODIS a lancé un chantier de modernisation pour fiabiliser son application de pilotage et supervision du Bus d'entreprise et en faire de nouveau un allié au quotidien.

GEODIS est un leader mondial du transport et de la logistique. Filiale de la SNCF, l'entreprise opère dans plus de 60 pays avec des services couvrant le freight forwarding, la logistique contractuelle, la distribution et l'express.

Geobus Watcher est un composant central pour l'administration, le monitoring et la supervision du Bus d'entreprise de GEODIS. Initialement développé comme un proof of concept avec une stack technique inadaptée à l'entreprise, l'outil montre rapidement ses limites : fiabilité incertaine et obsolescence technique croissante. Résultat : chaque évolution ou modification de l'application devenait un moment redouté, aussi bien pour les équipes de développement que pour les équipes Ops, générant une perte de confiance dans l'outil.

GEODIS faisait face à un choix stratégique difficile :

  • Réécrire entièrement l'application (une option lourde en coûts, délais et risques),
  • Ou la moderniser (mais sans visibilité sur la faisabilité ou les bénéfices d'une telle approche).

Les autres prestataires font ce qu'on leur dit de faire sans vraiment creuser. Avec vous, quand il y a un truc qui ne va pas, on est alerté tout de suite, on creuse, on a des propositions. Il y a beaucoup plus d'interactions avec exFabrica qu'avec les autres prestataires.

Czernich Nicolas, Manager de domaine applicatif chez GEODIS

Approche méthodologique

1. Audit 360° pour éclairer la solution

GEODIS a sollicité exFabrica pour clarifier la situation : faut-il repartir de zéro, ou bâtir sur l'existant ?

Pendant 6 jours, un architecte exFabrica a mené un audit approfondi de l'application Geobus Watcher. Objectif : évaluer l'architecture, les choix techniques, les points de fragilité, et identifier des leviers concrets de modernisation.

Conclusion de l'audit : une réécriture complète n'était pas nécessaire
L'existant, bien que techniquement daté, offrait une base exploitable. L'audit a permis de formaliser 9 axes clés de modernisation permettant de transformer l'application progressivement, tout en limitant les risques.

2. Une modernisation ciblée, pilotée par les résultats de l'audit

À la suite de cette phase d'analyse, GEODIS a décidé de s'engager dans le chantier de refonte en s'appuyant directement sur les recommandations de l'audit.

Le plan de modernisation s'est appuyé sur plusieurs leviers identifiés lors de l'audit, notamment :

  • Approche API first pour découpler «sereinement» le backend et le frontend
  • Migration vers une base de données relationnelle pour : Optimiser les relations entre assets, faciliter l'ajout de règles d'intégrité et s'aligner avec les standards du groupe
  • Mise à jour de SpringBoot (passage de la version 1.5.2 à 3.3.0)
  • Automatisation des déploiements et containerisation de l'application
  • Renforcement de la sécurité avec l'intégration d'OAuth

Grâce à ces améliorations, les équipes GEODIS ont pu se réapproprier l'outil sur toute la chaîne (développement, test, déploiement…). L'application est désormais fiable, maintenable et évolutive, avec des cycles de mise en production bien plus fluides et une gouvernance claire des données et fonctionnalités, offrant à GEODIS un outil performant pour superviser ses flux critiques.

Proposition technique

Le projet a débuté par une analyse approfondie du code existant, suivie de la mise en place d'un environnement local de test (Docker, devcontainer, etc.) afin de faire tourner l'application et en comprendre le fonctionnement.

Certaines fonctionnalités ont été mockées/bouchonnées (notamment les appels à MQSeries) tandis que d'autres ont été ajoutées pour faciliter le travail comme le déploiement sur Tomcat embedded ou la génération automatique de la documentation Swagger à partir des annotations.

À partir de ce contrat d'interface initial, nous avons croisé ces informations avec les logs d'appel afin de classer et prioriser les endpoints.

En collaboration avec le client, une revue complète de la documentation Swagger a été menée. Elle a permis d'en améliorer la qualité : ajout de commentaire, typage plus précis du modèle de données, suppression des endpoints obsolètes. Cette spécification a ensuite servi de base à la génération automatique du code des contrôleurs à chaque build dans la nouvelle version.

Ce travail a permis de démarrer, de manière plus sereine, la refonte du backend. La couche repository a été migrée progressivement vers PostgreSQL, avec création des entités associées. Le modèle de données, initialement très complexe en raison d'une mauvaise utilisation du modèle document, a été considérablement amélioré (lisibilité, maintenabilité, liens et contraintes).

Les interactions avec les machines à piloter ont été fiabilisées grâce à une meilleure gestion des exceptions.

Les règles fonctionnelles ont été centralisées, et les cas de violation sont désormais facilement testables et administrables directement depuis la base de données.

Enfin, des health checks ont été ajoutés pour permettre de surveiller l'état du système et des composants liés.

Stack technique

  • Java (1.8 à 17)
  • Spring Boot (1.5.2 à 3.3.0)
  • MongoDb
  • IBM DB2
  • PostgreSQL
  • Gitlab
  • OAuth 2
  • AngularJS
  • NodeJS
  • Sonar
  • Kubernetes
  • Openshift

Domaines d'intervention

  • Architecture
  • Développement back
  • Développement front
  • Delivery Manager
  • DevOps
  • Operabilité

Ce projet était compliqué. Passer d'une base MongoDB pas du tout relationnel à un truc complétement relationnel, il fallait bien comprendre comment ça fonctionnait.

Czernich Nicolas, Manager de domaine applicatif chez GEODIS

Résultats

Nombre de flux supervisés
1 million / jour
Nombre de serveurs à piloter
12
Nombre de tables SQL
+/- 30
Nombre de endpoints
20

Témoignage client

Nicolas CzernichManager de domaine applicatif

exFabrica n'est pas un simple exécutant : l'équipe questionne nos idées, propose des alternatives et apporte l'expertise que nous n'avons pas.

Sur GEOBUS Watcher, ils ont brillamment mené la migration d'une base Mongo complexe vers une architecture relationnelle solide, tout en assurant un lead technique quotidien.

Leur approche partenaire - réactive, transparente et sans lourdeur contractuelle - nous fait gagner un temps précieux. Au final, nous ressortons avec un produit meilleur... et nous aussi.

Notre touche exFabrica

Nous avons adopté une approche agile, privilégiant des cycles courts et une boucle de feedback rapide pour maximiser la réactivité et garantir des améliorations continues.

Nous avons mobilisé une équipe experte et transverse, capable d'adresser l'ensemble du périmètre technique : CI/CD, back-end, front-end, sécurité et monitoring.

Afin de garantir un déploiement fluide et sécurisé, nous avons constitué une taskforce dédiée, assurant une coordination étroite et une maîtrise totale du passage en production.

Au-delà de la modernisation technique, nous avons assuré un transfert de compétences approfondi aux équipes GEODIS, leur permettant de prendre en main la solution et d'assurer sa pérennité.