Skip to main content

Digital Transformation and the Role of Dynamic Tooling in Extracting Microservices from Existing Software Systems

  • Conference paper
  • First Online:
Systems, Software and Services Process Improvement (EuroSPI 2021)

Abstract

The emergence of microservices architecture has promised to offer scalable, maintainable, evolvable, agile, and failure-resilient software products attracting software companies to migrate their legacy systems to a microservices architecture. However, the migration process imposes a technical challenge to effectively identify potential microservice candidates from medium and large monolithic codebases. In recent years, automatic and semi-automatic migration methods analysing the static and the dynamic behaviour of monoliths at runtime are getting a growing attention. Along with the methods, dynamic data collection tools are proposed. In this paper, we systematically review, compare, and contrast dynamic data collection tools using criteria that were developed from existing studies on monolithic to microservice migration. We identified eight dynamic data collection tools and analysed the features using four open source codebases from Github. The paper further presents an in-depth study of two fitting tools applying them over the selected codebases. Such analysis enables researchers and practitioners to make informed decisions in the selection of dynamic data collection tools to automatically/semi-automatically migrate legacy codebases.

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

Notes

  1. 1.

    https://kieker-monitoring.net/.

  2. 2.

    https://github.com/gousiosg/java-callgraph.

  3. 3.

    https://github.com/jazzband/django-silk.

  4. 4.

    https://github.com/dbeaver/dbeaver.

  5. 5.

    https://www.ej-technologies.com/products/jprofiler/overview.html.

  6. 6.

    https://github.com/aragozin/jvm-tools.

  7. 7.

    https://github.com/openzipkin/brave.

  8. 8.

    https://github.com/eclipse/eclipse.jdt.ls.

References

  1. Abdullah, M., Iqbal, W., Erradi, A.: Unsupervised learning approach for web application auto-decomposition into microservices. J. Syst. Softw. 151, 243–257 (2019)

    Article  Google Scholar 

  2. Aguilar, J., Sanchez, M., Fernandez-y Fernandez, C., Rocha, E., Martinez, D., Figueroa, J.: The size of software projects developed by Mexican companies. arXiv preprint arXiv:1408.1068 (2014)

  3. Aman, W.: A framework for analysis and comparison of dynamic malware analysis tools. arXiv preprint arXiv:1410.2131 (2014)

  4. Beimborn, D., Miletzki, T., Wenzel, S.: Platform as a service (PaaS). Bus. Inf. Syst. Eng. 3(6), 381–384 (2011)

    Article  Google Scholar 

  5. Brereton, P., Kitchenham, B.A., Budgen, D., Turner, M., Khalil, M.: Lessons from applying the systematic literature review process within the software engineering domain. J. Syst. Softw. 80(4), 571–583 (2007)

    Article  Google Scholar 

  6. Bucchiarone, A., Soysal, K., Guidi, C.: A model-driven approach towards automatic migration to microservices. In: Bruel, J.-M., Mazzara, M., Meyer, B. (eds.) DEVOPS 2019. LNCS, vol. 12055, pp. 15–36. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-39306-9_2

    Chapter  Google Scholar 

  7. 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. IEEE (2017)

    Google Scholar 

  8. Clarke, P., O’Connor, R.V., Leavy, B.: A complexity theory viewpoint on the software development process and situational context. In: Proceedings of the International Conference on Software and Systems Process, pp. 86–90 (2016)

    Google Scholar 

  9. Clarke, P., O’Connor, R.V.: Changing situational contexts present a constant challenge to software developers. In: O’Connor, R., Umay, A.M., Kemaneci, K., Yilmaz, M., Poth, A., Messnarz, R. (eds.) EuroSPI 2015. CCIS, vol. 543, pp. 100–111. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-24647-5_9

    Chapter  Google Scholar 

  10. Fan, C.Y., Ma, S.P.: Migrating monolithic mobile application to microservice architecture: an experiment report. In: 2017 IEEE International Conference on AI & Mobile Services (AIMS), pp. 109–112. IEEE (2017)

    Google Scholar 

  11. Fitzgerald, B.: The transformation of open source software. MIS Q. 587–598 (2006)

    Google Scholar 

  12. Flanagan, C., Freund, S.N.: Atomizer: a dynamic atomicity checker for multithreaded programs. ACM SIGPLAN Not. 39(1), 256–267 (2004)

    Article  Google Scholar 

  13. Fritzsch, J., Bogner, J., Wagner, S., Zimmermann, A.: Microservices migration in industry: intentions, strategies, and challenges. In: 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 481–490. IEEE (2019)

    Google Scholar 

  14. Grogan, J., et al.: A multivocal literature review of function-as-a-service (FaaS) infrastructures and implications for software developers. In: Yilmaz, M., Niemann, J., Clarke, P., Messnarz, R. (eds.) EuroSPI 2020. CCIS, vol. 1251, pp. 58–75. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-56441-4_5

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  16. Jin, W., Liu, T., Cai, Y., Kazman, R., Mo, R., Zheng, Q.: Service candidate identification from monolithic systems based on execution traces. IEEE Trans. Softw. Eng. (2019)

    Google Scholar 

  17. Kamimura, M., Yano, K., Hatano, T., Matsuo, A.: Extracting candidates of microservices from monolithic application code. In: 2018 25th Asia-Pacific Software Engineering Conference (APSEC), pp. 571–580. IEEE (2018)

    Google Scholar 

  18. 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. IEEE (2016)

    Google Scholar 

  19. Khadka, R., Batlajery, B.V., Saeidi, A.M., Jansen, S., Hage, J.: How do professionals perceive legacy systems and software modernization? In: Proceedings of the 36th International Conference on Software Engineering, pp. 36–47 (2014)

    Google Scholar 

  20. Korsaa, M., et al.: The SPI manifesto and the ECQA SPI manager certification scheme. J. Softw.: Evol. Process 24(5), 525–540 (2012)

    Google Scholar 

  21. Krause, A., Zirkelbach, C., Hasselbring, W., Lenga, S., Kröger, D.: Microservice decomposition via static and dynamic analysis of the monolith. In: 2020 IEEE International Conference on Software Architecture Companion (ICSA-C), pp. 9–16. IEEE (2020)

    Google Scholar 

  22. Larus, J.R., Ball, T.: Rewriting executable files to measure program behavior. Softw.: Pract. Exp. 24(2), 197–218 (1994)

    Google Scholar 

  23. Matias, T., Correia, F.F., Fritzsch, J., Bogner, J., Ferreira, H.S., Restivo, A.: Determining microservice boundaries: a case study using static and dynamic software analysis. In: Jansen, A., Malavolta, I., Muccini, H., Ozkaya, I., Zimmermann, O. (eds.) ECSA 2020. LNCS, vol. 12292, pp. 315–332. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-58923-3_21

    Chapter  Google Scholar 

  24. Mock, M.: Dynamic analysis from the bottom up. In: WODA 2003 ICSE Workshop on Dynamic Analysis, p. 13. Citeseer (2003)

    Google Scholar 

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

    Google Scholar 

  26. Nimare, A.: A beginner’s guide to writing a kickass readme (2016). https://meakaakka.medium.com/a-beginners-guide-to-writing-a-kickass-readme-7ac01da88ab3

  27. Nunes, L., Santos, N., Rito Silva, A.: From a monolith to a microservices architecture: an approach based on transactional contexts. In: Bures, T., Duchien, L., Inverardi, P. (eds.) ECSA 2019. LNCS, vol. 11681, pp. 37–52. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-29983-5_3

    Chapter  Google Scholar 

  28. Ponce, F., Márquez, G., Astudillo, H.: Migrating from monolithic architecture to microservices: a rapid review. In: 2019 38th International Conference of the Chilean Computer Science Society (SCCC), pp. 1–7. IEEE (2019)

    Google Scholar 

  29. Ren, Z., et al.: Migrating web applications from monolithic structure to microservices architecture. In: Proceedings of the Tenth Asia-Pacific Symposium on Internetware, pp. 1–10 (2018)

    Google Scholar 

  30. Schütz, S.W., Kude, T., Popp, K.M.: The impact of software-as-a-service on software ecosystems. In: Herzwurm, G., Margaria, T. (eds.) ICSOB 2013. LNBIP, vol. 150, pp. 130–140. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39336-5_13

    Chapter  Google Scholar 

  31. Skaletsky, A., et al.: Dynamic program analysis of microsoft windows applications. In: 2010 IEEE International Symposium on Performance Analysis of Systems & Software (ISPASS), pp. 2–12. IEEE (2010)

    Google Scholar 

  32. Van Hoorn, A., Waller, J., Hasselbring, W.: Kieker: a framework for application performance monitoring and dynamic software analysis. In: Proceedings of the 3rd ACM/SPEC International Conference on Performance Engineering, pp. 247–248 (2012)

    Google Scholar 

  33. Villamizar, M., et al.: Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud. In: 2015 10th Computing Colombian Conference (10CCC), pp. 583–590. IEEE (2015)

    Google Scholar 

  34. Von Hippel, E.: Learning from open-source software. MIT Sloan Manag. Rev. 42(4), 82–86 (2001)

    Google Scholar 

  35. Vosshall, P.: Web scale computing: the power of infrastructure as a service. In: Bouguettaya, A., Krueger, I., Margaria, T. (eds.) ICSOC 2008. LNCS, vol. 5364, p. 1. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89652-4_1

    Chapter  Google Scholar 

  36. Zhang, Y., Liu, B., Dai, L., Chen, K., Cao, X.: Automated microservice identification in legacy systems with functional and non-functional metrics. In: 2020 IEEE International Conference on Software Architecture (ICSA), pp. 135–145. IEEE (2020)

    Google Scholar 

Download references

Acknowledgment

This research is supported in part by the Department of Enterprise, Trade and Employment, Ireland under the Disruptive Technologies Innovation Fund grant number DT20180116, and also supported in part, by Science Foundation Ireland grant number 13/RC/2094_P2 to Lero - the Science Foundation Ireland Research Centre for Software.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Neil Lapuz .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Lapuz, N., Clarke, P., Abgaz, Y. (2021). Digital Transformation and the Role of Dynamic Tooling in Extracting Microservices from Existing Software Systems. In: Yilmaz, M., Clarke, P., Messnarz, R., Reiner, M. (eds) Systems, Software and Services Process Improvement. EuroSPI 2021. Communications in Computer and Information Science, vol 1442. Springer, Cham. https://doi.org/10.1007/978-3-030-85521-5_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-85521-5_20

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-85520-8

  • Online ISBN: 978-3-030-85521-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics