AI智能总结
赵真灵/蚂蚁中间件应用服务 目录 1蚂蚁微服务背景2SOFAServerless的解法与效果3SOFAServerless的平台介绍4蚂蚁的实践经验与案例5总结与展望 1蚂蚁微服务背景 2SOFAServerless的解法与效果3SOFAServerless的平台介绍4蚂蚁的实践经验与案例5总结与展望 蚂蚁微服务背景 蚂蚁微服务研发痛点-效率问题 效率低:认知负荷高,运维负担重 •业务开发者需要感知复杂基础设施,异常多•框架与中间件升级维护成本高、周期长•部署上线慢,特别是大应用(构建启动慢、机器多) 异常多,业务同学心声:不出问题还好,一出问题,就相当于新学一门技术 蚂蚁微服务研发痛点-效率问题 蚂蚁微服务研发痛点-协作与资源成本高 多人协作阻塞,变更影响面大,风险高•大应用过大 问题必然性-微服务系统也是生态,参考28定律,极少数的大应用占有大量的流量 蚂蚁微服务研发痛点-微服务合理拆分困难 如何合理拆分微服务是个老大难的问题 •微服务的拆分与业务和组织发展敏捷度不一致 行业微服务现状 现有尝试解法的问题 现有尝试解法 •从业务角度,只屏蔽部分基础设施,未屏蔽业务公共部分•存量应用接入改造成本高•初期发展中,各自只解决其中部分问题 •服务网格、应用运行时dapr、layotto,平台工程•Springmodulith,GoogleServiceWeaver 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 SOFAServerless的解法 SOFAServerless的解法 模块: -不需关心资源、容量-专注业务开发-秒级启动- 30秒级并行发布 基座: -研运与传统应用完全一致-沉淀通用依赖和逻辑-为模块提供运行资源与环境 对应用同时进行纵向和横向拆分,纵向拆分成基座和模块,横向拆分成多个模块,让业务专注于业务本身 那么如何拆分的呢? 多模块间的隔离与共享 模块是什么 模块间隔离 模块间共享 -SpringBoot打包生成的jar-一个模块一个ClassLoader-热部署(不重启机器) -模块默认复用基座类-SpringContextManager -SpringBoot隔离Bean-ClassLoader隔离配置和代码 https://github.com/sofastack/sofa-serverless 多模块间的隔离与共享 多模块的运行环境 -模块运维与生命周期管理:Arklet-模块的运行容器:ArkContainer-框架适配器-多模块的隔离与共享机制 多模块间的隔离与共享 原生使用方式,低成本接入-模块也是SpringBoot/SOFABoot -默认的共享机制,业务代码低侵入 多模块间的隔离与共享 多模块间通信 -基座与模块通信无序列化开销-模块与模块通信有序列化开销 SOFAServerless的解法 SOFAServerless的解法 降低微服拆分成本 •资源成本 •单体架构与微服务架构之间增加模块架构•单体应用低成本拆分成模块应用•模块应用可低成本演进成微服务,也可回退回单体应用 SOFAServerless的解法 SOFAServerless的效果 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 研发框架与平台 研发框架与平台 ModuleController •ModuleDeployment-模块发布运维•ModeuleScheduler-模块调度•ModuleScaler-模块伸缩 研发框架与平台–弹性调度 研发框架与平台–弹性调度 研发框架与平台–可靠性 AB测试/灰度 可观测性 -模块粒度健康检查-服务监控、日志监控、Trace、排障 -模块多版本,快速AB测试/灰度/回滚 流量隔离 -单集群模块间流量隔离-根据请求参数精细化路由 研发框架与平台–研发运维提效 一次性成功率90->99%一个批次部署耗时15分钟,一次迭代12天降低至3.5天发布次数2万次/月 1蚂蚁微服务背景 2SOFAServerless的解法与效果 3SOFAServerless的平台介绍 4蚂蚁的实践经验与案例 5总结与展望 该模式存在的挑战 单进程里多应用-中间件与二三方包static变量导致多应用间互相干扰 模块应用动态卸载-中间件与二三方包未考虑动态卸载,存在部分资源未清理 SOFAServerless产品解决方案 四种解决方案 案例—通用基座(原生模式) 价值:蚂蚁长尾应用多且每个机房至少要部署2台机器,CPU使用率仅10%。使用通用基座模式多个应用可以合并部署到同一个基座上,通用基座由平台方负责维护,从而极大降低业务的运维成本和资源成本。 收益: 1、极致的资源成本降低,国际会将30个传统应用合并到5个以下。2、小应用可以不走很重的应用申请上线流程,不需要申请机器,直接部署到通用基座,帮助业务快速创新。3、因为使用热部署,多个业务之间仍可独立并行迭代,秒级发布,互不影响。 案例—资金业务(轻应用模式) 主要矛盾创新效率低下,发布10min+,1周1次迭代多团队共建协作成本高,互相抢占现象严重流量不隔离,无法支持业务高保,故障风险高 Serverless架构红利创新大幅提效,发布10min=> 13s,1周1次-> 1周3次x模块数迭代多人敏捷迭代,模块独立开发运维互不影响,资源成本下降隔离流量和资源从而实现故障隔离 案例—搜推业务(中台模式) •纯计算中台型业务,线上研发•期望小时级上线快速试错•一个大应用,线上搜推场景未隔离,互相影响 •搜推已接入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版本发布 微信交流群 THE END 欢迎一同探索微服务新架构,致力降本增效