A Prescriptive Model for Migration to Microservices Based on SDLC Artifacts

Authors

  • Deepali Bajaj Department of Computer Science, Shaheed Rajguru College of Applied Sciences for Women, University of Delhi, Delhi, India https://orcid.org/0000-0003-2655-3001
  • Urmil Bharti Department of Computer Science, Shaheed Rajguru College of Applied Sciences for Women, University of Delhi, Delhi, India
  • Anita Goel Department of Computer Science, Dyal Singh College, University of Delhi, Delhi, India
  • S. C. Gupta Department of Computer Science, Indian Institute of Technology, Delhi, India

DOI:

https://doi.org/10.13052/jwe1540-9589.20312

Keywords:

Microservices, decomposition, migration, extraction, slicing, identifying, brownfield development, greenfield development, microservices architecture (MSA)

Abstract

Microservices architectural style is gaining popularity in industry and is being widely adopted by large corporations like Amazon, Netflix, Spotify, eBay, and many more. Several other organizations are also preferring to migrate their existing enterprise scale applications to microservices architecture. Researchers have proposed various approaches for microservices decomposition to be used in migrating or rebuilding a monolithic application to microservices. Applying any available approach to an existing monolithic application is not a straightforward decision; thus, there is a need for guidelines that assist in the migration process. There are various challenges in a migration process because different migration approaches use different sets of input data to identify microservices. Since the available migration techniques are not structured, logically, selection of an appropriate migration strategy is a difficult decision for any system architect. So, it is a recurrent open research question – which migration technique should be adopted to get microservices for a legacy monolithic application? This paper addresses this research challenge by examining existing approaches for microservices migration and groups them based on software development life cycle (SDLC) artifacts. Our research also proposes a microservices prescriptive model (MPM) from the existing prominent microservice migration techniques. This model provides recommendation (1) for refactoring an existing legacy system to microservices, and (2) for new microservices development projects. Our study also helps in gaining more insight about greenfield and brownfield development approaches in microservices applications. Moreover, researchers and practitioners of the field can benefit from this model to further validate their migration approaches based on the available system artifacts.

Downloads

Download data is not yet available.

Author Biographies

Deepali Bajaj, Department of Computer Science, Shaheed Rajguru College of Applied Sciences for Women, University of Delhi, Delhi, India

Deepali Bajaj has over 14 years of teaching experience as Assistant Professor in Department of Computer Science, Shaheed Rajguru College of Applied Sciences for Women (University of Delhi). She is currently doing her research in the area of Cloud and Distributed Computing. Her key research areas are Microservices and Function as a service (FaaS) of serverless technology. She has authored several national and international research publications.

Urmil Bharti, Department of Computer Science, Shaheed Rajguru College of Applied Sciences for Women, University of Delhi, Delhi, India

Urmil Bharti has over 14 years of teaching experience as Assistant Professor in Department of Computer Science, Shaheed Rajguru College of Applied Sciences for women (University of Delhi). Earlier she has more than 10 years of industry experience. Her last designation was Senior Quality Analyst. She is currently doing her research in the area of Cloud and Distributed Computing. Her key research area is open source serverless frameworks. She has authored several national and international research publications.

Anita Goel, Department of Computer Science, Dyal Singh College, University of Delhi, Delhi, India

Anita Goel is an Associate Professor in Department of Computer Science, Dyal Singh College, University of Delhi, India. She has received her Ph.D. in Computer Science and Masters in Computer Applications from Jamia Millia Islamia and Department of Computer Science (University of Delhi), respectively. She has a work experience of more than 30 years. She is a visiting faculty to Delhi Technological University and NIIT University. From 2009–10, she was Fellow in Computer Science, at Institute of Life Long Learning (ILLL) in University of Delhi. She has served as member of program committee of International conferences like IEEE BigData Congress 2015 and ICWI 2015. She has guided several students for their doctoral studies and has travelled internationally to present research papers. She has authored books in Computer Science and has several national and international research publications.

S. C. Gupta, Department of Computer Science, Indian Institute of Technology, Delhi, India

S. C. Gupta is B.Tech (EE) from IIT Delhi and has worked at Computer Group at Tata Institute of Fundamental Research and NCSDCT (now C-DAC Mumbai), Till recently, he worked as Deputy Director General, Scientist-G and Head of Training at National Informatics Centre, New Delhi and was responsible for keeping its 3000 scientists/ engineers up to date in various technologies. He has extensive experience in design and development of large Complex Software Systems. Currently he is a Visiting Faculty at Dept of Computer Science and Engineering, IIT Delhi. His research interests includes Software Engineering, Data Bases and Cloud Computing. He has been teaching Cloud Computing at IIT Delhi, which includes emerging disruptive technologies like SDN and SDS. He has guided many M.Tech & Ph.D. Research students in these technologies and has many publications in Software Engineering and Cloud Technology in National and International Conferences and Journals.

References

Taibi, D., & Systä, K. (2019). From Monolithic Systems to Microservices: A Decomposition Framework based on Process Mining. In 8th International Conference on Cloud Computing and Services Science, CLOSER.

Mazlami, G., Cito, J., & Leitner, P. (2017, June). Extraction of microservices from monolithic software architectures. In 2017 IEEE International Conference on Web Services (ICWS) (pp. 524–531). IEEE.

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

Li, S., Zhang, H., Jia, Z., Li, Z., Zhang, C., Li, J., … & Shan, Z. (2019). A dataflow-driven approach to identifying microservices from monolithic applications. Journal of Systems and Software, 157, 110380.

Amiri, M. J. (2018, July). Object-aware Identification of Microservices. In 2018 IEEE International Conference on Services Computing (SCC) (pp. 253–256). IEEE.

Abdullah, M., Iqbal, W., & Erradi, A. (2019). Unsupervised learning approach for web application auto-decomposition into microservices. Journal of Systems and Software, 151, 243–257.

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

Levcovitz, A., Terra, R., & Valente, M. T. (2016). Towards a technique for extracting microservices from monolithic enterprise systems. arXiv preprint arXiv:1605.03175.

Mustafa, O., & Gómez, J. M. (2017). Optimizing economics of microservices by planning for granularity level. Experience Report.

Ahmadvand, M., & Ibrahim, A. (2016, September). Requirements reconciliation for scalable and secure microservice (de) composition. In 2016 IEEE 24th International Requirements Engineering Conference Workshops (REW) (pp. 68–73). IEEE.

Ren, Z., Wang, W., Wu, G., Gao, C., Chen, W., Wei, J., & Huang, T. (2018, September). Migrating Web Applications from Monolithic Structure to Microservices Architecture. In Proceedings of the Tenth Asia-Pacific Symposium on Internetware (p. 7). ACM.

Eski, S., & Buzluca, F. (2018, May). An automatic extraction approach: transition to microservices architecture from monolithic application. In Proceedings of the 19th International Conference on Agile Software Development: Companion (p. 25). ACM.

Selmadji, A., Seriai, A. D., Bouziane, H. L., Dony, C., & Mahamane, R. O. (2018, September). Re-architecting OO Software into Microservices. In European Conference on Service-Oriented and Cloud Computing (pp. 65–73). Springer, Cham.

Gysel, M., Kölbener, L., Giersche, W., & Zimmermann, O. (2016, September). Service cutter: A systematic approach to service decomposition. In European Conference on Service-Oriented and Cloud Computing (pp. 185–200). Springer, Cham.

Baresi, L., Garriga, M., & De Renzis, A. (2017, September). Microservices identification through interface analysis. In European Conference on Service-Oriented and Cloud Computing (pp. 19–33). Springer, Cham.

UU, Z. L., Korpershoek, M., & VU, A. O. Towards a MicroServices Architecture for Clouds.

Sayara, A., Towhid, M. S., & Hossain, M. S. (2017, December). A probabilistic approach for obtaining an optimized number of services using weighted matrix and multidimensional scaling. In 2017 20th International Conference of Computer and Information Technology (ICCIT) (pp. 1–6). IEEE.

Nakazawa, R., Ueda, T., Enoki, M., & Horii, H. (2018, September). Visualization tool for designing microservices with the monolith-first approach. In 2018 IEEE Working Conference on Software Visualization (VISSOFT) (pp. 32–42). IEEE.

Krause, A., Zirkelbach, C., Hasselbring, W., Lenga, S., & Kröger, D. (2020, March). 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.

Jin, W., Liu, T., Zheng, Q., Cui, D., & Cai, Y. (2018, July). Functionality-oriented microservice extraction based on execution trace clustering. In 2018 IEEE International Conference on Web Services (ICWS) (pp. 211–218). IEEE.

Stojanovic, T. D., Lazarevic, S. D., Milic, M., & Antovic, I. (2020, February). Identifying microservices using structured system analysis. In 2020 24th International Conference on Information Technology (IT) (pp. 1–4). IEEE.

Keele, S. (2007). Guidelines for performing systematic literature reviews in software engineering (Vol. 5). Technical report, Ver. 2.3 EBSE Technical Report. EBSE.

Taibi, D., Lenarduzzi, V., Pahl, C., & Janes, A. (2017, May). Microservices in agile software development: a workshop-based study into issues, advantages, and disadvantages. In Proceedings of the XP2017 Scientific Workshops (p. 23). ACM.

Taibi, D., & Systä, K. (2019). A Decomposition and Metric-Based Evaluation Framework for Microservices. arXiv preprint arXiv:1908.08513.

Garriga, M. (2017, September). Towards a taxonomy of microservices architectures. In International Conference on Software Engineering and Formal Methods (pp. 203–218). Springer, Cham.

Dehghani, Z. (2018). How to break a Monolith into Microservices.

J. Lewis and M. Fowler, “Microservices,” 2014. http://martinfowler.com/articles/microservices.html. Accessed on 13th March 2020

Fritzsch, J., Bogner, J., Zimmermann, A., & Wagner, S. (2018, March). From monolith to microservices: a classification of refactoring approaches. In International Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment (pp. 128–141). Springer, Cham.

Ponce, F., Márquez, G., & Astudillo, H. (2019, November). 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.

Kazanavièius, J., & Mažeika, D. (2019, April). Migrating legacy software to microservices architecture. In 2019 Open Conference of Electrical, Electronic and Information Sciences (eStream) (pp. 1–5). IEEE.

Pedreira, O., Silva-Coira, F., Places, Á. S., Luaces, M. R., & Folgueira, L. G. (2019). Applying Feature-Oriented Software Development in SaaS Systems: Real Experience, Measurements, and Findings. Journal of Web Engineering, 18(4), 447–476.

https://martinfowler.com/books/refactoring.html, Access on 21.5.2020

Schmidt, R. A., & Thiry, M. (2020, June). Microservices identification strategies: A review focused on Model-Driven Engineering and Domain Driven Design approaches. In 2020 15th Iberian Conference on Information Systems and Technologies (CISTI) (pp. 1–6). IEEE.

Di Francesco, P., Lago, P., & Malavolta, I. (2019). Architecting with microservices: A systematic mapping study. Journal of Systems and Software, 150, 77–97.

Di Francesco, P., Lago, P., & Malavolta, I. (2018, April). Migrating towards microservice architectures: an industrial survey. In 2018 IEEE International Conference on Software Architecture (ICSA) (pp. 29–2909). IEEE.

Taib, D., Lenarduzzi, V., & Pahl, C. (2018). Architectural patterns for microservices: a systematic mapping study. SCITEPRESS.

https://structure101.com/legacy/structural-analysis/ Accessed on 18.11.2020

http://perfinsp.sourceforge.net/jprof.html#Overview Accessed on 18.11.2020

https://www.hello2morrow.com/products/sonargraph/architect9 Accessed on 18.11.2020

http://wala.sourceforge.net/wiki/index.php/Main_Page Accessed on 18.11.2020

http://kieker-monitoring.net/ Accessed on 18.11.2020

https://github.com/ExplorViz/docs/wiki#quick-start-guides Accessed on 18.11.2020

https://www.elastic.co/guide/en/apm/get-started/current/overview.html Accessed on 18.11.2020

https://fluxicon.com/disco/ Accessed on 18.11.2020

https://github.com/dbeaver/dbeaver/wiki Accessed on 18.11.2020

Published

2021-06-09

Issue

Section

Communication, Multimedia and Learning Technology through Future Web Engineering