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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
References
Abdullah, M., Iqbal, W., Erradi, A.: Unsupervised learning approach for web application auto-decomposition into microservices. J. Syst. Softw. 151, 243–257 (2019)
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)
Aman, W.: A framework for analysis and comparison of dynamic malware analysis tools. arXiv preprint arXiv:1410.2131 (2014)
Beimborn, D., Miletzki, T., Wenzel, S.: Platform as a service (PaaS). Bus. Inf. Syst. Eng. 3(6), 381–384 (2011)
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)
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
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)
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)
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
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)
Fitzgerald, B.: The transformation of open source software. MIS Q. 587–598 (2006)
Flanagan, C., Freund, S.N.: Atomizer: a dynamic atomicity checker for multithreaded programs. ACM SIGPLAN Not. 39(1), 256–267 (2004)
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)
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
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
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)
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)
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)
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)
Korsaa, M., et al.: The SPI manifesto and the ECQA SPI manager certification scheme. J. Softw.: Evol. Process 24(5), 525–540 (2012)
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)
Larus, J.R., Ball, T.: Rewriting executable files to measure program behavior. Softw.: Pract. Exp. 24(2), 197–218 (1994)
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
Mock, M.: Dynamic analysis from the bottom up. In: WODA 2003 ICSE Workshop on Dynamic Analysis, p. 13. Citeseer (2003)
Newman, S.: Building Microservices, 1st edn. O’Reilly Media, Inc., Sebastopol (2015)
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
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
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)
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)
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
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)
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)
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)
Von Hippel, E.: Learning from open-source software. MIT Sloan Manag. Rev. 42(4), 82–86 (2001)
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
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)
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
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)