Scenario-driven and Bottom-up Microservice Decomposition Method for Monolithic Systems
Author:
Affiliation:

Fund Project:

National Key Research and Development Program of China (2018YFB1004803)

  • Article
  • | |
  • Metrics
  • |
  • Reference [44]
  • |
  • Related [20]
  • | | |
  • Comments
    Abstract:

    As a typical form of cloud-native application, microservice architecture has been widely used in various enterprise applications. In enterprise practice, many microservices are formed by decomposing and transforming the legacy system of monolithic architecture. The decomposition decision, especially database decomposition, has a great impact on the quality of the microservice system. At present, the microservice decomposition decision mainly depends on the human subjective experience. The whole process is costly, time-consuming, and uncertain. To solve this problem, this study proposes a scenario-driven, bottom-up microservice decomposition method for monolithic system. This method uses scenario-driven method to obtain the method call and database operation information of monolithic system by dynamic analysis, and to generate database decomposition scheme based on analyzing the association among data tables, and then it searches from the bottom up to generate the corresponding code module decomposition scheme. Based on this method, this study implements a prototype tool MSDecomposer, which visualizes the decomposing process and supports feedback adjustment strategies of multiple dimensions. This study conducts case studies based on several open-source software systems, and the results show that the method proposed in this study can significantly speed up the decision-making of microservice decomposition, reduce the decision-making burden of developers and the final result is reasonable.

    Reference
    [1] Lewis J, Fowler M. Microservices:A definition of this new architectural term. 2014. https://martinfowler.com/articles/microservices.html
    [2] Ford N. The state of microservices maturity. 2018. https://www.oreilly.com/programming/free/the-state-of-microservices-maturity. csp
    [3] Meshenberg R. Microservices at netflix scale:First principles, tradeoffs, lessons learned. 2016. https://gotocon.com/dl/goto-amsterdam-2016/slides/RuslanMeshenberg_MicroservicesAtNetflixScaleFirstPrinciplesTradeoffsLessonsLearned.pdf
    [4] Zhou X, Peng X, Xie T, et al. Fault analysis and debugging of microservice systems:Industrial survey, benchmark system, and empirical study. IEEE Trans. on Software Engineering (Early Access), 2018.[doi:10.1109/TSE.2018.2887384]
    [5] Zhou X, Peng X, Xie T, et al. Latent error prediction and fault localization for microservice applications by learning from system trace logs. In:Proc. of the ESEC/SIGSOFT FSE. 2019. 683-694.
    [6] Evans E. Domain-Driven Design:Tackling Complexity in the Heart of Software. Upper Saddle River:Pearson Education, 2003.
    [7] Rademacher F, Sachweh S, Zündorf A. Towards a UML profile for domain-driven design of microservice architectures. In:Proc. of the Int'l Conf. on Software Engineering & Formal Methods. Springer-Verlag, 2017. 230-245.
    [8] Kieker. 2019. http://kieker-monitoring.net/
    [9] Hoorn AV, Waller J, Hasselbring W. Kieker:A framework for application performance monitoring and dynamic software analysis. In:Proc. of the Int'l Conf. on Performance Engineering (ICPE). 2012. 247-248.
    [10] Parnas DL. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 1972,15(12):1053-1058.
    [11] Fowler M. Refactoring:Improving the Design of Existing Code. Addison-Wesley, 1999.
    [12] Chatterjee M, Das SK, Turgut D. WCA:A weighted clustering algorithm for mobile ad hoc networks. Cluster Computing, 2002, 5(2):193-204.
    [13] Andritsos P, Tzerpos V. Information-theoretic software clustering. IEEE Trans. on Software Engineering, 2005,31(2):150-165.
    [14] Lin Y, Peng X, Cai YF, et al. Interactive and guided architectural refactoring with search-based recommendation. In:Proc. of the ACM SIGSOFT Int'l Symp. on Foundations of Software Engineering. 2016. 535-546.
    [15] Jamshidi P, Pahl C, Mendonça NC, et al. Microservices:The journey so far and challenges ahead. IEEE Software, 2018,35(3):24-35.
    [16] Pahl C, Jamshidi P. Microservices:A systematic mapping study. In:Proc. of the Int'l Conf. on Cloud Computing and Services Science. 2016. 137-146.
    [17] Francesco PD, Lago P, Malavolta I. Migrating towards microservice architectures:An industrial survey. In:Proc. of the IEEE Int'l Conf. on Software Architecture (ICSA). IEEE, 2018. 29-39.
    [18] Taibi D, Lenarduzzi V, Pahl C. Processes, motivations, and issues for migrating to microservices architectures:An empirical investigation. IEEE Cloud Computing, 2017,4(5):22-32.
    [19] Fritzsch J, Bogner J, Zimmermann A, Wagner S. From monolith to microservices:A classification of refactoring approaches. In:Proc. of the Int'l Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment. Springer-Verlag, 2018.
    [20] Rademacher F, Sorgalla J, Sachweh S. Challenges of domain-driven microservice design:A model-driven perspective. IEEE Software, 2018,35(3):36-43.
    [21] AjiL. 2019. https://github.com/SeelabFhdo/AjiL
    [22] Levcovitz A, Terra R, Valente MT. Towards a technique for extracting microservices from monolithic enterprise systems. arXiv:1605.03175, 2016.
    [23] Chen R, Li SS, Li Z. From monolith to microservices:A dataflow-driven approach. In:Proc. of the IEEE Asia-Pacific Software Engineering Conf. (APSEC). 2017. 466-475.
    [24] Gysel M, Kölbener L, Giersche W, et al. Service cutter:A systematic approach to service decomposition. In:Proc. of the European Conf. on Service-Oriented and Cloud Computing (ESOCC). 2016. 185-200.
    [25] Abdullah M, Iqbal W, Erradi A. Unsupervised learning approach for Web application auto-decomposition into microservices. Journal of Systems and Software, 2019,151:243-257.
    [26] Mazlami G, Cito J, Leitner P. Extraction of microservices from monolithic software architectures. In:Proc. of the IEEE Int'l Conf. on Web Services (ICWS). 2017. 524-531.
    [27] Jin WX, Liu T, Zheng QH, et al. Functionality-oriented microservice extraction based on execution trace clustering. In:Proc. of the IEEE Int'l Conf. on Web Services (ICWS). 2018. 211-218.
    [28] Taibi D, Lenarduzzi V. On the definition of microservice bad smells. IEEE Software, 2018,35(3):56-62.
    [29] Web service. 2019. https://www.w3.org/TR/ws-arch/
    [30] JeeSite. 2019. https://github.com/thinkgem/jeesite/
    [31] Luxburg U. A tutorial on spectral clustering. Statistics & Computing, 2007,17(4):395-416.
    [32] Pons P, Latapy M. Computing communities in large networks using random walks. Journal of Graph Algorithms and Applications, 2006,10(2):191-218.
    [33] Traag VA. Faster unfolding of communities:Speeding up the Louvain algorithm. CoRR abs/1503.01322, 2015.
    [34] Girvan M, Newman MEJ. Community structure in social and biological networks. National Academy of Sciences of the USA (PNAS), 2001,99(12):7821-7826.
    [35] Newman MEJ. Fast algorithm for detecting community structure in networks. arXiv:cond-mat/0309508, 2003.
    [36] Newman MEJ, Girvan M. Finding and evaluating community structure in networks. arXiv:cond-mat/0308217, 2004.
    [37] Spring boot. 2019. https://spring.io/projects/spring-boot/
    [38] JSqlParser. 2019. http://jsqlparser.sourceforge.net/
    [39] Neo4j. 2019. https://neo4j.com/
    [40] Spring-Jpetstore. 2019. https://github.com/making/spring-jpetstore
    [41] Spring. 2019. https://spring.io/
    [42] Mybatis. 2019. https://blog.mybatis.org/
    [43] zb-Blog. 2019. https://gitee.com/skyblue7080/zb-blog
    [44] Exam++. 2019. https://gitee.com/ocelot/examxx/
    Cited by
    Comments
    Comments
    分享到微博
    Submit
Get Citation

丁丹,彭鑫,郭晓峰,张健,吴毅坚.场景驱动且自底向上的单体系统微服务拆分方法.软件学报,2020,31(11):3461-3480

Copy
Share
Article Metrics
  • Abstract:2617
  • PDF: 5531
  • HTML: 2309
  • Cited by: 0
History
  • Received:December 02,2019
  • Revised:February 07,2020
  • Online: April 21,2020
  • Published: November 06,2020
You are the first2038061Visitors
Copyright: Institute of Software, Chinese Academy of Sciences Beijing ICP No. 05046678-4
Address:4# South Fourth Street, Zhong Guan Cun, Beijing 100190,Postal Code:100190
Phone:010-62562563 Fax:010-62562533 Email:jos@iscas.ac.cn
Technical Support:Beijing Qinyun Technology Development Co., Ltd.

Beijing Public Network Security No. 11040202500063