L’architecture en microservices met en évidence de multiples avantages pour les entreprises
et les développeurs. Cela explique pourquoi de nombreuses entreprises technologiques choisissent
de migrer leurs logiciels d’une architecture monolithique vers celle des microservices.
Cependant, la migration d’un système monolithique ou d’un système hérité vers une architecture
en microservices est une tâche complexe, risquée et chronophage. Pour faciliter et
améliorer ce processus, notre travail se concentrera sur la conception d’une approche semiautomatique
pour détecter et identifier les microservices dans les applications existantes.
Il s’agit d’une étape clé vers l’objectif global de migrer un système monolithique vers des
microservices. Notre approche consiste à combiner des méthodes de regroupement et d’optimisation
de la proximité entre les dépendances structurelles à un niveau de granularité
optimal. Dans ce projet, nous nous appuyons également sur plusieurs méthodes d’intelligence
artificielle, en particulier des algorithmes d’apprentissage automatique, pour mettre
en oeuvre notre approche. D’une part, nous effectuons l’extraction de dépendances et le
regroupement. D’autre part, nous mettons en oeuvre des méthodes qui nous aideront à optimiser
la proximité entre éléments constituant un microservice. Pour obtenir les scores de
proximité, nous ciblons à la fois les relations sémantiques et les dépendances structurelles.
L’analyse des graphes d’appels et des traces d’exécutions peut nous aider à générer les différentes
connexions structurelles. En ce qui concerne les connexions sémantiques, nous pouvons
tirer parti de techniques d’apprentissage de représentations numériques (embedding) telles
que SBERT. / The microservices architecture highlights multiple benefits for companies and developers.
This explains the reason why numerous tech companies choose to migrate their software from
a monolithic architecture to one of microservices. However, migrating from a monolithic or
a legacy system to a microservices architecture is a complex, risky, and time-consuming
task. To ease and improve this process, our work will focus on designing a semi-automatic
approach to detect and identify microservices in existing applications. This is a key step
toward the overall goal of migrating a monolithic system toward microservices.
Our approach consists in combining methods of clustering and optimization of proximity
between structural dependencies at an optimal level of granularity. In this project, we rely
on several Artificial Intelligence techniques as well, specifically Machine Learning algorithms,
to implement our approach. On one hand, we are performing dependency extraction and
clustering. On the other hand, we are implementing methods that will help us optimize the
proximity. To obtain the proximity scores, we are targeting both semantic relationships and
structural dependencies. Analyzing call graphs and execution traces can help us generate
the different structural links or relations. As for the semantic connections, we can take
advantage of highly useful embedding such as SBERT.
Identifer | oai:union.ndltd.org:umontreal.ca/oai:papyrus.bib.umontreal.ca:1866/33567 |
Date | 03 1900 |
Creators | Barry, Hanifa |
Contributors | Sahraoui, Houari |
Source Sets | Université de Montréal |
Language | English |
Detected Language | French |
Type | thesis, thèse |
Format | application/pdf |
Page generated in 0.0021 seconds