您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[蚂蚁开源]:蚂蚁 SOFAServerless 极致降本增效方案——微服务新架构的探索与实践 - 发现报告
当前位置:首页/行业研究/报告详情/

蚂蚁 SOFAServerless 极致降本增效方案——微服务新架构的探索与实践

蚂蚁 SOFAServerless 极致降本增效方案——微服务新架构的探索与实践

蚂蚁SOFAServerless极致降本增效方案 微服务新架构的探索与实践 赵真灵/蚂蚁中间件应用服务 目录 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 蚂蚁微服务背景 资源与效率 效率低:认知负荷高,运维负担重 •业务开发者需要感知复杂基础设施,异常多 •框架与中间件升级维护成本高、周期长 •部署上线慢,特别是大应用(构建启动慢、机器多) 异常多,业务同学心声:不出问题还好,一出问题,就相 当于新学一门技术 现状正在尝试的解法 •服务网格 •应用运行时 •平台工程 业务更想要的业务未来想要的 •业务公共部分也是基础设施 •AI屏蔽一切 多人协作阻塞,变更影响面大,风险高 •大应用过大 资源成本与长期维护成本高 •小应用过多 大应用多大算大?小应用多少个算多? 问题必然性 -微服务系统也是生态,参考28定律,极少数的大应用占有大量的流量 如何合理拆分微服务是个老大难的问题 •微服务的拆分与业务和组织发展敏捷度不一致 行业微服务现状 拆分与业务敏捷度不一致 拆分与业务敏捷度不一致 拆分与业务敏捷度不一致 资源与长期维护成本 基础设施复杂 基础设施复杂 基础设施复杂 多人协作阻塞 多人协作阻塞 多人协作阻塞 小型企业 中型企业大型企业 资源与长期维护成本 资源与长期维护成本 现有尝试解法 •服务网格、应用运行时dapr、layotto,平台工程 •Springmodulith,GoogleServiceWeaver 现有尝试解法的问题 •从业务角度,只屏蔽部分基础设施,未屏蔽业务公共部分 •存量应用接入改造成本高 •初期发展中,各自只解决其中部分问题 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 关注点分离 屏蔽业务以下所有基础设施 多个业务模块并行迭代 纵向切出基座 横向切出多个模块 模块: -不需关心资源、容量 -专注业务开发 -秒级启动 -30秒级并行发布 基座: -研运与传统应用完全一致 -沉淀通用依赖和逻辑 -为模块提供运行资源与环境 对应用同时进行纵向和横向拆分,纵向拆分成基座和模块,横向拆分成多个模块,让业务专注于业务本身 那么如何拆分的呢? 模块是什么 -SpringBoot打包生成的jar -一个模块一个ClassLoader -热部署(不重启机器) https://github.com/sofastack/sofa-serverless 模块间隔离 -SpringBoot隔离Bean -ClassLoader隔离配置和代码 模块间共享 -模块默认复用基座类 -SpringContextManager 多模块的运行环境 -模块运维与生命周期管理:Arklet -模块的运行容器:ArkContainer -框架适配器 -多模块的隔离与共享机制 原生使用方式,低成本接入 -模块也是SpringBoot/SOFABoot -默认的共享机制,业务代码低侵入 多模块间通信 -基座与模块通信无序列化开销 -模块与模块通信有序列化开销 降低微服拆分成本 •资源成本 •单体架构与微服务架构之间增加模块架构 •单体应用低成本拆分成模块应用 •模块应用可低成本演进成微服务,也可回退回单体应用 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 组件视图 SOFAArk -类隔离与热部署的多模块框架 Arklet -运维管道,模块生命周期管理,多模块运行环境 Arkctl -研发工具,模块初始化,快速部署验证 ModuleController •ModuleDeployment -模块发布运维 •ModeuleScheduler -模块调度 •ModuleScaler -模块伸缩 调度与伸缩 调度与伸缩 可观测性 -模块粒度健康检查 -服务监控、日志监控、Trace、排障 AB测试/灰度 -模块多版本,快速AB测试/灰度/回滚 流量隔离 -单集群模块间流量隔离 -根据请求参数精细化路由 一次性成功率90->99% 一个批次部署耗时15分钟,一次迭代12天降低至3.5天发布次数2万次/月 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 该模式存在的挑战 单进程里多应用 -中间件与二三方包static变量导致多应用间互相干扰 模块应用动态卸载 -中间件与二三方包未考虑动态卸载,存在部分资源未清理 问题的发现 -兼容性评测与报告 -运行异常自动诊断 问题的治理 -中间件与二三方包治理 -事件扩展机制,允许自定义清理逻辑 -指定版本路由,流量只进入最新版本 问题的防御 -代码扫描与准入 -最佳实践 四种解决方案 优势 -启动与部署快 -无多ClassLoader,无热卸劣势 -依赖调度 -无多模块合并,资源复用率低 优势 -协作效率高,资源复用率高 -业务范围广 劣势 -需解决static互相干扰与卸载问题 SOFAServerless产品解决方案 •基座:模块=1:1 •只有一个 ClassLoader •调度+异步重启发布 •模块为普通应用 •重启发布 原生模 式 静态合 并部署 优势 -解决多人协作阻塞痛点 -资源复用率高,无热卸 劣势 -需解决static互相干扰问题 -重启发布,部署速度比热安装慢 轻应用 模式 中台 模式 •模块为普通应用,可 发服务 •重基座,基座作为平台 •模块不发布服务, 只实现基座SPI •重基座 优势 -协作效率高,资源复用率高 -业务范围广 -无需关注static互相干扰与卸载问题 劣势 -业务场景比较受限 BU1模块应用N … 价值:蚂蚁长尾应用多且每个机房至少要部署2台机器,CPU使用率仅10%。使用通用基座模式多个应用可以合并部署到同一个基座上,通用基座由平台方负责维护,从而极大降低业务的运维成本和资源成本。 行业生态 资源运营 后台模块 数据风 险服务 模块 技术风险运行指标后台模块 GOC后台 管控业务…模块 BU1模块应用1 BU1模块应用2 大支付sofabase通用基座 CTOctoserverlessbase通用基座 国际各BU通用基座(为裁撤机器) 收益: 1、极致的资源成本降低,国际会将30个传统应用合并到5个以下。 2、小应用可以不走很重的应用申请上线流程,不需要申请机器,直接部署到通用基座,帮助业务快速创新。 3、因为使用热部署,多个业务之间仍可独立并行迭代,秒级发布,互不影响。 … toC资⾦创新技术10+人 … toB资⾦创新技术10+人 fundapplication应用 业务 业务 业务 业务 Whatamess! 代码 联调 测试 发布 运维 LinkE+主站PaaS 面向经典SOFA的研发与运维体系 业务 业务 代码 联调 测试 发布 运维 业务模块1 toC资⾦创新技术2-3人 代码 联调 测试 发布 运维 业务模块N toC资⾦创新技术2-3人 研发运维灵活 线上运行隔离 业务集群1 Pod Pod LinkE + Serverless 产品 (面向场景、模块的研发运维体系) … toB资⾦创新技术2-3人 toB资⾦创新技术2-3人 业务集群2 Pod Pod Pod Pod 场景化模块化 代码 联调 测试 发布 运维 业务模块A 代码 联调 测试 发布 运维 业务模块Z … 业务集群3 Pod Pod 创新基座(fundappbase) 主要矛盾 创新效率低下,发布10min+,1周1次迭代多团队共建协作成本高,互相抢占现象严重流量不隔离,无法支持业务高保,故障风险高 Serverless架构红利 创新大幅提效,发布10min=>13s,1周1次->1周3次x模块数迭代多人敏捷迭代,模块独立开发运维互不影响,资源成本下降 隔离流量和资源从而实现故障隔离 财富 高保业务 长尾业务 [财富腰封][保险腰封] 支付宝 财富 网商 RecService … 容器 搜推引擎:组装&编排 CE 算法2 算法1 财富业务集群 [首页腰封] 支付宝首页业务集群 [定投推荐][push文案] … SOFAServerlessRuntime 推荐基座 长尾业务集群 搜推研发工作台 LinkE+Serverless产品 搜推业务基座 •纯计算中台型业务,线上研发 •期望小时级上线快速试错 •一个大应用,线上搜推场景未隔离,互相影响 •搜推已接入300+模块,划分了46+业务集群实现了隔离部署 •模块开发者170+,基座维护者6人 •研发过程完全独立,平均上线耗时<半天 SOFAServerless荣获中国信息通信研究院评选的2022年度云原生技术创新奖 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 总结 适用场景 存量应用低成本享受到Serverless收益的研发框架与平台 开源 •能力开源:框架,研发工具,运维调度平台 •地址:https://github.com/sofastack/sofa- serverless 长期目标与愿景 •Speedasyouneed •Payasyouneed •Deployasyouneed •Evolutionasyouneed •支持多语言,多框架 •1000家企业 关键时间计划 当前:SOFAArk模块化组件已开源9月底:0.5版本,基础试用版 11月:1.0版本发布 微信交流群 落地场景客户案例踩坑经验 源码能力经验方法治理标准 合作共建长期演进 扶持10+企业帮助降本增效 钉钉交流群 THEEND 欢迎一同探索微服务新架构,致力降本增效 钉钉企业沟通交流群微信企业沟通交流群 开发者沟通协作群