Refonte et Migration d'une application de gestion de questionnaires RSE

Retour aux Projets

Projet de modernisation, reprise technique et migration d'une plateforme de questionnaires RSE (Responsabilité Sociétale des Entreprises).

Contexte & Objectifs

L'objectif était double : moderniser l'application existante (UX, code, tests, CI/CD) et migrer les données d'un modèle NoSQL (MongoDB) vers un modèle relationnel (SQL Server) pour faciliter les requêtes analytiques et l'intégration avec l'écosystème Azure.

Refonte de l'application

  • Conception technique : refactorisation de l'architecture pour séparer clairement API, services métiers et accès aux données ; définition d'un schéma de données cible et d'un plan de migration.
  • Accompagnement de l'équipe : ateliers d'architecture, pair-programming, formation aux bonnes pratiques et aux outils Azure utilisés pendant le projet.
  • Relecture de code : mise en place de revues systématiques, conventions de code et sécurité.
  • Déploiement : pipelines CI/CD pour déploiement automatisé aux environnements de dev / recette / production avec tests automatisés.
Architecture
API
.NET
Angular
Code Review
CI/CD
Testing
Pair Programming

Migration MongoDB vers SQL Server

La migration de la base a été réalisée en plusieurs étapes afin d'assurer l'intégrité des données et de minimiser la coupure de service.

Étapes clés

  1. Import initial : import depuis MongoDB vers Azure Cosmos DB via la CLI mongo.
  2. Transformation : utilisation de pipelines Azure Synapse pour transformer et préparer les données afin d'alimenter les tables relationnelles SQL Server.

Azure Functions développées

  • Migration des comptes utilisateurs vers Azure AD B2C : fonction qui lit les comptes existants, normalise les identifiants et crée/associe les comptes dans Azure AD B2C avec mapping des attributs et des rôles.
  • Extraction GridFS vers Blob Storage : fonction qui parcourt les fichiers stockés via GridFS dans Cosmos, extrait et copie les blobs vers Azure Blob Storage en conservant les métadonnées et en mettant à jour les références dans la base SQL.

Points techniques et challenges

  • Gestion des structures imbriquées MongoDB et mapping vers tables relationnelles (relations 1-N et N-N) ; conception des clés et index SQL pour performances.
  • Assurer la continuité des opérations : synchronisation incrémentale, gestion des conflits et stratégie de reprise en cas d'erreur.
MongoDB
Azure Synapse
Azure Cosmos DB
CLI mongo
SQL Server
Azure Functions
GridFS
Azure Blob Storage
Azure AD B2C
Data Migration