微服务下一站 Koupleless模块化研发框架与运维调度系统 赵真灵 技术专家 未来规划与展望 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 蚂蚁微服务与应用研发的背景 目录研发框架 运维调度平台 实践过程与案例效果 01蚂蚁微服务与应用研发的背景 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 异常多 研发效率问题 效率低 认知负荷高,运维负担重 业务开发者需要感知复杂基础设施,框架与中间件升级维护成本高、周期长 部署上线慢,特别是大应用 (构建启动慢、机器多) 业务层 业务公共层 业务单元1 业务单元2 业务单元3 业务单元4 业务单元5 应用元数据与配置 业务身份 业务流程编排 工具集 公共资源与逻辑 RPC MQ DB Cache Config …… 研发框架(SpringBoot、SOFABoot等) 技术栈运行环境(JVM等) PaaS平台 CI/CD、迭代管理 代码与依赖包管理 监控、鉴权与安全 认知负荷高运维负担重 虚拟化容器运行时 K8s容器编排与调度 操作系统 Dockerfile镜像构建与分发 异常多 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 物理资源(计算存储网络) 故障检测与处理 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 多人协作阻塞 变更影响面大风险高 业务萎缩 小应用过多 资源成本 长期维护成本 小应用过多 多人协作阻塞 业务不断发展 开发人员多 流量大 机器多 更变影响更大,风险更高 小应用过多 资源成本 长期维护成本高 大应用过大 协作与资源成本 拆分过多 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 未拆:大应用过大 多拆:小应用过多 业务与组织变化灵活 发展迭代快且灵活 某些业务与组织已经较细分 不便进一步拆分 微服务拆分成本高 敏捷度 不一致 资源成本 长期维护成本 微服务合理拆分困难 02Koupleless研发框架的解法 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 模块化研发框架 屏蔽基础设施 细化研发运维粒度 模块化研发框架 大应用拆分成多个模块,小应用合并部署成一个进程 业务1,业务2,业务3 业务公共部分框架与中间件 大应用 纵向切出基座 业务1,业务2,业务3 基座应用 业务公共部分框架与中间件 横向切出多个模块 模块1开发者模块2开发者模块3开发者 业务模块1业务模块2业务模块3 基座应用 业务公共部分 框架与中间件基座开发者 模块1开发者模块2开发者模块3开发者 应用1应用2应用3 多个小大应用 合并部署 业务模块1业务模块2业务模块3 基座应用 业务公共部分 框架与中间件基座开发者 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 业务1,业务2,业务3,业务4 降低微服拆分成本 模块化研发框架 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 模块1模块2模块3模块4 模块1模块2模块3模块4 业务公共部分 基座应用 基座应用 应用3 应用4 应用1 应用2 应用3 应用4 框架与中间件 单体架构模块架构模块架构微服务架构微服务架构 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 业务 业务公共部分 框架与中间件 基座应用 业务公共部分 框架与中间件 业务模块 模块化研发框架 模块是什么 •一个普通的SpringBoot,构建产物为jar包而非镜像 •每个模块一个独立的ClassLoader+SpringContext •热部署(不重启机器) GOPS全球运维大会暨XOps技术创新峰会2024·北京站 模块化研发效果对比 模块化研发框架 传统应用 模块 对比 构建速度 265s 27s 1/10 构建产量大小 1385MB 0.02MB 1/70000 运行内存消耗 337MB 17MB 1/20 部署耗时 141s 4s 1/35 03Koupleless研发与运维调度平台 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 研发与运维调度平台 模块研发上线整体流程 验证失败 准备基座 (引入SDK) 模块创建 存量应用改造 大应用拆分 模块代码开发 模块瘦身 模块测试 模块构建 模块 制品 模块安装 模块验证 模块部署 模块调度 模块间通信 (OSS库) 新建模块 准备基座 研发与运维调度平台 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 1.引入KouplelessSDK 普通的应用 (SpringBoot) 基座 Main 方法启动 2.引入Koupleless基座构建插件 准备模块 研发与运维调度平台 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 1.引入Koupleless模块构建插件 普通的应用 (SpringBoot) 模块 Jar 热部署到基座 2.引入模块自动排包瘦身配置 研发与运维调度平台 查看状态 组件视图 控制组件 ModuleControllerModuleRegistry 中间件 ModuleDeploymentModuleSchedulerModuleScaler 基座池 pod (OSS) pod TracingCache DB Arkctl Arklet/ 模块1模块2 SOFAArk业务基座 …… Arklet/ 模块1模块2 SOFAArk业务基座 在线 消息流 量 RPC RuntimeRuntime 发起部署 K8s Config …… Arkctl研发工具,模块初始化,快速部署验证 SOFAArk类隔离与热部署的多模块框架 Arklet/Runtime运维管道,模块生命周期管理,多模块运行环境 ModuleController •ModuleDeployment:模块发布运维 •ModeuleScheduler:模块调度 •ModuleScaler:模块伸缩 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 研发与运维调度平台 日常机器组 高保机器组 Buffer ModuleController 业务模块1业务模块2 基座 业务公共部分框架与中间件 业务模块3 基座 业务公共部分框架与中间件 基座 业务公共部分框架与中间件 资源分配节点自愈 业务模块1业务模块2 基座 业务公共部分框架与中间件 业务模块3 基座 业务公共部分框架与中间件 基座 业务公共部分框架与中间件 自动弹性 服务无损切挂流多集群管理 K8s 基座Buffer 水位保持 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 研发与运维调度平台 研发与运维调度平台 模块粒度健康检查 可观测性 AB测试/灰度 模块多版本,快速AB测试/灰度/回滚 服务监控、日志监控、Trace、排障 A/B测试、灰度A/B测试、灰度 模块1(v1)模块1(v2) 模块2(v1)模块2(v2) GOPS全球运维大会暨XOps技术创新峰会2024·北京站 业务基座 流量隔离 模块间流量隔离 流量请求 域名1域名2 Pod1 模块1 流量1 流量2 模块2 业务基座 研发与运维调度平台 快•只感知业务本身,低认知负载,秒级启动 •并行迭代无阻碍 •模块不占额外机器,只占极少业务自 省身的CPU和内存 •弹性调度粒度小,资源密度高 灵活部署 •模块不占额外机器,只占极少业务自身的CPU和内存 •弹性调度粒度小,资源密度高 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 平滑演进•存量应用可低成本改造成或拆分模块 •模块可低成本演进成微服务也可回退回单体 04Koupleless研实践过程与案例效果 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 模块化研发框架 SOFAArk 开源 SOFAArk1.0发布& 2018年4月 2019年8月 2023年4月 2023年7月 2023年12月 2024年4月 至今 SOFAServerless开始内部建设 SOFAServerless1.0发布 Koupleless开源Koupleless1.0发布 蚂蚁40W核 蚂蚁60W核& 社区15家企业 蚂蚁70W核& 社区20家企业 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 案例一:蚂蚁集团热部署-提高研发效率 toC资金创新技术10+人toB资金创新技术10+人fundapplication应用 业务业务业务业务业务业务 toC资金创新技术2-3人业务模块1 研发运维灵活 toC资金创新技术2-3人业务模块N 线上运行隔离 PodPod PodPod 业务集群1 Whatamess! 代码 场景化模块化 联调测试发布运维 代码联调测试发布运维 PodPod LinkE + Serverless产品 (面向模块 toB资金创新技术2-3人 业务模块A toB资金创新技术2-3人 业务模块Z PodPod 业务集群2 的研发运维 平台) 代码联调测试发布运维 代码联调测试发布运维 代码联调测试发布运维 PodPod LinkE+主站Paas 面向经典SOFA的研发与运维体系 创新基座(Fundappbase) 业务集群2 主要矛盾 •创新效率低下,发布10min+,周级别迭代 •多团队共建协作成本高,互相抢占现象严重 •流量不隔离,无法支持业务高保,故障风险高 Serverless架构红利 •创新大幅提效,发布10min=>13s,周级别->1周3次*x迭代 •多人敏捷迭代,模块独立开发运维互不影响,资源成本下降 •隔离流量和资源从而实现故障隔离 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 案例二:南京爱福路合并部署-省资源 价值 长尾应用多且每个机房至少要部署2台机器,CPU使用率仅10%。使用合并部署多个应用可以合并到同一个基座上,基座由各业务域专人负责维护,从而极大降低了开发者的运维成本和资源成本。 BU1 模块应用1 BU1 模块应用2 各BU基座 BU1 模块应用N GOPS全球运维大会暨XOps技术创新峰会2024·北京站 收益 1.极致的资源成本降低,南京爱福路目前已经将6个传统应用合并到1个基座上 2.大幅提升启动速度,启动速度从114秒下降到29秒 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 案例三:阿里国际通用基座-基础设施下沉 价值 阿里国际,各种SDK的升级打扰、构建发布慢、申请机器额度管理是痛点问题。借助Koupleless通用基座模 式,帮助部分应用实现了基础设施低感升级,同时应用的构建与发布速度也从300秒减少到了30秒。 模块A 模块B 模块A 基座应用 业务通用SDK 基座应用 业务通用SDK 基座应用 业务通用SDK Msg Config Web Msg Config Web Msg Config Web RPC Datesource Cache RPC Datesource Cache RPC Datesource Cache SpringBoot SpringBoot SpringBoot Pod1 Pod2 Pod3 GOPS全球运维大会暨XOps技术创新峰会2024·北京站 案例四:中台与代码片段 特点 •基座更加复杂,大部分业务接口与编排逻