Towards Automated Microservices Extraction Using Muti-objective Evolutionary Search
We introduce in this paper a novel approach, named MSExtractor, that formulate the microservices identification problem as a multi-objective combinatorial optimization problem to decompose a legacy application into a set of cohesive, loosely-coupled and coarse-grained services. We employ the non-dominated sorting genetic algorithm (NSGA-II) to drive a search process towards optimal microservices identification while considering structural dependencies in the source code. We conduct an empirical evaluation on a benchmark of two open-source legacy software systems to assess the efficiency of our approach. Results show that MSExtractor is able to find relevant microservice candidates and outperforms recent three state-of-the-art approaches.
KeywordsMicroservices Search-based software engineering Legacy decomposition Microservices architecture
- 4.Jin, W., Liu, T., Zheng, Q., Cui, D., Cai, Y.: Functionality-oriented microservice extraction based on execution trace clustering. In: 2018 IEEE International Conference on Web Services (ICWS), pp. 211–218. IEEE (2018)Google Scholar
- 7.Adjoyan, S., Seriai, A.-D., Shatnawi, A.: Service identification based on quality metrics object-oriented legacy system migration towards SOA. In: SEKE: Software Engineering and Knowledge Engineering (2014)Google Scholar
- 8.Newman, S.: Building Microservices: Designing Fine-grained Systems. O’Reilly Media, Sebastopol (2015)Google Scholar
- 9.Mazlami, G., Cito, J., Leitner, P.: Extraction of microservices from monolithic software architectures. In: 2017 IEEE International Conference on Web Services (ICWS) (2017)Google Scholar
- 11.Zitzler, E., Laumanns, M., Thiele, L.: SPEA2: improving the strength Pareto evolutionary algorithm, TIK-report, vol. 103 (2001)Google Scholar