Page 75 - 《软件学报》2021年第5期
P. 75
李杉杉 等:一种优化的数据流驱动的微服务化拆分方法 1299
果说明:与半自动化数据流驱动的微服务化拆分方法相比,本平台提供的拆分方法在保证拆分结果有效性的同
时,极大地提升了拆分效率.另外需要强调的是:一般情况下,在企业中都会具备测试用例相关文档和测试基本
环境,因此,DA1*阶段在理想情况下耗时可忽略估计.
4 讨 论
本文的贡献在于:在既有的数据流驱动的微服务化拆分方法基础上,针对缺陷问题进行了进一步的改进优
化,在保证微服务化拆分有效性的前提下,提高了原方法的效率和灵活性.此外,本文基于优化的数据流驱动的
微服务化拆分方法实现了可扩展的原型系统来高效支持微服务的拆分、评估及自定义调整工作.为验证优化后
方法及原型系统的有效性和实用性,本文开展了案例研究.结果显示:本文基于优化后的方法实现的原型系统平
台在功能上符合预期,且在提升微服务化拆分工作效率的基础上,取得了较为满意的拆分结果.
本文的不足之处在于:首先,本文提出的优化方法对于系统有一定的要求,因该方法的数据流信息收集与分
析建立在源码、运行时数据收集的基础上,因此适用于遗留系统向微服务迁移的情况;其次,提出的基于数据流
的拆分算法上依然存在一些需要根据主观经验设置的参数,比如数据库中心表的确定;对于候选微服务的评估,
目前缺乏系统化的研究成果来支持本文研究工作,本文虽然使用了耦合、内聚指标等微服务设计中反映模块度
和独立性的、可自动化计算的基本指标,其一定程度上可以反映并预测与可伸缩性权衡的质量属性的效果,如
性能,但其仅仅是设计阶段衡量部分质量属性指标体系的子集,未来考虑将运行时的指标以及其他相关质量属
性的指标(可维护性等)纳入到评估体系中;最后,尽管本文使用了相关工作中广泛应用且实现较为完整的单体
系统 Jpetstore 来进行方法的评估研究,但当前阶段所选的评估案例并非是企业中的实际系统,且覆盖范围较小,
可能会对方法的普适性造成威胁,未来将针对 DFD-A 方法开展大规模的企业级案例研究及评估.
5 总结与展望
本文提出了一种优化的数据流驱动的微服务化拆分方法,以应对现有的相关方法中存在的效率和灵活性
方面的问题.本文所提出的方法通过 Pinpoint 追踪系统业务操作的执行轨迹和 ASM 解析系统的静态关联关系,
来更准确高效地收集能客观反映内聚耦合程度的数据交互信息,在此基础上构建带权图,并实现两阶段的聚类
算法(基于 MST 的业务操作聚类和基于 K-means 的数据库表聚类)来进行微服务化拆分.本文介绍了优化的
DFD-A 方法的整体流程和优化点,包括数据流信息收集与分析过程优化、拆分算法优化的具体实现;此外,本文
基于 DFD-A 方法还设计并实现了一个原型平台.本文选择了被微服务化拆分工作广泛应用且实现较为完整的
单体系统 Jpetstore 作为案例对 DFD-A 进行评估,展示了原有的 DFD 方法和优化的 DFD-A 方法在该案例中的
应用过程和评估流程,3 个优化目标的实现效果来对两个方法的拆分方案进行对比和评估,结果说明了本文所
提出的优化的数据流驱动的微服务化拆分方法 DFD-A,在保证拆分的候选微服务有效性的基础上更加高效、
灵活.
未来我们将从如下几个方面展开深入研究.
1) 算法优化.针对依赖先验知识来进行算法参数设置的问题,本文未来考虑实现通过对系统数据关系进
行排序分析给出建议的中心表的功能.
2) 候选微服务评估体系的构建.未来将全面探究微服务评估体系的构建,把其他质量属性的相关评估指
标纳入到评估体系中,如性能、可靠性、可维护性等等,为候选微服务的评估提供一种结构化、系统
化的解决方案.
3) 原型工具平台的完善.本文基于提出的优化的数据流驱动的微服务化拆分方法开发了原型系统平台
以支持本文方法的微服务自动拆分,目前其核心功能已经完成.为了能够更好地帮助研究者们分析系
统结构实现微服务化拆分,该平台仍然需要进一步的改进和扩展,比如以插件的方式将微服务化拆分
各个阶段现有的其他解决方案融入平台,尤其是将兼顾新系统设计阶段制品和遗留系统运行阶段的
多源数据的全面收集与分析,从而给拆分项目提供多角度的拆分方案,供实践者根据实际情况和需求