Skip to main content

Exploring Architectural Evolution in Microservice Systems Using Repository Mining Techniques and Static Code Analysis

  • Conference paper
  • First Online:
Software Architecture (ECSA 2024)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14889))

Included in the following conference series:

  • 687 Accesses

Abstract

Microservices have gained popularity for isolating service functionality and mitigating issues such as architectural erosion and technical debt. However, their decentralized nature and rapid development often obscure the holistic view of the system and lead developers to lose sight of the overarching architecture. Our work addresses this challenge by proposing a novel approach to track and assess the evolution of microservice architectures through static source code analysis. We combine source code repository mining techniques with architectural reconstruction to measure various metrics throughout a system’s development history. Our approach uses a formal API-based decomposition model that can easily be adapted for different scenarios by choosing various architectural metrics. We validated our method’s scalability and robustness through a case study on an extensive open-source microservice reference system with more than 40 individual services written in different languages and more than 400 commits. Our research provides software architects with a powerful tool to identify and monitor problematic architectural trends before they become imminent threats, enabling the evolution of microservice-based systems while maintaining architectural coherence and integrity.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Data Availability Statement

We offer the whole source code and data of our study in a data set published on Zenodo: https://doi.org/10.5281/zenodo.10961768.

Notes

  1. 1.

    https://github.com/FudanSELab/train-ticket.

  2. 2.

    https://github.com/FudanSELab/train-ticket/wiki/Service-Guide-and-API-Reference.

  3. 3.

    see, for instance, this curated list of various microservice open source systems: https://github.com/davidetaibi/Microservices_Project_List.

References

  1. Godfrey, M.W., German, D.M.: The past, present, and future of software evolution. In: 2008 Frontiers of Software Maintenance, pp. 129–138. IEEE (2008)

    Google Scholar 

  2. Whiting, E., Andrews, S.: Drift and erosion in software architecture: summary and prevention strategies. In: Proceedings of the 2020 the 4th International Conference on Information System and Data Mining, pp. 132–138 (2020)

    Google Scholar 

  3. Baum, D., Dietrich, J., Anslow, C., Müller, R.: Visualizing design erosion: how big balls of mud are made. In: 2018 IEEE Working Conference on Software Visualization (VISSOFT), pp. 122–126. IEEE (2018)

    Google Scholar 

  4. Rios, N., Spínola, R.O., Mendonça, M., Seaman, C.: The most common causes and effects of technical debt: first results from a global family of industrial surveys. In: Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 1–10 (2018)

    Google Scholar 

  5. De Silva, L., Balasubramaniam, D.: Controlling software architecture erosion: a survey. J. Syst. Softw. 85(1), 132–151 (2012)

    Article  Google Scholar 

  6. Dragoni, N., Giallorenzo, S., Lafuente, A.L., Mazzara, M., Montesi, F., Mustafin, R., Safina, L.: Microservices: yesterday, today, and tomorrow. In: Present and Ulterior Software Engineering, pp. 195–216. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67425-4_12

    Chapter  Google Scholar 

  7. Newman, S.: Building Microservices. O’Reilly Media, Inc., Newton (2021)

    Google Scholar 

  8. 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: Proceedings of the 2018 International Conference on Technical Debt, pp. 125–133 (2018)

    Google Scholar 

  9. Bogner, J., Wagner, S., Zimmermann, A.: Automatically measuring the maintainability of service-and microservice-based systems: a literature review. In: Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement, pp. 107–115 (2017)

    Google Scholar 

  10. Zdun, U., Navarro, E., Leymann, F.: Ensuring and assessing architecture conformance to microservice decomposition patterns. In: Maximilien, M., Vallecillo, A., Wang, J., Oriol, M. (eds.) ICSOC 2017. LNCS, vol. 10601, pp. 411–429. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-69035-3_29

    Chapter  Google Scholar 

  11. Walker, A., Das, D., Cerny, T.: Automated code-smell detection in microservices through static analysis: a case study. Appl. Sci. 10(21), 7800 (2020)

    Article  Google Scholar 

  12. Ma, S.-P., Fan, C.-Y., Chuang, Y., Liu, I.-H., Lan, C.-W.: Graph-based and scenario-driven microservice analysis, retrieval, and testing. Futur. Gener. Comput. Syst. 100, 724–735 (2019)

    Article  Google Scholar 

  13. de Toledo, S.S., Martini, A., Przybyszewska, A., Sjøberg, D.I.: Architectural technical debt in microservices: a case study in a large company. In: 2019 IEEE/ACM International Conference on Technical Debt, pp. 78–87. IEEE (2019)

    Google Scholar 

  14. Ducasse, S., Pollet, D.: Software architecture reconstruction: a process-oriented taxonomy. IEEE Trans. Softw. Eng. 35(4), 573–591 (2009)

    Article  Google Scholar 

  15. 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)

    Google Scholar 

  16. Bushong, V., Das, D., Al Maruf, A., Cerny, T.: Using static analysis to address microservice architecture reconstruction. In: 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 1199–1201. IEEE (2021)

    Google Scholar 

  17. Bushong, V., Das, D., Cernỳ, T.: Reconstructing the holistic architecture of microservice systems using static analysis. In: CLOSER, pp. 149–157 (2022)

    Google Scholar 

  18. Barnes, J.M., Garlan, D., Schmerl, B.: Evolution styles: foundations and models for software architecture evolution. Softw. Syst. Model. 13, 649–678 (2014)

    Article  Google Scholar 

  19. Moreira, M.G., De França, B.B.N.: Analysis of microservice evolution using cohesion metrics. In: Proceedings of the 16th Brazilian Symposium on Software Components, Architectures, and Reuse, pp. 40–49 (2022)

    Google Scholar 

  20. Tizzei, L.P., Azevedo, L., Soares, E., Thiago, R., Costa, R.: On the maintenance of a scientific application based on microservices: an experience report. In: 2020 IEEE International Conference on Web Services (ICWS), pp. 102–109. IEEE (2020)

    Google Scholar 

  21. Sampaio, A.R., et al.: Supporting microservice evolution. In: 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 539–543. IEEE (2017)

    Google Scholar 

  22. He, X., Shao, Z., Wang, T., Shi, H., Chen, Y., Wang, Z.: Predicting effect and cost of microservice system evolution using graph neural network. In: Monti, F., Rinderle-Ma, S., Ruiz Cortes, A., Zheng, Z., Mecella, M. (eds.) International Conference on Service-Oriented Computing, pp. 103–118. Springer, Heidelberg (2023). https://doi.org/10.1007/978-3-031-48421-6_8

    Chapter  Google Scholar 

  23. Stocker, M., Zimmermann, O.: From code refactoring to API refactoring: agile service design and evolution. In: Barzen, J. (ed.) SummerSOC 2021. CCIS, vol. 1429, pp. 174–193. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-87568-8_11

    Chapter  Google Scholar 

  24. Lercher, A., Glock, J., Macho, C., Pinzger, M.: Microservice api evolution in practice: a study on strategies and challenges. arXiv:2311.08175 (2023)

  25. Assunção, W.K., Krüger, J., Mosser, S., Selaoui, S.: How do microservices evolve? an empirical analysis of changes in open-source microservice repositories. J. Syst. Softw. 204, 111788 (2023)

    Article  Google Scholar 

  26. Heseding, F., Scheibel, W., Döllner, J.: Tooling for time-and space-efficient git repository mining. In: Proceedings of the 19th International Conference on Mining Software Repositories, pp. 413–417 (2022)

    Google Scholar 

  27. Kolassa, C., Riehle, D., Salim, M.A.: A model of the commit size distribution of open source. In: van Emde Boas, P., Groen, F.C.A., Italiano, G.F., Nawrocki, J., Sack, H. (eds.) SOFSEM 2013. LNCS, vol. 7741, pp. 52–66. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35843-2_6

    Chapter  Google Scholar 

  28. Rosik, J., Le Gear, A., Buckley, J., Babar, M. A., Connolly, D.: Assessing architectural drift in commercial software development: a case study. Softw. Pract. Exp. 41(1), 63–86 (2011)

    Google Scholar 

  29. Ntentos, E.: Detector-based component model abstraction for microservice-based systems. Computing 103(11), 2521–2551 (2021)

    Article  MathSciNet  Google Scholar 

  30. Genfer, P., Zdun, U.: Identifying domain-based cyclic dependencies in microservice APIs using source code detectors. In: Biffl, S., Navarro, E., Löwe, W., Sirjani, M., Mirandola, R., Weyns, D. (eds.) ECSA 2021. LNCS, vol. 12857, pp. 207–222. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-86044-8_15

    Chapter  Google Scholar 

  31. Hirzalla, M., Cleland-Huang, J., Arsanjani, A.: A metrics suite for evaluating flexibility and complexity in service oriented architectures. In: Feuerlicht, G., Lamersdorf, W. (eds.) ICSOC 2008. LNCS, vol. 5472, pp. 41–52. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-01247-1_5

    Chapter  Google Scholar 

  32. Ntentos, E., Zdun, U., Plakidas, K., Meixner, S., Geiger, S.: Assessing architecture conformance to coupling-related patterns and practices in microservices. In: Jansen, A., Malavolta, I., Muccini, H., Ozkaya, I., Zimmermann, O. (eds.) ECSA 2020. LNCS, vol. 12292, pp. 3–20. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-58923-3_1

    Chapter  Google Scholar 

  33. p Zhou, X., et al.: Benchmarking microservice systems for software engineering research. In: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, ser. ICSE 2018, pp. 323–324. Association for Computing Machinery, New York (2018). https://doi.org/10.1145/3183440.3194991

  34. Li, B., Peng, X., Xiang, Q., Wang, H., Xie, T., Sun, J., Liu, X.: Enjoy your observability: an industrial survey of microservice tracing and analysis. Empir. Softw. Eng. 27, 1–28 (2022)

    Article  Google Scholar 

  35. Zhang, C., et al.: Deeptralog: trace-log combined microservice anomaly detection through graph-based deep learning. In: Proceedings of the 44th International Conference on Software Engineering, pp. 623–634 (2022)

    Google Scholar 

Download references

Acknowledgments

This work was supported by: FWF (Austrian Science Fund) projects API-ACE: I 4268.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Patric Genfer .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Genfer, P., Zdun, U. (2024). Exploring Architectural Evolution in Microservice Systems Using Repository Mining Techniques and Static Code Analysis. In: Galster, M., Scandurra, P., Mikkonen, T., Oliveira Antonino, P., Nakagawa, E.Y., Navarro, E. (eds) Software Architecture. ECSA 2024. Lecture Notes in Computer Science, vol 14889. Springer, Cham. https://doi.org/10.1007/978-3-031-70797-1_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-70797-1_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-70796-4

  • Online ISBN: 978-3-031-70797-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics