Abstract
A microservice architecture has become the dominant direction for designing the building blocks of large-scale, distributed software systems. However, the dynamic and changing microservices within decentralized systems in contrast to available static tracing tools presents challenges for comprehending its impact on the overall architecture. Existing tracing tools uncover service call graphs but have limitations in visualizing historical changes; moreover, they are not meant to aid with architecture assessment where developers seek potential design anomalies. With the ever-growing system complexity, developers likely resort to focusing on specific subsets of the system, especially given the lack of tools to analyze the impacts of system evolution. To address these challenges, we introduce the MicroProspect tool that provides a high-level, holistic visual perspective on the system’s service view, tracks its structural changes throughout system evolution, and detects and visualizes anti-patterns that could lead to architectural degradation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
MicroProspect Source Code: https://github.com/cloudhubs/mvp.
- 2.
MicroProspect Demo: https://youtu.be/HXSB4uAxRH4.
- 3.
- 4.
MicroProspect Tool: https://cloudhubs.ecs.baylor.edu/mavp.
References
Jaeger: Open source, distributed tracing platform. https://www.jaegertracing.io/. Accessed Nov 17 2023
Abdelfattah, A.S., Cerny, T., Taibi, D., Vegas, S.: Comparing 2D and augmented reality visualizations for microservice system understandability: A controlled experiment. In: 2023 IEEE/ACM 31st International Conference on Program Comprehension (ICPC), pp. 135–145 (2023). https://doi.org/10.1109/ICPC58990.2023.00028
Abdelfattah, A.S., Cerny, T.: The microservice dependency matrix. In: Papadopoulos, G.A., Rademacher, F., Soldani, J. (eds.) Service-Oriented and Cloud Computing: 10th IFIP WG 6.12 European Conference, ESOCC 2023, Larnaca, Cyprus, October 24–25, 2023, Proceedings, pp. 276–288. Springer Nature Switzerland, Cham (2023). https://doi.org/10.1007/978-3-031-46235-1_19
Abdelfattah, A.S., Cerny, T.: Roadmap to reasoning in microservice systems: a rapid review. Appl. Sci. 13(3), 1838 (2023)
Baabad, A., Zulzalil, H.B., Hassan, S., Baharom, S.B.: Software architecture degradation in open source software: a systematic literature review. IEEE Access 8, 173681–173709 (2020). https://doi.org/10.1109/ACCESS.2020.3024671
Bakhtin, A., Li, X., Soldani, J., Brogi, A., Tomas, C., Taibi, D.: Tools reconstructing microservice architecture: A systematic mapping study. In: Agility with Microservices Programming, co-located with ECSA 2023 (2023)
Bogner, J., Fritzsch, J., Wagner, S., Zimmermann, A.: Limiting technical debt with maintainability assurance - an industry survey on used techniques and differences with service- and microservice-based systems. In: 2018 IEEE/ACM International Conference on Technical Debt (TechDebt), pp. 125–133 (2018)
Bogner, J., Wagner, S., Zimmermann, A.: Automatically measuring the maintainability of service-and microservice-based systems - a literature review (10 2017). https://doi.org/10.1145/3143434.3143443
Bushong, V., Das, D., Cerny, T.: Reconstructing the holistic architecture of microservice systems using static analysis. In: Proceedings of the 12th International Conference on Cloud Computing and Services Science-CLOSER (2022)
Campbell, G.A., Papapetrou, P.P.: SonarQube in Action, 1st edn. Manning Publications Co., USA (2013)
Cerny, T., Abdelfattah, A.S., Bushong, V., Al Maruf, A., Taibi, D.: Microservice architecture reconstruction and visualization techniques: A review. In: 2022 IEEE International Conference on Service-Oriented System Engineering (SOSE), pp. 39–48. IEEE (2022)
Cerny, T., Abdelfattah, A.S., Bushong, V., Al Maruf, A., Taibi, D.: Microvision: Static analysis-based approach to visualizing microservices in augmented reality. In: 2022 IEEE International Conference on Service-Oriented System Engineering (SOSE), pp. 49–58 (2022). https://doi.org/10.1109/SOSE55356.2022.00012
Cerny, T., Abdelfattah, A.S., Maruf, A.A., Janes, A., Taibi, D.: Catalog and detection techniques of microservice anti-patterns and bad smells: a tertiary study. J. Syst. Softw. 206, 111829 (2023). https://doi.org/10.1016/j.jss.2023.111829, https://www.sciencedirect.com/science/article/pii/S0164121223002248
Cerny, T., Maruf, A., Janes, A., Taibi, D.: Microservice anti-patterns and bad smells. how to classify, and how to detect them. a tertiary study. SSRN Electronic Journal (01 2023). https://doi.org/10.2139/ssrn.4328067
Cerny, T., et al.: On code analysis opportunities and challenges for enterprise systems and microservices. IEEE access 8, 159449–159470 (2020)
Cerny, T., Taibi, D.: e static analysis: opportunities, gaps, and advancements. In: Joint Post-proceedings of the Third and Fourth International Conference on Microservices (Microservices 2020/2022). Schloss Dagstuhl–Leibniz-Zentrum für Informatik GmbH (2023)
Conway, M.E.: How do committees invent? Datamation (April 1967)
Engel, T., Langermeier, M., Bauer, B., Hofmann, A.: Evaluation of microservice architectures: a metric and tool-based approach. In: Mendling, J., Mouratidis, H. (eds.) Information Systems in the Big Data Era: CAiSE Forum 2018, Tallinn, Estonia, June 11-15, 2018, Proceedings, pp. 74–89. Springer International Publishing, Cham (2018). https://doi.org/10.1007/978-3-319-92901-9_8
Fontana, F.A., Roveda, R., Zanoni, M.: Tool support for evaluating architectural debt of an existing system: an experience report. In: Proceedings of the 31st Annual ACM Symposium on Applied Computing, pp. 1347–1349. SAC ’16, ACM (2016). https://doi.org/10.1145/2851613.2851963
de Freitas Apolinário, D.R., de França, B.B.N.: Towards a method for monitoring the coupling evolution of microservice-based architectures. In: Proceedings of the 14th Brazilian Symposium on Software Components, Architectures, and Reuse, pp. 71-80. SBCARS ’20, ACM (2020). https://doi.org/10.1145/3425269.3425273
Gaidels, E., Kirikova, M.: Service dependency graph analysis in microservice architecture. In: Buchmann, R.A., Polini, A., Johansson, B., Karagiannis, D. (eds.) Perspectives in Business Informatics Research: 19th International Conference on Business Informatics Research, BIR 2020, Vienna, Austria, September 21–23, 2020, Proceedings, pp. 128–139. Springer International Publishing, Cham (2020). https://doi.org/10.1007/978-3-030-61140-8_9
Gamage, I.U.P., Perera, I.: Using dependency graph and graph theory concepts to identify anti-patterns in a microservices system: a tool-based approach. In: 2021 Moratuwa Engineering Research Conference (MERCon), pp. 699–704 (2021). https://doi.org/10.1109/MERCon52712.2021.9525743
Gortney, M.E., et al.: Visualizing microservice architecture in the dynamic perspective: a systematic mapping study. IEEE Access (2022)
Granchelli, G., Cardarelli, M., Francesco, P., Malavolta, I., Iovino, L., Di Salle, A.: Towards recovering the software architecture of microservice-based systems, pp. 46–53 (04 2017). https://doi.org/10.1109/ICSAW.2017.48
Huizinga, A., Parker, G., Abdelfattah, A.S., Li, X., Cerny, T., Taibi, D.: Detecting microservice anti-patterns using interactive service call graphs: effort assessment. In: Han, H., Baker, E. (eds.) Next Generation Data Science: Second Southwest Data Science Conference, SDSC 2023, Waco, TX, USA, March 24–25, 2023, Revised Selected Papers, pp. 212–227. Springer Nature Switzerland, Cham (2024). https://doi.org/10.1007/978-3-031-61816-1_15
Janes, A., Li, X., Lenarduzzi, V.: Open tracing tools: overview and critical comparison. J. Syst. Softw. 204, 111793 (2023). https://doi.org/10.1016/j.jss.2023.111793,https://www.sciencedirect.com/science/article/pii/S0164121223001887
Lenarduzzi, V., Lomio, F., Saarimäki, N., Taibi, D.: Does migrating a monolithic system to microservices decrease the technical debt? J. Syst. Softw. 169, 110710 (2020). https://doi.org/10.1016/j.jss.2020.110710
Ma, S.P., Fan, C.Y., Chuang, Y., Liu, I.H., Lan, C.W.: Graph-based and scenario-driven microservice analysis, retrieval, and testing. Future Gener. Comput. Syst. 100, 724–735 (11 2019). https://doi.org/10.1016/j.future.2019.05.048
Parker, G., et al.: Visualizing anti-patterns in microservices at runtime: a systematic mapping study. IEEE Access 11, 4434–4442 (2023). https://doi.org/10.1109/ACCESS.2023.3236165
Riaz, M., Sulayman, M., Naqvi, H.: Architectural decay during continuous software evolution and impact of ‘design for change’ on software architecture, pp. 119–126. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-10619-4_15
Roveda, R., Arcelli Fontana, F., Pigazzini, I., Zanoni, M.: Towards an architectural debt index. In: 2018 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pp. 408–416 (2018). https://doi.org/10.1109/SEAA.2018.00073
Schiewe, M., Curtis, J., Bushong, V., Cerny, T.: Advancing static code analysis with language-agnostic component identification. IEEE Access 10, 30743–30761 (2022)
Schmitt Laser, M., Medvidovic, N., Le, D.M., Garcia, J.: Arcade: an extensible workbench for architecture recovery, change, and decay evaluation. In: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pp. 1546–1550. ESEC/FSE 2020, ACM (2020). https://doi.org/10.1145/3368089.3417941
Sigelman, B.H., et al.: Dapper, a large-scale distributed systems tracing infrastructure. Tech. rep., Google, Inc. (2010). https://research.google.com/archive/papers/dapper-2010-1.pdf
Taibi, D., Lenarduzzi, V.: On the definition of microservice bad smells. IEEE Softw. 35(3), 56–62 (2018). https://doi.org/10.1109/MS.2018.2141031
Taibi, D., Lenarduzzi, V., Pahl, C.: Microservices anti-patterns: a taxonomy. In: Bucchiarone, A., Dragoni, N., Dustdar, S., Lago, P., Mazzara, M., Rivera, V., Sadovykh, A. (eds.) Microservices: Science and Engineering, pp. 111–128. Springer International Publishing, Cham (2020). https://doi.org/10.1007/978-3-030-31646-4_5
Xiao, L., Cai, Y., Kazman, R., Mo, R., Feng, Q.: Identifying and quantifying architectural debt. In: Proceedings of the 38th International Conference on Software Engineering, pp. 488–498. ICSE ’16, ACM (2016). https://doi.org/10.1145/2884781.2884822
Zhou, X., et al.: Benchmarking microservice systems for software engineering research. In: The 40th International Conference on Software Engineering, pp. 323–324. ICSE ’18, ACM (2018). https://doi.org/10.1145/3183440.3194991
Acknowledgements
This material is based upon work supported by the National Science Foundation under Grant No. 2409933, and a grant from the Academy of Finland (grant n. 349488 - MuFAno).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Adams, L. et al. (2024). Evolution and Anti-patterns Visualized: MicroProspect in Microservice Architecture. In: Tekinerdoğan, B., Spalazzese, R., Sözer, H., Bonfanti, S., Weyns, D. (eds) Software Architecture. ECSA 2023 Tracks, Workshops, and Doctoral Symposium. ECSA 2023. Lecture Notes in Computer Science, vol 14590. Springer, Cham. https://doi.org/10.1007/978-3-031-66326-0_19
Download citation
DOI: https://doi.org/10.1007/978-3-031-66326-0_19
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-66325-3
Online ISBN: 978-3-031-66326-0
eBook Packages: Computer ScienceComputer Science (R0)Springer Nature Proceedings Computer Science