Trabelsi, Imen (2025). A machine learning-based framework to support monoliths to microservices migration: from identification to packaging and deployment. Thèse de doctorat électronique, Montréal, École de technologie supérieure.
Prévisualisation |
PDF
Télécharger (2MB) | Prévisualisation |
Résumé
The migration from monolithic to microservices has gained significant attention due to the growing demand for scalable, maintainable, and agile software systems. While microservices offer benefits, such as independent deployment, fault isolation, and enhanced scalability,migrating an existing monolithic system is a complex, resource-intensive, and error-prone process. This process involves multiple interdependent phases: pre-migration, service identification, service packaging, deployment, and monitoring, each presenting distinct challenges.
Existing migration approaches rely heavily on expert-driven, manual techniques, making the process costly, time-consuming, and error-prone. Recent advancements in Machine Learning and Large Language Models provide new capabilities for analysing source code, learning patterns from existing systems, and generating code or configurations, thus offering concrete opportunities to automate and optimise the migration process. While some phases, such as service identification, have been extensively studied, others, such as microservice packaging and deployment configuration, remain underexplored and require substantial manual effort.
This thesis begins with a Systematic Literature Review (SLR) of 81 primary studies on machine learning-based approaches to monolith-to-microservices migration, published between 2015 and 2024. The SLR provides a comprehensive analysis of existing techniques and reveals that, while service identification has been extensively studied, the phases of microservice packaging and deployment configuration remain underexplored and largely reliant on manual effort.
Building on these findings, this thesis introduces a machine learning-driven framework that automates the three key phases of the migration process, identification, packaging, and deployment, thereby reducing manual effort and enabling the transition toward a modular and cohesive microservices architecture. The framework comprises the following ML-based approaches: (1) Service Identification via MicroMiner, which leverages clustering and semantic analysis to decompose monolithic systems into microservices aligned with single-responsibility and bounded context principles; (2) Service Packaging via MicroPacker, which employs LLM-guided transformation to modularise code, generate standardised APIs, and integrate foundational microservice patterns; and (3) Service Deployment via MiDKo, which applies retrieval-augmented generation to automatically produce accurate Kubernetes and Docker configurations.
Collectively, these contributions minimise manual intervention, enhance the architectural quality and modularity of the resulting microservices, and ensure the generation of valid deployment artifacts, resulting in cohesive and deployable microservices ready for execution in modern cloud environments.
Titre traduit
Un cadriciel basé sur l’apprentissage automatique pour aider à la migration des systèmes monolithiques vers les microservices : de l’identification à l’emballage et au déploiement
Résumé traduit
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.
| Type de document: | Mémoire ou thèse (Thèse de doctorat électronique) |
|---|---|
| Renseignements supplémentaires: | "Thesis presented to École de technologie supérieure in partial fulfillment for the degree of doctor of philosophy". Comprend des références bibliographiques (pages 187-203). |
| Mots-clés libres: | microservices, monolithe, migration, identification, empaquetage, déploiement, apprentissage automatique |
| Directeur de mémoire/thèse: | Directeur de mémoire/thèse Moha, Naouel |
| Codirecteur: | Codirecteur Guéhéneuc, Yann-Gaël |
| Programme: | Doctorat en génie > Génie |
| Date de dépôt: | 23 sept. 2025 19:15 |
| Dernière modification: | 23 sept. 2025 19:15 |
| URI: | https://espace.etsmtl.ca/id/eprint/3712 |
Gestion Actions (Identification requise)
![]() |
Dernière vérification avant le dépôt |

Statistiques de téléchargement
Statistiques de téléchargement