蚂蚁微服务与应用研发总结
背景与问题
- 研发效率问题:传统研发模式存在协作成本高、资源占用大、微服务拆分困难等问题。
- Koupleless框架的解法:通过模块化研发框架,将大应用拆分成多个模块或合并小应用部署,降低微服务拆分成本。
研发框架
- 模块化研发框架:模块为独立的SpringBoot应用(jar包),具有独立的ClassLoader和SpringContext,支持热部署。
- 模块定义:业务模块为普通SpringBoot应用,支持多语言、多框架。
- SOFAArk类隔离与热部署:通过Arklet/Runtime运维管道管理模块生命周期,实现多模块运行环境。
研发与运维调度平台
- 模块研发上线流程:准备基座、准备模块、使用Arkctl工具初始化和部署验证。
- 核心工具:ModuleDeployment(模块发布运维)、ModuleScheduler(模块调度)、ModuleScaler(模块伸缩)。
- 可观测性:支持模块多版本AB测试/灰度/回滚,模块粒度健康检查,服务监控、日志监控、Trace、排障。
- 流量隔离:实现模块间流量隔离,降低认知负载,支持秒级启动。
实践过程与案例效果
- 案例一:蚂蚁集团热部署
- 问题:发布耗时10分钟+,周级别迭代,多团队协作成本高,流量不隔离。
- 效果:发布时间缩短至13秒,周级别迭代3次,资源成本下降,故障隔离。
- 案例二:南京爱福路合并部署
- 问题:长尾应用资源利用率低。
- 效果:6个应用合并到1个基座,资源成本降低,启动速度从114秒降至29秒。
- 案例三:阿里国际通用基座
- 问题:SDK升级慢、构建发布慢、机器额度管理复杂。
- 效果:构建发布时间缩短至30秒,基础设施低感升级。
- 案例四:中台与代码片段
- 特点:基座复杂,模块更小(SPI实现、代码片段或Groovy脚本)。
未来规划与展望
- 开源计划:框架、研发工具、运维调度平台开源,官网:https://koupleless.io,GitHub:https://github.com/koupleless/koupleless,已有20+企业接入。
- 长期目标:实现“按需研发、按需付费、按需部署、按需演进”,支持多语言、多框架,目标覆盖1000家企业。
- 关键挑战:低成本使用,计划Q2完成模块低成本接入和多应用适配框架上线,Q3发布ModuleController 2.0,Q4发布模块与基座管理产品。
- 生态合作:与生态合作,将模块化能力建设成为行业能力。