Programme de Doctorat en informatique
Département d’informatique et de génie logiciel
Faculté des sciences et de génie
Présentation orale de la proposition de projet de recherche
(IFT-8003)
De
Khaled Sellami
Jeudi 9 mars 2023 à 13h00
À la salle PLT-3904
« Automated Migration of Monolithic systems into Microservices-based architecture»
Migration automatisée des systèmes monolithiques vers une architecture basée sur les microservices
Membres du comité d’encadrement
Pr. Mohamed Aymen Saied, Ph.D. (Directeur de recherche)
Département d’informatique et de génie logiciel
Pr. Mohamed Mejri, Ph.D.
Département d’informatique et de génie logiciel
Pr. Béchir Ktari, Ph.D.
Département d’informatique et de génie logiciel
Résumé
(en français)
Dans ce projet de recherche, nous proposons d’automatiser la migration des systèmes monolithiques existants vers l’architecture microservice, moyennant des techniques d’analyse de programme et d’intelligence artificielle. L’architecture Microservices a été conçue pour résoudre les nombreux problèmes rencontrés lors du développement et de la maintenance d’un système monolithique. Pour cette raison, de nombreuses entreprises telles qu’Amazon, Netflix, Spotify, SoundCloud, LinkedIn et Gilt ont migré leurs applications monolithiques vers un système basé sur les Microservices. Cependant, des enquêtes et des études de cas sur la migration d’applications monolithiques vers des Microservices ont montré que ce processus n’est pas trivial, il peut être très coûteux, très long et, surtout, très difficile à exécuter. Les étapes les plus complexes de ce processus sont la décomposition du monolithe et le réusinage du code source car ils nécessitent un ensemble de compétences très spécifiques. Nous proposons, alors, une approche qui automatiserait, autant que possible, le processus de migration et aiderait les développeurs dans leurs efforts. L’approche proposée sera abordée en trois étapes distinctes : l’analyse, la décomposition et le réusinage du code de l’application monolithique. L’étape d’analyse considère le monolithe à travers différentes sources d’information et les transforme en une représentation intermédiaire efficace. L’étape de décomposition utilise cette représentation et se base sur des techniques de l’intelligence artificielle afin d’extraire les fonctionnalités de l’application et de partitionner ses composants en un nouvel ensemble de Microservices potentiels. L’étape de réusinage du code (refactoring) détecte les composants pertinents du monolithe et les transforme en un code compatible avec une implémentation en Microservices afin d’adapter le monolithe à cette architecture.
Abstract
(résumé en anglais)
In this research project, we propose to automate the migration of legacy monolithic systems toward the microservice architecture. through program analysis and artificial intelligence techniques.
The Microservice Architecture emerged as a solution to many of the problems encountered when developing and maintaining a Monolithic system. For this reason, multiple companies such as Amazon, Netflix, Spotify, SoundCloud, LinkedIn and Gilt migrated their large monolithic applications to a microservices-based system. However, surveys and case studies about the migration efforts from monolith to microservices have shown that this process is not trivial, it can be very costly in the short term, time-consuming, and most importantly, very difficult to execute. The decomposition of the monolith and refactoring of the source code in particular have been shown to be the most complex steps in this process since they require a very specific set of skills. For this reason, we propose an approach that would automate, as much as possible, the migration process and assist the developers in their efforts. The proposed approach will be tackled in three distinct steps consisting in the analysis, the decomposition and the refactoring of the monolithic application. The analysis step views the monolith through different sources and transforms them into an efficient representation. The decomposition step uses this representation and takes advantage of Artificial Intelligence based solutions in order to extract the functionalities of the application and group together its components into microservices based on Domain Driven Design. The refactoring step detects the relevant components of the monolith and refactors them into microservices compatible code in order to adapt the monolith to the target architecture.
Note: La présentation sera donnée en anglais.
Bienvenue à tous!