基于信通院 Serverless 工具链模型的实践:Serverless Devs

1,483 阅读9分钟

作者: 江昱

前言

2022 年 6 月 15 日,信通院在中国信通院云原生产业大会上发布《基于无服务器架构的工具链能力要求》标准,至此全球首个云原生 Serverless 开放工具链模型正式发布!Serverless Devs [ 1] 作为开源开放的开发者工具积极参与工具链模型建设,为树立行业领域统一规范发挥出助推作用。

随着云计算发展,以及云原生热度的攀升,Serverless 架构崭露头角且发展势头迅猛。不仅被更多开发者所关注,市场占有率也逐年提高。然而,业内各平台提供的 Serverless 服务存在较大差异,无形中增加了用户的学习、开发、调试、移植成本。各大云厂商和开源框架所能提供的 Serverless 服务(无论从能力范围还是从产品形态、使用体验等方面)却不尽相同,因此许多开发者在选择使用 Serverless 之初,最大的担忧便是厂商绑定问题

在 2021 年中国信息通信研究院发布的《中国云原生用户调查 2021》数据中明确提及:在采纳 Serverless 技术前,31.69% 的用户会考虑厂商绑定问题,30.62% 的用户考虑相关工具集的完善程度。

这些数据背后透露的实际上是:开发者对于完善工具链的强烈需求和渴望

基于这一现象,中国信通院发布的全球首个云原生 Serverless 开放工具链模型,旨在融合不同实现方式之间的差异,抽象出一套行之有效的工具链规范,统一 Serverless 应用全生命周期的操作体验,驱动 Serverless 技术的标准化发展与广泛落地。

Serverless 开放工具链模型

Serverless Devs 作为开源开放的开发者工具,自其立项始,便以提升 Servelress 应用研发效能为目标,以让 Serverless 架构更好用、更易用为准则,期望在 Serverless 应用全生命周期发挥出重要作用。

Serverless Devs 不仅仅在工具链定位层面和信通院所发布的模型思路吻合(都是希望通过对 Serverless 应用全生命周期管理能力的建设,助力开发者研发效能提升,降低学习成本,提升使用幸福感),在功能支持层面以及工具链产品形态上,也与该模型高度一致。

模型解读

此次信通院所发布的《基于无服务器架构的工具链能力要求》标准,是对 Serverless 架构工具链体验层的规范与统一,做出规约。此举可以降低用户的使用与迁移成本,有助于屏蔽不同实现方式之间的差异,进而推动无服务器架构技术的广泛应用。

1.png

(中国信通院发布)

《基于无服务器架构的工具链能力要求》:从能力框架入手,通过接入范围、使用方法、操作形式等几个方面,对 Serverless 工具链的基本形态进行了规约;通过初始化配置、应用开发、应用调试、应用打包、部署发布以及应用下线几个阶段,对 Serverless 工具链的能力范围,即全生命周期管理能力进行了更为细致的规约;

最后通过对支撑能力(包括不限于授权管理、触发管理、应用管理、运维管理、研运管理等几个方面)以及开放能力(包括不限于拓展开发、组件管理等几个方面)进一步对 Serverless 工具链的具体形态,所需功能进行了相关的描述。

通过该模型,各个平台所提供的 Serverless 开发者工具将趋于统一,更为规范。

对用户的而言,对无服务器架构(Serverless)的工具链能力做出规范性的标准化要求,相当具有必要性。该模型的发布可以让不同平台较为割裂的 Serverless 使用体验,逐渐朝向统一规范的形态演进,消解用户厂商锁定的顾虑。

通过该模型实现的 Serverless 工具链项目,能够让开发者获得更为一致的开发使用体验,即便是使用不同平台所提供的 Serverless 产品或服务。以调试功能为例:该模型认为,工具应提供基于本地环境的调试能力,宜支持在沙箱环境执行本地调试,宜支持端云调试,可支持云端调试。

此外通过这样的规约,也可以帮助厂商积极开拓建设思路,查缺不足,补平自身的工具所应该具备的能力。这对行业统一规范建设,提升用户研发效能等都具有极高的价值和战略性意义。

另外值得注意的是,在《基于无服务器架构的工具链能力要求》中,还涉及到拓展开发、组件管理等相关能力的描述,可以感受到信通院对工具链开放生态的重要态度。

Serverless Devs

2.png

Serverless Devs 自 2020 年 10 月正式开源后,一直为开发者生态不断繁荣,优化用户体验层面的规范化、标准化持续努力着。

创新升级

3.png

基于开源开放建设的 Serverless Devs 开发者工具,信通院所发布的《基于无服务器架构的工具链能力要求》在开源的基础上,创新性提出了 Serverless Devs Model,并根据该模型对外提供开发者工具Registry 生态

而这一部分将会以生态基础的思路进行建设,通过这一套体验,开发者可以快速适配框架层,并在自身的应用中发挥重要的作用和价值。

为开发者带来更为统一的功能体验,例如应用管理,发布,运维部署等,也可以为开发者提供多云平台的更为统一的使用体验,例如公有云,混合云。

4.png

基于模型和开源社区的最佳实践,Serverless Devs 开发者工具和 Serverless Registry 为企业或开发者提供快速将业务部署到多平台的 Serverless 服务。

而各个云平台或 Serverless 服务商,也可以通过这套生态基础,为用户们提供更为规范和统一的工具链、应用中心和最佳实践。

记得 Serverless Devs 社区在和 Laf 社区的负责人介绍 Serverless Devs 和 Serverless Registry 的时候,Laf 社区的负责人激动地说到:“Python 里面有 Pypi,Node.js 里面有 Npm,Serverless 领域有 Serverless Registry,配合开发者工具可以做无限的可能,这就是生态的基础啊,这太有格局,太有重要意义了。”

Serverless Devs 作为一款无厂商锁定,开源开放的 Serverless 开发者工具,不断地赋能 Serverless 创新升级,能够灵活自由地为不同平台的 Serverless 开发者和厂商用户提供全生命周期管理能力,是我们长期坚持的目标。

5.png

以阿里云函数计算(FC)为例,Serverless Devs 可以在初始化、开发、调试、部署、运维等多个领域发挥出重要的作用。

阿里云在 Serverless Devs 基础上,构建了 Serverless 应用中心 [ 2] ,为开发者们提供了非常标准的 GitOps 能力,帮助开发者可以从应用纬度,对 Serverless 应用进行管理和操作,包括环境划分等相关功能。

6.png

德基集团,便是基于 Serverless 架构进行不同环境的划分,通过不同功能的加持,助力开发和运维效率全面加速提升。

德基集团的团队同学同学这样评价 Serverless Devs:"开源的 Serverless Devs 的出现,抹平了平台间的差异化,帮助我们开发者快速的部署到不同的云平台,打消用户的入坑焦虑同时,也给个厂商争取了共同协商统一标准的时间。由此,我们也不难看出,Serverless Devs 的功能确实是在不断的满足用户,其建设的根本目标,建设态度和思路,也是和广大开发者站在同一角度的。当然,我们也正在为体验层的规范,行业的繁荣,而不断努力贡献自己的一份力量。"

7.png

除了云厂商、企业的选择,开源社区也和 Serverless Devs 有着密切的合作联系,CNCF 的沙箱项目 OpenFunction,也正打算基于 Serverless Devs 构建其开发者工具链体系。社区负责人也表达:"Serverless Devs 通过打造开源开放、无厂商锁定的 Serverless 应用全生命周期管理工具解决了的 FaaS 平台各有各的规范这一问题。" 并表示 OpenFunction 社区将与 Serverless Devs 社区加紧合作,使用户可以用统一规范管理的 OpenFunction 函数。

8.png

结语

一方面 Serverless Devs 注重是安全,注重的是研发效能的提升;另一方面我们也十分关注它是不是“接地气” 的,开发者能不能好用,能不能易用;Serverless Devs 能不能真的在 Serverless 应用全生命周期,助力研发同学更好,更快的享受 Serverless 架构所带来的红利。

我们也希望 Serverless  Devs 能够持续为行业发展与生态繁荣贡献自己的力量,无论是参编信通院发布的《基于无服务器架构的工具链能力要求》标准,还是组建 Serverless 开发者社区,发布《Serverless 开发速查手册》,亦或是全国范围内举办 Serverless Meetup 线下活动;Serverless Devs 一直希望通过自身的努力,能够为行业发光发热,贡献力量。

在未来,Serverless Devs 不仅仅会作为开发者工具, 为开发者们提供好用的无厂商锁定的 Serverless 开发体验,还会以开源代码,开发生态的形式持续建设发力,为行业规范、繁荣,贡献力量。

参考链接:

[1] Serverless Devs:

www.serverless-devs.com/

[2] Serverless应用中心:

fcnext.console.aliyun.com/application…

[3] 社区 GitHub:

github.com/serverless-…