ABSTRACT
Microservice architecture has been introduced as a new alternative to the monolithic architecture. It has several benefits like scalability, reliability, increase in agility and productivity, resilience to failure, ease of deployment and maintenance, and decrease in time to market. Therefore, software companies have showed a tendency to transform architecture of their legacy applications from monoliths to microservice architecture. In this transformation process, software development teams face the challenge of migration of large applications to the new architecture, where understanding the current application and reusing existing code base are important. In this paper, we propose a new approach to transform existing applications into microservices using code repositories. We use evolutionary and static code coupling information, and the graph clustering methodology, in order to automatically extract microservices from monoliths. In experimental analysis, we investigate two software projects and our approach reach up to 89% of success rate by comparing extracted microservices with the actual results.
- S. Newman, Building Microservices, O'Reilly, 2015. Google ScholarDigital Library
- M. Fowler, J. Lewis, Microservices a definition of this new architectural term, Retrieved 2018, January, from http://martinfowler.com/articles/microservices.html.Google Scholar
- Basics of the Unix Philosophy - Chapter1.Philosophy, Retrieved 2018, March from: https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch01s06.htmlGoogle Scholar
- C. Y. Fan and S. P. Ma, Migrating Monolithic Mobile Application to Microservice Architecture: An Experiment Report, 2017 IEEE International Conference on AI & Mobile Services (AIMS), Honolulu, HI, 2017, pp. 109--112.Google ScholarCross Ref
- N. Alshuqayran, N. Ali, R. Evans, A systematic Mapping Study in Microservice Architecture, IEEE 9th International Conference on Service-Oriented Computing and Applications, 2016Google Scholar
- Vural H., Koyuncu M., Guney S. (2017) A Systematic Literature Review on Microservices, In: Gervasi O. et al. (eds) Computational Science and Its Applications - ICCSA 2017. ICCSA 2017. Lecture Notes in Computer Science, vol 10409. Springer, ChamGoogle Scholar
- C. Pahl, P. Jamshidi, Microservices: A Systematic Mapping Study, Proceedings of the 6th International Conference on Cloud Computing and Services Science, pp. 137--146, 2016 Google ScholarDigital Library
- D. Taibi, V. Lenarduzzi, C. Pahl., Architectural Patterns for Microservices: a Systematic Mapping Study, 8th International Conference on Cloud Computing and Services Science, XCLOSER 2018Google Scholar
- J. P. Gouigoux and D. Tamzalit, From Monolith to Microservices: Lessons Learned on an Industrial Migration to a Web Oriented Architecture, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), Gothenburg, 2017, pp. 62--65Google ScholarCross Ref
- Chris Richardson, Refactoring a Monolith into Microservices, 2016, Retrieved 2018, January, from: https://www.nginx.com/blog/refactoring-a-monolith-into-microservices/Google Scholar
- Kyle Brown, 2017, Apply the Strangler Application pattern to microservices application, Retrieved 2018, February, from: https://www.ibm.com/developerworks/cloud/library/cl-strangler-application-pattern-microservices-apps-trs/index.htmlGoogle Scholar
- D. Escobar et al., Towards the understanding and evolution of monolithic applica-tions as microservices, XLII Latin American Computing Conference (CLEI), Val-paraíso, 2016Google ScholarCross Ref
- Kecskemeti, G., Marosi, A.C., Kertesz, A. "The ENTICE approach to decompose monolithic services into microservices," 2016 International Conference on High Performance Computing & Simulation (HPCS), Innsbruck, 2016, pp. 591--596.Google Scholar
- Alessandra Levcovitz; Ricardo Terra; Marco Tulio Valente. Towards a Technique for Extracting Microservices from Monolithic Enterprise Systems. 3rd Brazilian Work-shop on XSoftware Visualization, Evolution and Maintenance (VEM), p. 97--104, 2015Google Scholar
- G. Mazlami, J. Cito and P. Leitner, "Extraction of Microservices from Monolithic Software Architectures", IEEE International Conference on Web Services (ICWS), Honolulu, HI, 2017Google ScholarCross Ref
- M. E. J. Newman and M. Girvan, "Finding and evaluating community structure in networks", Phys. Rev. E 69, 2004Google Scholar
- Erdemir, U., Tekin, U. ve Buzluca, F. (2011). Object Oriented Software Clustering Based on Community Structure, 18th Asia Pacific Software Engineering Conference (APSEC X2011), Ho Chi Minh City, Vietnam: IEEE Computer Society, December 5--8. Google ScholarDigital Library
- U. Erdemir, F. Buzluca, "A Learning-Based Module Extraction Method for Object-Oriented Systems, J. Syst. Software, 97 (2014), pp. 156--177 Google ScholarDigital Library
- Newman, M. E. (2004). Fast algorithm for detecting community structure in networks. Physical Review E, 69(6), 066133Google Scholar
- A. Clauset, M. E. J. Newman, and C. Moore, "Finding community structure in very large networks", Physical Rev. E 70, 066111, 2004Google ScholarCross Ref
- Wu, J., Hassan, A. E. and Holt, R. C. (2005). Comparison of clustering algorithms in the context of software evolution, Proceedings of the 21st IEEE International Conference on Software Maintenance, (pp. 525--535) Budapest, Hungary Google ScholarDigital Library
- Bittencourt, R. A. and Guerrero, D. D. S. (2009). Comparison of graph clustering algorithms for recovering software architecture module views, 13th IEE European Conference on Software Maintenance and Reengineering, (pp. 251--254)., Germany, March 24--27. Google ScholarDigital Library
- Tzerpos, V. and Holt, R. C. (1999). MoJo: A distance metric for software clusterings, Proceedings of the Sixth IEEE Working Conference on Reverse Engineering, (pp. 187--193). Atlanta, Georgia, USA : IEEE Computer Society, October 6--8 Google ScholarDigital Library
- Erdemir, U., Tekin, U., Buzluca, F., "E-Quality: A Graph Based Object Oriented Software Quality Visualization Tool". In Proceedings of the 6th IEEE International Workshop Xon Visualizing Software for Understanding and Analysis, pp..6--13, Virginia, USA. 2011.Google ScholarCross Ref
Index Terms
- An automatic extraction approach: transition to microservices architecture from monolithic application
Recommendations
How do microservices evolve? An empirical analysis of changes in open-source microservice repositories
Abstract Context.Microservice architectures are an emergent service-oriented paradigm widely used in industry to develop and deploy scalable software systems. The underlying idea is to design highly independent services that ...
Highlights- We analyzed 11 open-source microservice repositories to study their evolution over time.
Cost comparison of running web applications in the cloud using monolithic, microservice, and AWS Lambda architectures
Large Internet companies like Amazon, Netflix, and LinkedIn are using the microservice architecture pattern to deploy large applications in the cloud as a set of small services that can be independently developed, tested, deployed, scaled, operated, and ...
Are we speaking the industry language? The practice and literature of modernizing legacy systems with microservices
SBCARS '21: Proceedings of the 15th Brazilian Symposium on Software Components, Architectures, and ReuseMicroservice architecture has gained much attention in the last few years in both industry and academia. Microservice is an architectural style that enables developing systems as a suite of small loosely coupled, and autonomous (micro)services that ...
Comments