Extraction of Microservices from Monolithic Software Architectures
Authors:
- Genc MazlamiGMGenc Mazlami
- Jurgen CitoJCJurgen Cito
- Philipp LeitnerPLPhilipp Leitner
Top Cited Papers
- 1 June 2017
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 524-531
Abstract
Driven by developments such as mobile computing, cloud computing infrastructure, DevOps and elastic computing, the microservice architectural style has emerged as a new alternative to the monolithic style for designing large software systems. Monolithic legacy applications in industry undergo a migration to microservice-oriented architectures. A key challenge in this context is the extraction of microservices from existing monolithic code bases. While informal migration patterns and techniques exist, there is a lack of formal models and automated support tools in that area. This paper tackles that challenge by presenting a formal microservice extraction model to allow algorithmic recommendation of microservice candidates in a refactoring and migration scenario. The formal model is implemented in a web-based prototype. A performance evaluation demonstrates that the presented approach provides adequate performance. The recommendation quality is evaluated quantitatively by custom microservice-specific metrics. The results show that the produced microservice candidates lower the average development team size down to half of the original size or lower. Furthermore, the size of recommended microservice conforms with microservice sizing reported by empirical surveys and the domain-specific redundancy among different microservices is kept at a low rate.Keywords
This publication has 11 references indexed in Scilit:
- Service Cutter: A Systematic Approach to Service Decomposition2016
- All the Services Large and Micro: Revisiting Industrial Practice in Services Computing2016
- Microservices: A Systematic Mapping Study2016
- The making of cloud applications: an empirical study on software development for the cloud2015
- MicroservicesIEEE Software, 2015
- Supervised and Traditional Term Weighting Methods for Automatic Text CategorizationIEEE Transactions on Pattern Analysis and Machine Intelligence, 2008
- The Conceptual Coupling Metrics for Object-Oriented Systems2007 IEEE International Conference on Software Maintenance, 2006
- CVS release history data for detecting logical couplings2004
- A metrics suite for object oriented designIEEE Transactions on Software Engineering, 1994
- On the criteria to be used in decomposing systems into modulesCommunications of the ACM, 1972