Skip to main content
Log in

Analysis of a many-objective optimization approach for identifying microservices from legacy systems

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Listing 1
Listing 2
Fig. 3
Fig. 4

Similar content being viewed by others

Notes

  1. http://jmetal.sourceforge.net/

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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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-

    Google Scholar 

  • 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

    Article  Google Scholar 

  • Cochrane J, Zeleny M (1973) Multiple criteria decision making. University of South Carolina Press, Columbia

    Google Scholar 

  • Coello CAC, Lamont GB, Van Veldhuizen DA, et al. (2007) Evolutionary algorithms for solving multi-objective problem. Springer Science & Business Media, Berlin

    MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Di Francesco P, Lago P, Malavolta I (2019) Architecting with microservices: A systematic mapping study. J Syst Softw 150:77–97

    Article  Google Scholar 

  • Dragoni N, Giallorenzo S, Lafuente AL, Mazzara M, Montesi F, Mustafin R, Safina L (2017) Microservices: yesterday, today, and tomorrow. Springer International Publishing, Cham

    Google Scholar 

  • Durillo JJ, Nebro AJ (2011) jmetal: A java framework for multi-objective optimization. Adv Eng Softw 42(10):760–771

    Article  Google Scholar 

  • 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

    MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Book  Google Scholar 

  • Hinkle DE, Wiersma W, Jurs SG (2002) Applied statistics for the behavioral sciences, 5th edn. Cengage Learning, Boston

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  MathSciNet  Google Scholar 

  • Spearman C (1904) The proof and measurement of association between two things. Am J Psychol 15(1):72–101

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Welch BL (1947) The generalization of student’s problem when several different population variances are involved. Biometrika 34(1/2):28–35

    Article  MathSciNet  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Wesley K. G. Assunção.

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10664-021-10049-7

Keywords

Navigation