场景驱动且自底向上的单体系统微服务拆分方法
作者:
作者单位:

作者简介:

丁丹(1994-),女,硕士,主要研究领域为微服务拆分.
彭鑫(1979-),男,博士,教授,博士生导师,CCF杰出会员,主要研究领域为代码大数据,智能化软件开发,软件维护与演化,移动计算与云计算.
郭晓峰(1996-),男,硕士生,主要研究领域为微服务拆分,分布式链路数据质量问题发现与修复.
张健(1984-),男,硕士生,主要研究领域为微服务,自然语言处理.
吴毅坚(1979-),男,博士,副教授,CCF专业会员,主要研究领域为软件工程,软件维护与演化.

通讯作者:

彭鑫,E-mail:pengxin@fudan.edu.cn

中图分类号:

基金项目:

国家重点研发计划(2018YFB1004803)


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

Fund Project:

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

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    作为云原生应用的一种典型形态,微服务架构已经在各种企业应用系统中被广泛使用.在企业实践中,许多微服务都是在单体架构的遗留系统基础上通过微服务拆分和改造形成的,其中的拆分决策(特别是数据库拆分)对于微服务系统的质量有着很大的影响.目前,单体系统的微服务拆分决策主要依赖于人的主观经验,整个过程成本高、耗时长、结果不确定性很高.针对这一问题,提出一种场景驱动、自底向上的单体系统微服务拆分方法.该方法以场景驱动的方式,通过动态分析获取单体遗留系统运行时的方法调用和数据库操作信息,然后基于数据表之间的关联分析生成数据库拆分方案,接着再自底向上进行搜索,产生相应的代码模块拆分方案.基于这种方法,实现了一个原型工具MSDecomposer,将拆分过程可视化,并支持多种维度的反馈调整策略.基于多个开源软件系统进行了案例研究,研究结果表明,该方法能够显著加快微服务拆分决策的速度,减轻开发人员的决策负担,得到的拆分结果是合理的.

    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.

    参考文献
    相似文献
    引证文献
引用本文

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

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2019-12-02
  • 最后修改日期:2020-02-07
  • 录用日期:
  • 在线发布日期: 2020-04-21
  • 出版日期: 2020-11-06
文章二维码
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号