Abstract: | Abstract :
In today’s rapidly evolving technological landscape, software applications are becoming
increasingly intricate, posing challenges in their development, deployment, and maintenance.
Microservice-oriented architecture (MSA) is one of the latest style to have emerged.
An approach that involves breaking down applications into smaller, independent services
that collaborate seamlessly, promoting flexibility, scalability, and maintainability. These
features allow for easily-deployable, autonomous, and scal- able applications.
While the advantages of microservices are evident, numerous enterprises grapple with
legacy monolithic codebases. These legacy systems, characterized by their sprawling and
intricate code, often hinder the adoption of microservices due to their inherent complexity.
Redesigning from the ground up is cost-prohibitive and fraught with risks, prompting
organizations to embark on gradual, incremental migrations toward microservices. In
light of these challenges, there emerges a pressing need for a well-structured, versatile,
and reusable migration process.
In this project, we focus specifically on the migration of applications built using Ruby
on Rails. The migration process is dissected into two primary research problems: Firstly,
the identification of microservices architecture or clusters within the existing monolithic
codebase. Secondly, the materialization of the extracted microservices architecture utilizing
diverse technologies and techniques.
To validate the proposed approach, a real-world, in-production application serves as
the testing ground. Through meticulous analysis, we identified microservices and executed
the migration process. Subsequent to the migration, rigorous testing and experimentation
were conducted to assess the quality of the migrated application and discern disparities
from its monolithic precursor.***
Résumé :
Dans le paysage technologique actuel, qui évolue rapidement, les applications logicielles deviennent
de plus en plus complexes, ce qui pose des problèmes au niveau de leur développement,
de leur déploiement et de leur maintenance. L’architecture orientée microservices
(MSA) est l’un des derniers styles à avoir émergé. Cette approche consiste à décomposer
les applications en petits services indépendants qui collaborent de manière transparente,
ce qui favorise la flexibilité, l’évolutivité et la facilité de maintenance. Ces caractéristiques
permettent de créer des applications facilement déployables, autonomes et évolutives.
Bien que les avantages des microservices soient évidents, de nombreuses entreprises
sont aux prises avec des bases de code monolithiques héritées du passé. Ces systèmes
hérités, caractérisés par leur code tentaculaire et complexe, entravent souvent l’adoption
des microservices en raison de leur complexité inhérente. Une refonte complète est trop
coûteuse et comporte des risques, ce qui incite les organisations à se lancer dans des
migrations graduelles et incrémentielles vers les microservices. À la lumière de ces défis,
il apparaît un besoin pressant d’un processus de migration bien structuré, polyvalent et
réutilisable.
Dans ce projet, nous nous concentrons spécifiquement sur la migration d’applications
construites à l’aide de Ruby on Rails. Le processus de migration est disséqué en deux
problèmes de recherche principaux : Premièrement, l’identification d’une architecture de
microservices ou de clusters au sein de la base de code monolithique existante. Deuxièmement,
la matérialisation de l’architecture microservices extraite à l’aide de diverses
technologies et techniques.
Pour valider l’approche proposée, une application réelle en production sert de terrain
d’essai. Grâce à une analyse méticuleuse, nous avons identifié les microservices et exécuté
le processus de migration. Après la migration, des tests et des expérimentations rigoureux
ont été menés pour évaluer la qualité de l’application migrée et discerner les disparités
par rapport à son précurseur monolithique. |