Extracting microservices from monolithic systems using deep reinforcement learning

Sellami, Khaled
DOI: https://doi.org/10.1007/s10664-024-10547-4
IF: 3.762
2024-10-13
Empirical Software Engineering
Abstract:The Microservice Architecture emerged as a solution to problems encountered when developing and maintaining a Monolithic system. For this reason, multiple companies migrated their large monolithic applications to a microservices-based system. However, previous migration efforts have shown that this process can be very costly and very difficult to execute citing the decomposition phase of this process as the most significant challenge. Approaches that can automate and guide the developers through this phase can alleviate the issues of the migration process. However, the number of potential microservices and their compositions rises exponentially with the scale of the monolith. Navigating the space of potential decompositions can be difficult due to the ambiguity of the desired qualities of the new architecture. For this reason, we propose a novel Deep Reinforcement Learning based approach, RLDec, that is able to generate recommendations for the new microservices. In this research, we formulate the microservices recommendation task as a Markov Decision Process and we train a Deep Neural Networks model using the quality of the generated microservices as a reward function. These quality metrics are based mainly on the structural and semantic analysis of the monolithic system. We evaluate the performance of our proposed approach using distinct metrics and different experimental settings including a comparison of different variations of RLDec, a comparison with state-of-the-art decomposition approaches and qualitative analysis of a decomposition example. We include an artifact package for the detailed results.
computer science, software engineering
What problem does this paper attempt to address?