TY - JOUR
T1 - Decomposition of Monolith Applications Into Microservices Architectures
T2 - A Systematic Review
AU - Abgaz, Yalemisew
AU - Mccarren, Andrew
AU - Elger, Peter
AU - Solan, David
AU - Lapuz, Neil
AU - Bivol, Marin
AU - Jackson, Glenn
AU - Yilmaz, Murat
AU - Buckley, Jim
AU - Clarke, Paul
N1 - Publisher Copyright:
© 1976-2012 IEEE.
PY - 2023/8/1
Y1 - 2023/8/1
N2 - Microservices architecture has gained significant traction, in part owing to its potential to deliver scalable, robust, agile, and failure-resilient software products. Consequently, many companies that use large and complex software systems are actively looking for automated solutions to decompose their monolith applications into microservices. This paper rigorously examines 35 research papers selected from well-known databases using a Systematic Literature Review (SLR) protocol and snowballing method, extracting data to answer the research questions, and presents the following four contributions. First, the Monolith to Microservices Decomposition Framework (M2MDF) which identifies the major phases and key elements of decomposition. Second, a detailed analysis of existing decomposition approaches, tools and methods. Third, we identify the metrics and datasets used to evaluate and validate monolith to microservice decomposition processes. Fourth, we propose areas for future research. Overall, the findings suggest that monolith decomposition into microservices remains at an early stage and there is an absence of methods for combining static, dynamic, and evolutionary data. Insufficient tool support is also in evidence. Furthermore, standardised metrics, datasets, and baselines have yet to be established. These findings can assist practitioners seeking to understand the various dimensions of monolith decomposition and the community's current capabilities in that endeavour. The findings are also of value to researchers looking to identify areas to further extend research in the monolith decomposition space.
AB - Microservices architecture has gained significant traction, in part owing to its potential to deliver scalable, robust, agile, and failure-resilient software products. Consequently, many companies that use large and complex software systems are actively looking for automated solutions to decompose their monolith applications into microservices. This paper rigorously examines 35 research papers selected from well-known databases using a Systematic Literature Review (SLR) protocol and snowballing method, extracting data to answer the research questions, and presents the following four contributions. First, the Monolith to Microservices Decomposition Framework (M2MDF) which identifies the major phases and key elements of decomposition. Second, a detailed analysis of existing decomposition approaches, tools and methods. Third, we identify the metrics and datasets used to evaluate and validate monolith to microservice decomposition processes. Fourth, we propose areas for future research. Overall, the findings suggest that monolith decomposition into microservices remains at an early stage and there is an absence of methods for combining static, dynamic, and evolutionary data. Insufficient tool support is also in evidence. Furthermore, standardised metrics, datasets, and baselines have yet to be established. These findings can assist practitioners seeking to understand the various dimensions of monolith decomposition and the community's current capabilities in that endeavour. The findings are also of value to researchers looking to identify areas to further extend research in the monolith decomposition space.
KW - dynamic analysis
KW - microservices architecture
KW - microservices identification
KW - Monolith application decomposition
KW - monolith to microservices migration
KW - static analysis
UR - http://www.scopus.com/inward/record.url?scp=85163436156&partnerID=8YFLogxK
U2 - 10.1109/TSE.2023.3287297
DO - 10.1109/TSE.2023.3287297
M3 - Article
AN - SCOPUS:85163436156
SN - 0098-5589
VL - 49
SP - 4213
EP - 4242
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 8
ER -