Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

On the Usefulness of Automatically Generated Microservice Architectures

Published: 01 February 2024 Publication History

Abstract

The modernization of monolithic legacy systems with microservices has been a trend in recent years. As part of this modernization, identifying microservice candidates starting from legacy code is challenging, as maintainers may consider many criteria simultaneously. Multi-objective search-based approaches represent a promising state-of-the-art solution to support this decision-making process. However, the rationale to adopt each microservice candidate automatically identified by these approaches is poorly investigated in industrial cases. Furthermore, studies with these approaches have not carefully investigated how maintainers reason and make decisions when designing microservice architectures from legacy systems. To address this gap, we conducted an on-site case study with maintainers of an industrial legacy system to investigate the usefulness of automatically generated microservice architectures. We analyze design decisions pointed out by the maintainers when reasoning about microservice candidates using several criteria at the same time. Our study is the first to assess a search-based approach involving actual maintainers conceiving microservice architectures in an industrial setting. Therefore, firstly, we considered individual evaluation of microservice candidates to understand the rationale for identifying a service. Secondly, we conducted a focus group study with maintainers with the goal of investigating design decisions at an architectural level. The results show that: <italic>(i)</italic> the automated approach is able to identify useful microservices; <italic>(ii)</italic> the criteria observed by previous studies are, in fact, considered by maintainers; and <italic>(iii)</italic> the maintainer profiles, i.e., the preferred granularity for microservice, highly affect design decisions. Finally, we observed the maintainers needed little effort in adjusting the automatically identified microservices to make them adoptable. In addition to indicating a promising potential of search-based approaches to generate microservice architectures, our findings highlight the need for: <italic>(i)</italic> interactive and/or customizable approaches that enable maintainers to include their preferences during the search process, and <italic>(ii)</italic> flexible or automated selection of criteria that fits the scenario in which the modernization is taking place.

References

[1]
J. Bisbal, D. Lawless, B. Wu, and J. Grimson, “Legacy information systems: Issues and directions,” IEEE Softw., vol. 16, no. 5, pp. 103–111, Sep. 1999.
[2]
J. Ransom, I. Somerville, and I. Warren, “A method for assessing legacy systems for evolution,” in Proc. 2nd Euromicro Conf. Softw. Maintenance Reeng., Mar. 1998, pp. 128–134.
[3]
L. P. Tizzei, M. Nery, V. C. V. B. Segura, and R. Cerqueira, “Using microservices and software product line engineering to support reuse of evolving multi-tenant SaaS,” in Proc. 21st Int. Syst. Softw. Product Line Conf. (SPLC), 2017, pp. 205–214.
[4]
W. Luz, E. Agilar, M. C. de Oliveira, C. E. R. de Melo, G. Pinto, and R. Bonifácio, “An experience report on the adoption of microservices in three Brazilian government institutions,” in Proc. XXXII Brazilian Symp. Softw. Eng. (SBES), New York, NY, USA: ACM, 2018, pp. 32–41.
[5]
D. Taibi, V. Lenarduzzi, and C. Pahl, “Processes, motivations, and issues for migrating to microservices architectures: An empirical investigation,” IEEE Cloud Comput., vol. 4, no. 5, pp. 22–32, Sep./Oct. 2017.
[6]
S. Fowler, Production-Ready Microservices. Sebastopol, CA, USA: O’Reilly Media, 2016.
[7]
C. Watson, S. Emmons, and B. Gregg, “A microscope on microservices,” Netflix, 2015. Accessed: Jul. 12, 2022. [Online]. Available: http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html
[8]
J. Gouigoux and D. Tamzalit, “From monolith to microservices: Lessons learned on an industrial migration to a web oriented architecture,” in Proc. Int. Conf. Softw. Archit. Workshops (ICSAW), 2017, pp. 62–65.
[9]
A. Bucchiarone, N. Dragoni, S. Dustdar, S. T. Larsen, and M. Mazzara, “From monolithic to microservices: An experience report from the banking domain,” IEEE Softw., vol. 35, no. 3, pp. 50–55, May/Jun. 2018.
[10]
D. Wolfart et al., “Modernizing legacy systems with microservices: A roadmap,” in Proc. 25th Eval. Assessment Softw. Eng., New York, NY, USA: ACM, 2021, pp. 149–159.
[11]
S. Newman, Building Microservices: Designing Fine-Grained Systems. O’Reilly Media, Inc., 2015.
[12]
L. Carvalho, A. Garcia, W. K. G. Assuncão, R. de Mello, and M. J. de Lima, “Analysis of the criteria adopted in industry to extract microservices,” in Proc. 7th Int. Workshop Conducting Empirical Stud. Ind. 6th Int. Workshop Softw. Eng. Res. Ind. Pract., Piscataway, NJ, USA: IEEE Press, 2019, pp. 22–29.
[13]
L. Carvalho, A. Garcia, W. K. G. Assuncão, R. Bonifácio, L. P. Tizzei, and T. E. Colanzi, “Extraction of configurable and reusable microservices from legacy systems: An exploratory study,” in Proc. 23rd Int. Syst. Softw. Product Line Conf. Vol. A (SPLC), New York, NY, USA: ACM, 2019, pp. 26–31.
[14]
W. K. Assuncão et al., “A multi-criteria strategy for redesigning legacy features as microservices: An industrial case study,” in Proc. IEEE Int. Conf. Softw. Anal., Evolution Reeng. (SANER), Piscataway, NJ, USA: IEEE Press, 2021, pp. 377–387.
[15]
P. D. Francesco, P. Lago, and I. Malavolta, “Migrating towards microservice architectures: An industrial survey,” in Proc. Int. Conf. Softw. Archit. (ICSA), 2018, pp. 29:01–29:09.
[16]
Y. Abgaz et al., “Decomposition of monolith applications into microservices architectures: A systematic review,” IEEE Trans. Softw. Eng., vol. 49, no. 8, pp. 4213–4242, Aug. 2023.
[17]
W. Jin, T. Liu, Q. Zheng, D. Cui, and Y. Cai, “Functionality-oriented microservice extraction based on execution trace clustering,” in Proc. Int. Conf. Web Services (ICWS), 2018, pp. 211–218.
[18]
W. Jin, T. Liu, Y. Cai, R. Kazman, R. Mo, and Q. Zheng, “Service candidate identification from monolithic systems based on execution traces,” IEEE Trans. Softw. Eng., vol. 47, no. 5, pp. 987–1007, May 2021.
[19]
A. K. Kalia et al., “Mono2Micro: An AI-based toolchain for evolving monolithic enterprise applications to a microservice architecture,” in Proc. 28th ACM Joint Meeting Eur. Softw. Eng. Conf. Symp. Found. Softw. Eng., 2020, pp. 1606–1610.
[20]
Y. Zhang, B. Liu, L. Dai, K. Chen, and X. Cao, “Automated microservice identification in legacy systems with functional and non-functional metrics,” in Proc. IEEE Int. Conf. Softw. Archit. (ICSA), Mar. 2020, pp. 135–145.
[21]
L. Carvalho et al., “On the performance and adoption of search-based microservice identification with toMicroservices,” in Proc. 36th IEEE Int. Conf. Softw. Maintenance Evolution (ICSME), 2020, pp. 569–580.
[22]
I. Saidani, A. Ouni, M. W. Mkaouer, and A. Saied, “Towards automated microservices extraction using multi-objective evolutionary search,” in Proc. 17th Int. Conf. Service-Oriented Comput., New York, NY, USA: Springer-Verlag, 2019, pp. 58–63.
[23]
Y. Zhang, B. Liu, L. Dai, K. Chen, and X. Cao, “Automated microservice identification in legacy systems with functional and non-functional metrics,” in Proc. IEEE Int. Conf. Softw. Archit. (ICSA), Piscataway, NJ, USA: IEEE Press, 2020, pp. 135–145.
[24]
A. Christoforou, L. Odysseos, and A. Andreou, “Migration of software components to microservices: Matching and synthesis,” in Proc. 14th Int. Conf. Eval. Novel Approaches Softw. Eng., Setúbal, Portugal: SciTePress, 2019, pp. 134–146.
[25]
S. Eski and F. Buzluca, “An automatic extraction approach: Transition to microservices architecture from monolithic application,” in Proc. 19th Int. Conf. Agile Softw. Develop.: Companion, New York, NY, USA: ACM, 2018, pp. 25: 1–25:6.
[26]
S. Khoshnevis, “A search-based identification of variable microservices for enterprise SaaS,” Frontiers Comput. Sci., vol. 17, no. 3, 2023, Art. no.
[27]
G. Mazlami, J. Cito, and P. Leitner, “Extraction of microservices from monolithic software architectures,” in Proc. Int. Conf. Web Services (ICWS), Piscataway, NJ, USA: IEEE Press, 2017, pp. 524–531.
[28]
D. Escobar et al., “Towards the understanding and evolution of monolithic applications as microservices,” in Proc. XLII Latin Amer. Comput. Conf. (CLEI), Piscataway, NJ, USA: IEEE Press, 2016, pp. 1–11.
[29]
J. Lewis and M. Fowler, “Microservices,” martinFowler.com, 2014. Accessed: Jul. 12, 2022. [Online]. Available: https://martinfowler.com/articles/microservices.html
[30]
J. Kontio, J. Bragge, and L. Lehtola, The Focus Group Method as an Empirical Tool in Software Engineering. New York, NY, USA: Springer-Verlag, 2008, pp. 93–116.
[31]
W. K. Assuncão, J. Krüger, S. Mosser, and S. Selaoui, “How do microservices evolve? An empirical analysis of changes in open-source microservice repositories,” J. Syst. Softw., vol. 204, Oct. 2023, Art. no.
[32]
P. Di Francesco, P. Lago, and I. Malavolta, “Architecting with microservices: A systematic mapping study,” J. Syst. Softw., vol. 150, pp. 77–97, Apr. 2019.
[33]
T. Colanzi et al., “Are we speaking the industry language? The practice and literature of modernizing legacy systems with microservices,” in Proc. 15th Brazilian Symp. Softw. Compon., Architect., Reuse, 2021, pp. 61–70.
[34]
M. Harman and B. F. Jones, “Search-based software engineering,” Inf. Softw. Technol., vol. 43, no. 14, pp. 833–839, 2001.
[35]
T. E. Colanzi, W. K. Assuncão, S. R. Vergilio, P. R. Farah, and G. Guizzo, “The symposium on search-based software engineering: Past, present and future,” Inf. Softw. Technol., vol. 127, 2020, Art. no.
[36]
M. Harman, S. A. Mansouri, and Y. Zhang, “Search-based software engineering: Trends, techniques and applications,” ACM Comput. Surv., vol. 45, no. 1, pp. 11:1–11:61, Dec. 2012.
[37]
W. K. Assuncao et al., “Analysis of a many-objective optimization approach for identifying microservices from legacy systems,” Empirical Softw. Eng. (EMSE), vol. 27, 2022, Art. no.
[38]
R. M. de Mello, “Conceptual framework for supporting the identification of representative samples for surveys in software engineering,” Ph.D. dissertation, Federal Univ. Rio de Janeiro, Rio de Janeiro, Brazil, 2016.
[39]
U. Van Heesch, T. Theunissen, O. Zimmermann, and U. Zdun, “Software specification and documentation in continuous software development: A focus group report,” in Proc. 22nd Eur. Conf. Pattern Lang. Programs, 2017, pp. 1–13.
[40]
L. F. Junionello, R. de Mello, R. Oliveira, L. Sousa, A. López, and A. Garcia, “Revealing developers’ arguments on validating the incidence of code smells: A focus group experience,” in Proc. Anais do IX Workshop de Visualizacão, Evolucão e Manutencão de Softw., Porto Alegre, Brazil: SBC, 2021, pp. 31–35.
[41]
R. de Mello et al., “Recommendations for developers identifying code smells,” IEEE Softw., vol. 40, no. 2, pp. 90–98, Mar./Apr. 2023.
[42]
A. Arcuri and L. Briand, “A Hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering,” Softw. Testing, Verification Rel., vol. 24, no. 3, pp. 219–250, 2014.
[43]
T. E. Colanzi, W. K. G. Assuncão, P. R. Farah, S. R. Vergilio, and G. Guizzo, “A review of ten years of the symposium on search-based software engineering,” in Search-Based Software Engineering. New York, NY, USA: Springer-Verlag, 2019, pp. 42–57.
[44]
W. K. Assuncão, J. Krüger, and W. D. Mendonca, “Variability management meets microservices: Six challenges of re-engineering microservice-based webshops,” in Proc. 24th ACM Conf. Syst. Softw. Product Line: Vol. A, 2020, pp. 1–6.
[45]
R. Nakazawa, T. Ueda, M. Enoki, and H. Horii, “Visualization tool for designing microservices with the monolith-first approach,” in Proc. IEEE Work. Conf. Softw. Vis., 2018, pp. 32–42.
[46]
C. Wohlin, P. Runeson, M. Host, M. Ohlsson, B. Regnell, and A. Wesslen, Experimentation in Software Engineering: An Introduction, Berlin, Germany: Springer, 2000.
[47]
H. Knoche and W. Hasselbring, “Using microservices for legacy software modernization,” IEEE Softw., vol. 35, no. 3, pp. 44–49, May/Jun. 2018.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 50, Issue 3
March 2024
309 pages

Publisher

IEEE Press

Publication History

Published: 01 February 2024

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Nov 2024

Other Metrics

Citations

View Options

View options

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media