Skip to main content

A Decomposition and Metric-Based Evaluation Framework for Microservices

Part of the Communications in Computer and Information Science book series (CCIS,volume 1218)

Abstract

Migrating from monolithic systems into microservice is a very complex task. Companies are commonly decomposing the monolithic system manually, analyzing dependencies of the monolith and then assessing different decomposition options. The goal of our work is two-folded: 1) we provide a microservice measurement framework to objectively evaluate and compare the quality of microservices-based systems; 2) we propose a decomposition system based on business process mining. The microservice measurement framework can be applied independently from the decomposition process adopted, but is also useful to continuously evaluate the architectural evolution of a system. Results show that the decomposition framework helps companies to easily identify the different decomposition options. The measurement framework can help to decrease the subjectivity of the decision between different decomposition options and to evaluate architectural erosion in existing systems.

Keywords

  • Microservices
  • Cloud-native
  • Microservice slicing
  • Microservice decomposition
  • Microservice migration

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-030-49432-2_7
  • Chapter length: 17 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   64.99
Price excludes VAT (USA)
  • ISBN: 978-3-030-49432-2
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   84.99
Price excludes VAT (USA)
Fig. 1.
Fig. 2.
Fig. 3.
Fig. 4.

Notes

  1. 1.

    Structure101 Software Architecture Environment - http://www.structure101.com.

  2. 2.

    http://schemaspy.sourceforge.net/.

  3. 3.

    The Elastic APM Libraries. https://www.elastic.co/solutions/apm.

  4. 4.

    Dynatrace https://www.dynatrace.com.

  5. 5.

    Datadog https://www.datadoghq.com.

  6. 6.

    https://fluxicon.com/disco/.

References

  1. 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, IWSM Mensura 2017, pp. 107–115. ACM, New York (2017). https://doi.org/10.1145/3143434.3143443

  2. Chen, R., Li, S., Li, Z.: From monolith to microservices: a dataflow-driven approach. In: 2017 24th Asia-Pacific Software Engineering Conference (APSEC), pp. 466–475, December 2017

    Google Scholar 

  3. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)

    CrossRef  Google Scholar 

  4. De Alwis, A.A.C., Barros, A., Polyvyanyy, A., Fidge, C.: Function-splitting heuristics for discovery of microservices in enterprise systems. In: Pahl, C., Vukovic, M., Yin, J., Yu, Q. (eds.) ICSOC 2018. LNCS, vol. 11236, pp. 37–53. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03596-9_3

    CrossRef  Google Scholar 

  5. Deb, K.: Evolutionary algorithms for multi-criterion optimization in engineering design. In: EUROGEN 1999, pp. 135–161 (1999)

    Google Scholar 

  6. Fenton, N., Bieman, J.: Software Metrics: A Rigorous and Practical Approach, 3rd edn. CRC Press, Boca Raton (2014)

    CrossRef  Google Scholar 

  7. Fowler, M., Lewis, J.: Microservices (2014). http://martinfowler.com/articles/microservices.html

  8. Fritzsch, J., Bogner, J., Zimmermann, A., Wagner, S.: From monolith to microservices: a classification of refactoring approaches. In: Bruel, J.-M., Mazzara, M., Meyer, B. (eds.) DEVOPS 2018. LNCS, vol. 11350, pp. 128–141. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-06019-0_10

    CrossRef  Google Scholar 

  9. Gysel, M., Kölbener, L., Giersche, W., Zimmermann, O.: Service cutter: a systematic approach to service decomposition. In: Aiello, M., Johnsen, E.B., Dustdar, S., Georgievski, I. (eds.) ESOCC 2016. LNCS, vol. 9846, pp. 185–200. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-44482-6_12

    CrossRef  Google Scholar 

  10. Jabangwe, R., Börstler, J., Šmite, D., Wohlin, C.: Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review. Empir. Softw. Eng. 20(3), 640–693 (2014). https://doi.org/10.1007/s10664-013-9291-7

    CrossRef  Google Scholar 

  11. Kecskemeti, G., Marosi, A.C., Kertesz, A.: The entice approach to decompose monolithic services into microservices. In: 2016 International Conference on High Performance Computing Simulation (HPCS), pp. 591–596, July 2016

    Google Scholar 

  12. Khadka, R., Saeidi, A., Jansen, S., Hage, J., Haas, G.P.: Migrating a large scale legacy application to SOA: challenges and lessons learned. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 425–432, October 2013. https://doi.org/10.1109/WCRE.2013.6671318

  13. Kramer, S., Kaindl, H.: Coupling and cohesion metrics for knowledge-based systems using frames and rules. ACM Trans. Softw. Eng. Methodol. 13(3), 332–358 (2004)

    CrossRef  Google Scholar 

  14. Lehman, M.M.: On understanding laws, evolution, and conservation in the large-program life cycle. J. Syst. Softw. 1, 213–221 (1984). https://doi.org/10.1016/0164-1212(79)90022-0

    CrossRef  Google Scholar 

  15. Lenarduzzi, V., Sillitti, A., Taibi, D.: Analyzing forty years of software maintenance models. In: 39th International Conference on Software Engineering Companion, ICSE-C 2017, IEEE Press (2017). https://doi.org/10.1109/ICSE-C.2017.122

  16. Lenarduzzi, V., Stan, C., Taibi, D., Venters, G.: A dynamical quality model to continuously monitor software maintenance. In: 11th European Conference on Information Systems Management (ECISM) (2017)

    Google Scholar 

  17. Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall PTR, Upper Saddle River (2003)

    Google Scholar 

  18. Mikkonen, T., Systä, K.: Maximizing product value: continuous maintenance. In: Jedlitschka, A., Kuvaja, P., Kuhrmann, M., Männistö, T., Münch, J., Raatikainen, M. (eds.) PROFES 2014. LNCS, vol. 8892, pp. 298–301. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-13835-0_26

    CrossRef  Google Scholar 

  19. Newman, S.: Building Microservices, 1st edn. O’Reilly Media Inc., Newton (2015)

    Google Scholar 

  20. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    CrossRef  Google Scholar 

  21. Rahman, M., Taibi, D.: Microservice dependency graph (microdepgraph) (2019). https://github.com/clowee/MicroDepGraph

  22. Rahman, M., Taibi, D.: The microservice dependency graph dataset. In: Proceedings of the Joint Summer School on Software Evolution, Software Quality and Bug Prediction with Machine Learning. CEUR-WS, September 2019

    Google Scholar 

  23. Richardson, C.: Pattern: Microservice Architecture (2017). http://microservices.io/patterns/microservices.html

  24. Richardson, C.: The Scale Cube (2017). https://microservices.io/articles/scalecube.html

  25. Soldani, J., Tamburri, D.A., Heuvel, W.J.V.D.: The pains and gains of microservices: a systematic grey literature review. J. Syst. Softw. 146, 215–232 (2018)

    CrossRef  Google Scholar 

  26. Suonsyrjä, S., Mikkonen, T.: Designing an unobtrusive analytics framework for monitoring Java applications. In: Kobyliński, A., Czarnacka-Chrobot, B., Świerczek, J. (eds.) IWSM/Mensura -2015. LNBIP, vol. 230, pp. 160–175. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-24285-9_11

    CrossRef  Google Scholar 

  27. Taibi, D., Janes, A., Lenarduzzi, V.: How developers perceive smells in source code: a replicated study. Inf. Softw. Technol. 92, 223–235 (2017)

    CrossRef  Google Scholar 

  28. Taibi, D., Lenarduzzi, V.: On the definition of microservice bad smells. IEEE Softw. 35(3), 56–62 (2018)

    CrossRef  Google Scholar 

  29. Taibi, D., Lenarduzzi, V., Ahmad, M.O., Liukkunen, K.: Comparing communication effort within the scrum, scrum with Kanban, XP, and Banana development processes. In: Proceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering, EASE 2017, pp. 258–263 (2017)

    Google Scholar 

  30. Taibi, D., Lenarduzzi, V., Janes, A., Liukkunen, K., Ahmad, M.O.: Comparing requirements decomposition within the scrum, scrum with Kanban, XP, and Banana development processes. In: Agile Processes in Software Engineering and Extreme Programming, pp. 68–83 (2017)

    Google Scholar 

  31. Taibi, D., Lenarduzzi, V., Pahl, C.: Processes, motivations, and issues for migrating to microservices architectures: an empirical investigation. IEEE Cloud Comput. 4(5), 22–32 (2017)

    CrossRef  Google Scholar 

  32. Taibi, D., Lenarduzzi, V., Pahl, C.: Architectural patterns for microservices: a systematic mapping study. In: 8th International Conference on Cloud Computing and Services Science, CLOSER 2018 (2018)

    Google Scholar 

  33. Taibi, D., Lenarduzzi, V., Pahl, C.: Microservices anti-patterns: a taxonomy. IWSM/Mensura -2015. LNBIP, vol. 1073, pp. 111–128. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-31646-4_5

    CrossRef  Google Scholar 

  34. Taibi, D., Lenarduzzi, V., Pahl, C.: Continuous architecting with microservices and DevOps: a systematic mapping study. In: Muñoz, V.M., Ferguson, D., Helfert, M., Pahl, C. (eds.) CLOSER 2018. CCIS, vol. 1073, pp. 126–151. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-29193-8_7

    CrossRef  Google Scholar 

  35. Taibi, D., Lenarduzzi, V., Pahl, C., Janes, A.: Microservices in agile software development: a workshop-based study into issues, advantages, and disadvantages. In: XP Workshops, pp. 23:1–23:5. ACM (2017)

    Google Scholar 

  36. Taibi, D., Systa, K.: From monolithic systems to microservices: a decomposition framework based on process mining. In: 9th International Conference on Cloud Computing and Services Science, CLOSER 2019, Heraklion, Greece, 05 2019 (2019)

    Google Scholar 

  37. Tosi, D., Lavazza, L., Morasca, S., Taibi, D.: On the definition of dynamic software measures. In: ESEM, pp. 39–48. ACM (2012)

    Google Scholar 

  38. Vresk, T., Cavrak, I.: Architecture of an interoperable IoT platform based on microservices. In: MIPRO, pp. 1196–1201. IEEE (2016)

    Google Scholar 

  39. Zimmermann, O.: Microservices tenets. Comput. Sci. Res. Dev. 32(3), 301–310 (2016). https://doi.org/10.1007/s00450-016-0337-0

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Davide Taibi or Kari Systä .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Verify currency and authenticity via CrossMark

Cite this paper

Taibi, D., Systä, K. (2020). A Decomposition and Metric-Based Evaluation Framework for Microservices. In: Ferguson, D., Méndez Muñoz, V., Pahl, C., Helfert, M. (eds) Cloud Computing and Services Science. CLOSER 2019. Communications in Computer and Information Science, vol 1218. Springer, Cham. https://doi.org/10.1007/978-3-030-49432-2_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-49432-2_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-49431-5

  • Online ISBN: 978-3-030-49432-2

  • eBook Packages: Computer ScienceComputer Science (R0)