La migration des systèmes monolithiques vers les microservices est un sujet d’actualité en raison de la demande croissante de systèmes logiciels évolutifs, faciles à maintenir et agiles. Bien que les microservices offrent des avantages, tels que le déploiement indépendant, l’isolation des défaillances et une meilleure évolutivité, la migration d’un système monolithique existant est un processus complexe, demandeur en ressources et propice aux erreurs. Ce processus comporte plusieurs phases interdépendantes : la pré-migration, l’identification des services, l’empaquetage des services, le déploiement et la surveillance, chacune présentant des défis distincts.
Les approches de migration existantes reposent actuellement sur des techniques manuelles guidées par des experts, rendant le processus coûteux, long et propice aux erreurs. Les avancées récentes en apprentissage automatique et en grands modèles de langage (LLMs) offrent de nouvelles opportunités pour analyser le code source, apprendre des gabarits à partir de systèmes existants et générer du code source ou des fichiers de configurations, ouvrant ainsi des perspectives concrètes pour automatiser et optimiser le processus de migration. Bien que certaines phases, comme l’identification des services, aient été largement étudiées, d’autres, telles que l’empaquetage des microservices et la configuration du déploiement, restent peu explorées et nécessitent encore beaucoup d’intervention manuelle.
Cette thèse débute par une revue systématique de la littérature (SLR) portant sur 81 études primaires publiées entre 2015 et 2024, qui se concentre sur les approches de migration basées sur l’apprentissage automatique. Cette SLR fournit une analyse approfondie des techniques existantes et montre que, si l’identification des services a été bien étudiée, les phases d’empaquetage et de configuration du déploiement demeurent insuffisamment explorées et largement dépendantes d’un travail manuel.
S’appuyant sur ces constats, cette thèse propose un cadriciel fondé sur l’apprentissage automatique pour automatiser trois phases clés du processus de migration : l’identification, l’empaquetage et le déploiement. Ce cadre comprend les approches suivantes : (1) Identification des services via MicroMiner, qui exploite le clustering et l’analyse sémantique pour décomposer des systèmes monolithiques en microservices tout en considérant les principes de responsabilité unique et de contexte borné ; (2) Empaquetage des services via MicroPacker, qui utilise une transformation guidée par un LLM pour modulariser le code, générer des API standardisées et intégrer des patrons fondamentaux d’architecture des microservices ; et (3) Déploiement des services via MiDKo, qui applique une génération augmentée par récupération (RAG) pour produire automatiquement des configurations Kubernetes et Docker précises.
Toutes ces contributions minimisent l’intervention manuelle, améliorent la qualité architecturale et la modularité des microservices résultants et garantissent la génération d’artefacts de déploiement valides, ce qui permet d’obtenir des microservices cohésifs et déployables, prêts à être exécutés dans des environnements cloud.
| Date | 18 août 2025 |
|---|
| langue originale | Anglais américain |
|---|
| Établissement diplômant | - École de technologie supérieure
|
|---|
| Superviseur | Naouel Moha (Directeur(-trice)) & Yann Gael Gueheneuc (Codirecteur(-trice)) |
|---|
- microservices
- monolithe
- migration
- identification
- empaquetage
- déploiement
- apprentissage automatique
Trabelsi, I. (Auteur(e)),
Moha (Directeur(-trice)) & Gueheneuc (Codirecteur(-trice)),
18 août 2025Thèses et mémoires: Thèse de doctorat › Doctorat en génie: Génie