线上应用 10 秒启动、只占 20M 内存不再是想象~SOFAServerless 为你带来极致研发体验...

文章介绍了SOFAServerless项目,如何通过模块化应用架构和运维调度平台解决大应用协作问题和小应用资源浪费,实现秒级启动和资源优化。文章详细阐述了模块化拆分、研发框架的变化以及运维平台的关键组件,展示了其在蚂蚁集团内部的成效和应用场景。
摘要由CSDN通过智能技术生成

af89106587579463ce2deb2555b9e240.gif

你是否遭遇过大应用多人协作互相阻塞,发布效率太低?你是否苦于小应用太多,资源浪费严重

想要让手上的工程仅需增加一个打包插件,即可变成 10 秒启动、只占 20M 内存的工程吗?

今天我们为大家介绍——基于模块化能力,从应用架构、研发框架和运维调度方面提供完整配套的 SOFAServerless 项目。助你解决上述问题,让存量应用一键接入,享受秒级启动、资源无感等收益,轻松跨入 Serverless 研发模式,帮助企业降本增效!

01

模块化应用架构

为了解决文章开头提到的这些问题,我们对应用同时做了横向和纵向的拆分。

第一步,纵向拆分:把应用拆分成基座业务两层。这两层分别对应两层的组织分工。基座小组与传统应用一样,负责机器维护、通用逻辑沉淀、业务架构治理,并为业务提供运行资源和环境。通过关注点分离的方式,基座小组为业务屏蔽业务以下所有基础设施,使业务能够聚焦在业务自身上。

第二步,横向切分:我们将业务横向切分出多个模块,模块之间独立并行迭代、互不影响。同时模块由于不包含基座部分,构建产物非常轻量,启动逻辑也只包含业务本身,所以启动快,且具备秒级的验证能力,让模块开发得到极致的提效。

85023dd07a3f143fd63e877fa97233af.png

拆分前,每个开发者可能感知的部分包括框架中间件、业务公共部分、业务自身所有代码和逻辑

拆分后,团队的协作分工也发生改变,研发人员分工出两种角色:基座模块开发者。模块开发者不用关心资源与容量,只需聚焦在业务逻辑自身,并且享受秒级部署验证能力。


a9b4a329d70f41e54c79f5f954152248.png

需要重点关注的是,我们是如何做这些纵向和横向切分的。切分是为了隔离,隔离是为了能够独立迭代、剥离不必要的依赖。然而如果只是隔离,没有共享,那就相当于只是改变部署的位置而已,很难达到好的效果。

所以想要理解模块化架构背后的原理,需要聚焦到隔离与共享上来。

架构的优势

我们根据模块化架构在蚂蚁内部实际落地的效果进行总结,其优势主要集中在这四点:灵活部署以及平滑演进

e07db67a7792a850c248cd194aa9dedd.png

与传统应用对比,,数据如下,可以看到在研发阶段、部署阶段、运行阶段都得到了 10 倍以上的提升效果。

9ab21f867f0b0a0f406bfdcae729fb19.png

适用的场景

经过在蚂蚁集团内部四到五年的打磨,逐渐沉淀出的 6 大适用场景,看看是否有你需要的?

cec1fec7da6ff70c72f97d648eb14789.png

02

运维调度平台架构

光有应用架构还不够。只有在研发阶段、运维阶段、运行阶段都提供完整的配套能力,才能让模块化应用架构的优势真正触达到研发人员。

da569e15b12cfb4148e755e1215dae34.png


在研发阶段,需要提供基座接入能力、模块创建能力,更重要的是模块的本地快速构建联调能力;在运维阶段,提供快速的模块发布能力,在模块发布基础上提供 A/B 测试秒级扩缩容能力;在运行阶段,提供模块的可靠性能力,模块可观测流量精细化控制调度伸缩能力。

afe19dab46edf0d540dbb2beea1a4ce0.png

在整个平台里,需要 4 个组件:

  • 研发工具 Arkctl,开发者使用 Arkctl 完成模块快速创建、快速联调测试等能力

  • 运行组件 SOFAArk,提供基于 ClassLoader 的多模块运行的环境

  • Arklet 和 Runtime 组件,提供模块运维、模块生命周期管理、多模块环境适配

  • 控制面组件 ModuleController

● ModuleDeployment,提供模块发布与运维能力

● ModuleScheduler,提供模块调度能力

● ModuleScaler,提供模块伸缩能力

在这些组件基础上,我们提供了从研发到运维再到运行时的完善配套能力。

多集群、弹性与调度

3f54135e9af6ed76f431c72ed33c1b9a.png

将线上应用根据场景隔离出不同机器组,不同机器组上可以安装不同模块,给不同业务提供不同的 QOS 保障。同时可以单独划分出 Buffer 机器组,当业务机器组机器不够时,可以快速从 Buffer 机器组里调度出机器,安装上相应的模块,完成 10 秒级的扩容。

14afa1f2fcd17944fec06003e1d2cfac.png

由于模块的启动速度在 10 秒级,所以在弹性上也能做到与服务更加同频、伸缩更加实时。从上图可以看到,应用实例数曲线与流量曲线基本处于一致的状态。

可观测、高可靠、排障等能力

模块化运维调度作为在 pod 上一层的模型,与现有配套设施会有所不同,所以需要针对配套设施完成可观测、监控排障等能力适配。

106f1adcd6357ecbbcfb56945911e02d.png

A/B 测试、灰度测试

一个模块更新时,可以同时存在多个版本。通过引流规则完成灰度测试,或者 A/B 测试。

aeddebc019305eef598cdc7088489a69.png

流量隔离与精细化路由

在上述内容中,已经将应用粒度从机器分组、代码分组(模块)上做了更细粒度的划分,这里我们将流量也进一步进行细粒度划分。

一组模块和对应所在的机器组可以分配不同的流量单元,再根据请求的不同参数,精细化路由到对应的流量分组中。

46bcf0304e880fd8d02340066f851348.png


当前完整能力已经开源:https://github.com/sofastack/sofa-serverless。非常期待与大家一起建设社区!

还有 2 分钟上手试用视频教程,欢迎在 https://sofaserverless.gitee.io/docs/video-training/ 进行查看&试用。

SOFAServerless 当前已接入 15+ 企业

8b994707716d546801f09826c6a654df.png

如果你也想为企业实现降本增效,欢迎扫码咨询探讨~

376988898fdeebe6cbfb2ca07c4c86d1.png

1a7005c2a6776d3a11ada8b121c3e423.png

03

未来展望&议题分享

在未来,SOFAServerless 还将持续不断地探索。发现业务痛点,并为各行各业提出 Serverless 的解决方案。

以下,感谢各位开源共建开发者一直以来的支持与付出!(排名不分先后)

@QilingZhang @lvjing2 @glmapper @yuanyuancin @lylingzhen @yuanyuan2021 @straybirdzls @caojie09 @gaosaroma @khotyn @FlyAbner @zjulbj @hustchaya @sususama @alaneuler @compasty @wuqian0808 @nobodyiam @ujjboy @JoeKerouac @Duan-0916 @poocood @qixiaobo @lbj1104026847 @zhushikun @xingcici @Lunarscave @HzjNeverStop @AiWu4Damon @vchangpengfei @HuangDayu @shenchao45 @DalianRollingKing @lanicc @azhsmesos @KangZhiDong @suntao4019 @huangyunbin @jiangyunpeng @michalyao @rootsongjc @liu-657667 @CodeNoobKing @Charlie17Li @TomorJM @gongjiu @gold300jin @nmcmd

12 月 16 日 KCD 2023 深圳站(👈点击查看活动详情),期待和各位技术爱好者面对面交流探讨!

蚂蚁集团技术专家赵真灵将分享《云原生微服务的下一站,蚂蚁 SOFAServerless 新架构的探索与实践》。活动现场将设立展台进行 SOFAServerless 能力演示、操作流程互动展示。如果你对 SOFAServerless 感兴趣,欢迎前来参与体验~

扫描下方二维码或者点击「阅读原文」均可报名参与。

d9e09f9ac28e45dcd29c537f0c5cde03.png

进入 SOFAServerless 官网抢先体验:https://sofaserverless.gitee.io/docs/tutorials/trial_step_by_step/

如遇问题,可在 SOFAServerless GitHub 页面及时提交 issue 互动交流~

   推荐阅读  

d76149e9d1e47b43b1ba433910728fe8.png

蚂蚁 SOFAServerless 微服务新架构的探索与实践

71eda730e3bcfbdcf14a32440d03415f.jpeg

超越边界:FaaS 的应用实践和未来展望

b0a73250397dd9916222d357ff33fa77.jpeg

大象转身:支付宝资金技术 Serverless 提效总结

1d994a74c6eaea63ea1f549f003b2662.png

Lunettes - 让 Kubernetes 服务运营更简单

e0569ca49ed725b92f97f96273717f38.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值