Abstract
The expensive maintenance of legacy systems leads companies to migrate such systems to modern architectures. Microservice architectural style has become a trend to modernize monolithic legacy systems. A microservice architecture consists of small, autonomous, and highly-independent services communicating by using lightweight network protocols. To support the designing of microservice architectures, recent studies have proposed either single or multi-objective approaches. In order to improve the effectiveness of existing approaches, we introduced toMicroservices that is a many-objective search-based approach to aid the identification of boundaries among services. In previous studies, we have focused on a qualitative evaluation of the applicability and adoption of the proposed approach from a practical point of view, thus the optimization process itself has not been investigated in depth. In this paper, we extend our previous work by performing a more in-depth analysis of our many-objective approach for microservice identification. We compare our approach against a baseline approach based on a random search using a set of performance indicators widely used in the literature of many-objective optimization. Our results are validated through a real-world case study. The study findings reveal that (i) the criteria optimized by our approach are interdependent and conflicting; and (ii) all candidate solutions lead to better performance indicators in comparison to random search. Overall, the proposed many-objective approach for microservice identification yields promising results, which shed light on insights for further improvements.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Anquetil N, Lethbridge TC (1999) Experiments with clustering as a software remodularization method. In: 6th working conference on reverse engineering. IEEE, pp 235–255
Arcuri A, Briand L (2014) A Hitchhiker’s guide to statistical tests for assessing randomized algorithms in software engineering. Softw Test Verif Reliab 24 (3):219–250
Assunção WKG, Colanzi TE, Carvalho L, Pereira JA, Garcia A, de Lima MJ, Lucena C (2021) A multi-criteria strategy for redesigning legacy features as microservices: An industrial case study. In: 2021 IEEE International conference on software analysis, evolution and reengineering (SANER). pp 377–387. https://doi.org/10.1109/SANER50967.2021.00042
Balalaie A, Heydarnoori A, Jamshidi P, Tamburri DA, Lynn T (2018) Microservices migration patterns. Softw Pract Exp 48(11):2019–2042
Bavota G, De Lucia A, Marcus A, Oliveto R (2010) Software re-modularization based on structural and semantic metrics. In: 17th working conference on reverse engineering. pp 195–204. https://doi.org/10.1109/WCRE.2010.29
Bergmann R, Ludbrook J, Spooren WPJM (2000) Different outcomes of the Wilcoxon-Mann-Whitney test from different statistics packages. Am Stat 54(1):72–77
Candela I, Bavota G, Russo B, Oliveto R (2016) Using cohesion and coupling for software remodularization: Is it enough? ACM Trans Softw Eng Methodol 25(3). https://doi.org/10.1145/2928268
Capilla R, Gallina B, Cetina C, Favaro J (2019) Opportunities for software reuse in an uncertain world: From past to emerging trends. JSEP-ICSR’18-Special Issue 31(8):1–22. http://www.es.mdh.se/publications/5550-
Carvalho L, Garcia A, Assunção WKG, Bonifácio R, Tizzei LP, Colanzi TE (2019a) Extraction of configurable and reusable microservices from legacy systems: An exploratory study. In: 23rd International systems and software product line conference - Volume A, SPLC ’19. ACM, New York, pp 26–31
Carvalho L, Garcia A, Assunção WKG, de Mello R, de Lima MJ (2019b) Analysis of the criteria adopted in industry to extract microservices. In: Joint 7th Intl. workshop on conducting empirical studies in industry and 6th intl. workshop on software engineering research and industrial practice, CESSER-IP ’19. IEEE Press, Piscataway, pp 22–29
Carvalho L, Garcia A, Colanzi TE, ao WKGA, Pereira JA, Fonseca B, Ribeiro M, de Lima MJ, Lucena C (2020a) On the performance and adoption of search-based microservice identification with toMicroservices. In: IEEE international conference on software maintenance and evolution (ICSME). IEEE. https://doi.org/10.1109/icsme46990.2020.00060
Carvalho L, Garcia A, Colanzi TE, Assunção WKG, Lima MJ, Fonseca B, Ribeiro MA, Lucena C (2020b) Search-based many-criteria identification of microservices from legacy systems. In: Genetic and evolutionary computation conference companion, GECCO ’20. https://doi.org/10.1145/3377929.3390030. ACM, New York, pp 305–306
Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493
Cochrane J, Zeleny M (1973) Multiple criteria decision making. University of South Carolina Press, Columbia
Coello CAC, Lamont GB, Van Veldhuizen DA, et al. (2007) Evolutionary algorithms for solving multi-objective problem. Springer Science & Business Media, Berlin
Colanzi TE, Assunċão WKG, Farah PR, Vergilio SR, Guizzo G (2019) A review of ten years of the symposium on search-based software engineering. In: Symposium on search-based software engineering (SSBSE). pp. 42–57
Colanzi TE, Assunção WKG, Vergilio SR, Farah PR, Guizzo G (2020) The symposium on search-based software engineering: Past, present and future. Inf Softw Technol 127:106372. https://doi.org/10.1016/j.infsof.2020.106372
Curry DM, Dagli CH (2014) Computational complexity measures for many-objective optimization problems. Procedia Comput Sci 36:185–191. https://doi.org/10.1016/j.procs.2014.09.077
Deb K, Jain H (2014) An evolutionary many-objective optimization algorithm using reference-point-based nondominated sorting approach, part i: Solving problems with box constraints. IEEE Trans Evol Comput 18(4):577–601
Deb K, Pratap A, Agarwal S, Meyarivan T (2002) A fast and elitist multiobjective genetic algorithm: Nsga-ii. IEEE Trans Evol Comput 6 (2):182–197
Di Francesco P, Lago P, Malavolta I (2019) Architecting with microservices: A systematic mapping study. J Syst Softw 150:77–97
Dragoni N, Giallorenzo S, Lafuente AL, Mazzara M, Montesi F, Mustafin R, Safina L (2017) Microservices: yesterday, today, and tomorrow. Springer International Publishing, Cham
Durillo JJ, Nebro AJ (2011) jmetal: A java framework for multi-objective optimization. Adv Eng Softw 42(10):760–771
Escobar D, Cárdenas D, Amarillo R, Castro E, Garcés K, Parra C, Casallas R (2016) Towards the understanding and evolution of monolithic applications as microservices. In: Latin American computing conference. pp 1–11
Eski S, Buzluca F (2018) An automatic extraction approach: Transition to microservices architecture from monolithic application. In: 19th international conference on agile software development: companion, XP ’18. pp 25:1–25:6
Fonseca CM, Paquete L, Lopez-Ibanez M (2006) An improved dimension-sweep algorithm for the hypervolume indicator. In: IEEE international conference on evolutionary computation. pp 1157–1163
Fowler M (1999) Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston
Francesco PD, Lago P, Malavolta I (2018) Migrating towards microservice architectures: An industrial survey. In: International conference on software architecture (ICSA). pp 29:01–29:09
Fritzsch J, Bogner J, Zimmermann A, Wagner S (2018) From monolith to microservices: a classification of refactoring approaches. In: International workshop on software engineering aspects of continuous development and new paradigms of software production and deployment. Springer, pp 128–141
Fritzsch J, Bogner J, Zimmermann A, Wagner S (2019) From monolith to microservices: A classification of refactoring approaches. In: Bruel JM, Mazzara M, Meyer B (eds) Software engineering aspects of continuous development and new paradigms of software production and deployment. Springer International Publishing, Cham, pp 128–141
Gao M, Chen M, Liu A, Ip WH, Yung KL (2020) Optimization of microservice composition based on artificial immune algorithm considering fuzziness and user preference. IEEE Access 8:26385–26404
Hall M, Walkinshaw N, McMinn P (2018) Effectively incorporating expert knowledge in automated software remodularisation. IEEE Trans Softw Eng 44(7):613–630. https://doi.org/10.1109/TSE.2017.2786222
Harman M, Tratt L (2007) Pareto optimal search based refactoring at the design level. In: 9th annual conference on genetic and evolutionary computation (GECCO). ACM, New York, pp 1106–1113
Henderson-Sellers B, Ralyté J, Ågerfalk PJ, Rossi M (2014) Situational method engineering. Springer, Berlin. https://doi.org/10.1007/978-3-642-41467-1
Hinkle DE, Wiersma W, Jurs SG (2002) Applied statistics for the behavioral sciences, 5th edn. Cengage Learning, Boston
Jalali NS, Izadkhah H, Lotfi S (2018) Multi-objective search-based software modularization: structural and non-structural features. Soft Comput 23 (21):11141–11165. https://doi.org/10.1007/s00500-018-3666-z
Jamil MA, Alhindi A, Arif M, Nour MK, Abubakar NSA, Aljabri TF (2019) Multiobjective evolutionary algorithms nsga-ii and nsga-iii for software product lines testing optimization. In: 2019 IEEE 6th international conference on engineering technologies and applied sciences (ICETAS). pp 1–5. https://doi.org/10.1109/ICETAS48360.2019.9117500
Jin W, Liu T, Cai Y, Kazman R, Mo R, Zheng Q (2019) Service candidate identification from monolithic systems based on execution traces. IEEE Trans Softw Eng: 1–1
Jin W, Liu T, Zheng Q, Cui D, Cai Y (2018) Functionality-oriented microservice extraction based on execution trace clustering. In: International conference on web services (ICWS). IEEE, pp 211–218
Lewis J, Fowler M (2014) Microservices: a definition of this new architectural term. https://martinfowler.com/articles/microservices.html. Online
Lin M, Xi J, Bai W, Wu J (2019) Ant colony algorithm for multi-objective optimization of container-based microservice scheduling in cloud. IEEE Access 7:83088–83100
Luz W, Agilar E, de Oliveira MC, de Melo CER, Pinto G, Bonifácio R (2018) An experience report on the adoption of microservices in three Brazilian government institutions. In: XXXII Brazilian symposium on software engineering. ACM, New York, pp 32–41
Ma W, Wang R, Gu Y, Meng Q, Huang H, Deng S, Wu Y (2021) Multi-objective microservice deployment optimization via a knowledge-driven evolutionary algorithm. Complex Intell Syst 7:1153–1171. https://doi.org/10.1007/s40747-020-00180-1
Mahouachi R (2018) Search-based cost-effective software remodularization. J Comput Sci Technol 33 (6):1320–1336. https://doi.org/10.1007/s11390-018-1892-6
Mazlami G, Cito J, Leitner P (2017) Extraction of microservices from monolithic software architectures. In: International conference on web services (ICWS), pp 524–531
Mitchell BS, Mancoridis S (2006) On the automatic modularization of software systems using the bunch tool. IEEE Trans Softw Eng 32(3):193–208
Mkaouer MW, Kessentini M, Bechikh S, Deb K, Ó Cinnéide M (2014) High dimensional search-based software engineering: Finding tradeoffs among 15 objectives for automating software refactoring using nsga-iii. In: Proceedings of the 2014 annual conference on genetic and evolutionary computation, GECCO ’14. https://doi.org/10.1145/2576768.2598366. ACM, New York, pp 1263–1270
Mkaouer W, Kessentini M, Shaout A, Koligheu P, Bechikh S, Deb K, Ouni A (2015) Many-objective software remodularization using NSGA-III. ACM Trans Softw Eng Methodol 24(3). https://doi.org/10.1145/2729974
Newman S (2015) Building microservices: designing fine-grained systems. O‘Reilly Media, Inc., Sebastopol
Nicolodi LB, Colanzi TE, Assunção WKG (2020) Architectural feature re-modularization for software product line evolution. In: 14th Brazilian symposium on software components, architectures, and reuse, SBCARS ’20. Association for Computing Machinery, New York, pp 31–40. https://doi.org/10.1145/3425269.3425271
Palakonda V, Mallipeddi R (2020) An evolutionary algorithm for multi and many-objective optimization with adaptive mating and environmental selection. IEEE Access 8:82781–82796. https://doi.org/10.1109/ACCESS.2020.2991752
Ponce F, Márquez G, Astudillo H (2019) Migrating from monolithic architecture to microservices: A rapid review. In: 38th International conference of the chilean computer science society (SCCC). IEEE, pp 1–7
Radziukyniene I, Zilinskas A (2008) Evolutionary methods for multi-objective portfolio optimization. In: World congress on engineering 2008, Vol II
Shapiro SS, Wilk MB (1965) An analysis of variance test for normality (complete samples). Biometrika 52(3-4):591–611
Spearman C (1904) The proof and measurement of association between two things. Am J Psychol 15(1):72–101
Van Veldhuizen DA (1999) Multiobjective evolutionary algorithms: classifications, analyses, and new innovations. Tech. rep., Air Force Institute Of Technology, Wright-Patterson Air Force Base School of Engineering
Vargha A, Delaney H (2000) A critique and improvement of the cl common language effect size statistics of McGraw and Wong. J Educ Behav Stat 25(2):101–132
Welch BL (1947) The generalization of student’s problem when several different population variances are involved. Biometrika 34(1/2):28–35
Wolfart D, Assunção WKG, da Silva IF, Domingos DCP, Schmeing E, Villaca GLD, Paza DDN (2021) Modernizing legacy systems with microservices: A roadmap. In: Evaluation and assessment in software engineering, EASE 2021. https://doi.org/10.1145/3463274.3463334. ACM, New York, pp 149–159
Yen GG, He Z (2013) Performance metric ensemble for multiobjective evolutionary algorithms. IEEE Trans Evol Comput 18(1):131–144
Zanetti MS, Tessone CJ, Scholtes I, Schweitzer F (2014) Automated software remodularization based on move refactoring: A complex systems approach. In: 13th international conference on modularity, MODULARITY ’14. https://doi.org/10.1145/2577080.2577097. ACM, New York, pp 73–84
Zhang Y, Liu B, Dai L, Chen K, Cao X (2020) Automated microservice identification in legacy systems with functional and non-functional metrics. In: 2020 IEEE international conference on software architecture (ICSA). pp. 135–145
Zitzler E, Laumanns M, Thiele L, et al. (2001) Spea2: Improving the strength pareto evolutionary algorithm. In: Evolutionary methods for design, optimization and control with applications to industrial problems (EUROGEN), International Center for Numerical Methods in Engineering. pp 95–100
Zitzler E, Thiele L (1998) Multiobjective optimization using evolutionary algorithms – a comparative case study. In: Eiben AE, Bäck T, Schoenauer M, Schwefel HP (eds) Parallel problem solving from nature – PPSN V. Springer, Berlin, pp 292–301
Zitzler E, Thiele L, Laumanns M, Fonseca CM, da Fonseca VG (2003) Performance assessment of multiobjective optimizers: An analysis and review. IEEE Trans Evol Comput 7:117–132
Acknowledgements
This study was partially funded by CNPq grants 151723/2020-6, 428994/2018-0, 434969/2018-4, 312149/2016-6, 309844/2018-5, 421306/2018-1, and 408356/2018-9 CAPES grants 175956 and 88887.473590/2020-00 FAPERJ grants 22520-7/2016, 010002285/2019, and PDR-10 Fellowship 202073/2020; FAPPR grants 51152 and 51435.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Aldeida Aleti, Annibale Panichella, and Shin Yoo
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This article belongs to the Topical Collection: Advances in Search-Based Software Engineering (SSBSE)
Rights and permissions
About this article
Cite this article
Assunção, W.K.G., Colanzi, T.E., Carvalho, L. et al. Analysis of a many-objective optimization approach for identifying microservices from legacy systems. Empir Software Eng 27, 51 (2022). https://doi.org/10.1007/s10664-021-10049-7
Accepted:
Published:
DOI: https://doi.org/10.1007/s10664-021-10049-7