微服务是现代软件系统最流行的架构风格,据IDC报告超过90%的新系统开发都使用微服务架构。在微服务边界设计问题上,演进式设计是一种被广泛使用的实践。它通过一系列增量的重构任务来执行,每个任务称为微服务重构,即将微服务系统的一部分(称为重构部分)重新组织成多个良好定义的微服务以提高软件架构。尽管微服务重构在实践中很受欢迎,研究人员很少面向该重构任务提供方法和技术支持。与此同时,尽管学术界面向类似的软件设计任务,诸如软件模块化和微服务化,提出了相关解决方案,但这些解决方案不足以支持微服务重构。初步分析揭示了这些解决方案在被应用于微服务重构时甚至可能降低整个架构的质量,这是因为这些解决方案在应用于微服务重构任务时本质上只能优化重构部分,但是忽略了重构部分和剩余系统之间的关系。

图:Micro2Micro的重构决策过程
针对该问题,软件研发效能实验室博士生钟陈星提出了一种名为Micro2Micro的方法,这是学术界在该问题上首次提出的解决方案。Micro2Micro支持重新拆分重构部分并且保持非重构部分不变,能够同时优化三个质量目标包括重构部分和非重构部分的独立性。Micro2Micro在架构决策过程中提供及时质量反馈以及实现快速设计搜索,并支持架构师介入重构决策过程,从而交互式地集成其知识到重构方案的搜索过程。在13个大小不同的开源项目上开展的经验研究表明,Micro2Micro给出的重构方案表现良好,能给原始架构带来高达45%的质量提升。使用Micro2Micro的实践者对其所建议的重构方案给予了充分的认可和很高的满意度。
该研究作为演进式设计实践下微服务边界设计问题的首创解决方案,对该问题及其相关技术社区都具有先导性意义。相关研究成果《Refactoring Microservices to Microservices in Support of Evolutionary Design》已被软件工程领域国际旗舰期刊IEEE Transactions on Software Engineering(TSE, CCF-A类期刊)全文录用,南京大学为第一单位,德雷塞尔大学为合作单位。 钟陈星同学由张贺教授指导,其主要研究方向为软件架构、软件维护与演进,已在TSE,ICSE等软件工程国际顶级学术期刊、会议上以第一作者发表长文论文6篇。