背景
微服务架构是一项在云中部署应用和服务的新技术,每个微服务实现单一的业务功能,并在专有进程中运行。由于微服务架构在系统弹性、可扩展性、可维护性、可演化性等方面具有优势。
许多公司选择将其遗留的单体遗留系统迁移到MSA系统。但是由于遗留系统向微服务的架构跨度大,迁移过程中往往会有许多问题:人工迁移时往往需要对系统的深入理解;系统庞大,迁移繁琐,需要相关自动化工具支持;迁移需要相关理论来指导迁移过程,难度大;迁移的结果需有效指导代码开发。
动机
微服务迁移需要严格的迁移规范来正确地从遗留软件派生出微服务架构信息。在传统的基于组件和基于服务的系统开发中,模型驱动扮演着重要的角色。它表明在软件开发过程中使用模型作为第一级实体。需求有模型,设计有模型,甚至程序本身也是模型。模型驱动也可以用来提供严格的微服务架构规范,用于完成单体到微服务的迁移。目前的领域驱动设计也正是缺乏这种自动化工具的支持,并且领域驱动设计缺乏严格模型支持,无法进行基于语法语义的模型检验。其开发过程是依赖于项目领域专属的,以置其开发方法和设计结果不佳。软件系统生命周期中各阶段制品缺乏严格的规约和模型作为线索,其追踪和对齐比较困难,继而影响其系统的持续开发维护。基于此背景,我们尝试提供一个以模型驱动方法为核心的微服务集成开发与重构支持的工具平台。
目前工作:
我们研发了一种模型驱动的、可用于单体遗留系统微服务化重构的集成设计平台 (Microservice Modelling Tools)。目前,我们还在此平台基础上研发面向需求的微服务设计组件(MSA-Designer)、代码生成组件(MSA-Coder)等。
一篇论文已经在ICWS 2022上发表,另一篇论文处于在审状态。