ALGORITHM FOR TRANSITION FROM MONOLITHIC TO MICROSERVICE ARCHITECTURE USING GRAPH CLUSTERING METHODS
DOI:
https://doi.org/10.31891/2219-9365-2024-79-24Keywords:
microservices, system decomposition, graph clustering, combinatorial optimizationAbstract
The transition from a monolithic architecture to a microservice architecture using graph clustering methods is an effective approach that allows you to divide the system into logically connected components.
Static analysis is the first step in making the transition from a monolithic to a microservice architecture. It allows you to highlight components (nodes) and establish relationships between them, as well as the weight of these relationships, depending on the type of components it connects.
After constructing a connected graph based on static analysis, the next important step is graph clustering. Graph clustering provides an automated approach to partitioning the monolith, which allows for the detection of natural boundaries between components. The use of clustering algorithms, such as Louvain, Spectral Clustering or Girvan-Newman, simplifies and speeds up the process of module identification.
The next important stage in the process of transforming a monolithic architecture into a microservice is the optimization of the resulting clusters. After completing the practical task of clustering a graph with 5 vertices, 2 clusters were obtained, the first included 2 nodes, and the second - 3. But after performing cluster optimization, a different result was obtained - one of the graph vertices was moved from the second to the first cluster. This happened due to the reduction of intercluster dependencies, which ensured the efficient distribution of components and ultimately increased the performance and scalability of the system.
This article presents an approach to the transformation of a monolithic architecture into a microservice one using a bottom-up decomposition strategy. This approach uses static code analysis to represent a monolithic system in the form of a connected graph. At the second stage, the graph is clustered using clustering algorithms. The third is optimization of the obtained clusters.