Serverless Devs:
Serverless 应用研发效能再提升的探索
——刘宇
Serverless Devses 项目发起人
一、Serverless Devs:从开源迈向标准
信通院发布了《基于无服务器架构的工具链能力要求》,进一步明确和定义了 Serverless 工具链模型,对工具链的功能和形态也提出进一步要求。这不仅是工具链模型,更是 Serverless 领域规范、统一的曙光。在更多层面的一致性或许难以实现,但是相信本着对用户负责的态度,体验层面的一致性依然能够得到保障,也感谢信通院为Serverless 领域做出的贡献和努力。
Serverless Devs 开源之初就定了下推动行业规范建设的目标,其诞生目的就是为开发者提供更好的 Serverless 应用全生命周期管理工具,助力效能提升,并推动领域规范标准统一,助力行业生态进一步繁荣。
2021 年,Serverless Devs Model 正式发布;2022 年,我们深度参与了模型推动。如今,模型已正式发布。作为模型的最佳实践,相信 Serverless Devs 未来一定会在模型基础上赋能行业发展,让 Serverless 更易用、更好用,助力行业提效降本再升级。
Serverless 架构能够带来效能提升,让开发者专注业务,降低综合成本。然而,由于工具链不完善、调试困难、厂商锁定、管理复杂等问题带来的困境也让大家苦不堪言。
2020 年 10 月,中国信息通信研究院发布国内首个《云原生用户调查报告》显示,在使用 Serverless 架构时,约有 24% 用户直接考虑工具链的完善情况,大于 50% 用户间接关注到工具链的完善情况,这也充分证明广大 Serverless 开发者对完善工具链的诉求和渴望。
好马配好鞍,好技术架构也需要有好的工具链加持。因此开源、开放的 Serverless Devs 应运而生,以提升Serverless 应用研发效能为目标,以使Serverless 架构更好用、更易用为准则,在 Serverless 应用全生命周期发挥作用。
Serverless Devs 在 2020 年 10 月正式开源之后,一直本着推动领域开发者规范的统一思想,为开发者生态不断繁荣、用户体验层更为规范和标准而不断努力。
在 Serverless 架构的加持下,应用开发效能有了明显提升。而在Serverless DevsOps 进一步加持下,综合效能更上一层楼。
无厂商锁定的建设思路,促使社区开发者们能够自主支持多家云厂商、多个社区的开源项目。通过全生命周期的能力建设,Serverless Devs 在提升研发效能和降低学习迁移成本层面也有着巨大效果。从开源开放到助力行业规范的统一建设,助力基于无服务器架构的工具链能力要求模型的发布。
Serverless Devs 正在为广大开发者提供更科学、更规范的使用路径,为行业进一步创新与繁荣而贡献自己的力量。
二、生态基石助力 Serverless 创新升级
Serverless Devs 和周边的配套设置从来不是单纯的工具链,其意义不仅是助力推动一致性的建设和开发者生态建设,更在于构建 Serverless 领域的生态基础。
在信通院发布的《基于无服务器架构的工具链能力要求》和开源的基础上,我们创新性地提出 Serverless Devs Model ,并根据该模型对外提供开发者工具和Registry 生态,这一部分将会以生态基础的思路进行建设。
通过这一套体验,开发者可以快速适配框架层,并在自身应用中发挥重要作用和价值,为开发者带来更为统一的功能体验,比如应用管理、发布、运维部署等,也可以为开发者提供多云平台更为统一的使用体验,比如公有云、开源项目或混合云等基于模型和开源社区的最佳实践。
Serverless Devs 开发者工具和Serverless Registry 可以让企业或开发者快速将业务部署到多平台 Serverless 服务上。而各个云平台或 Serverless 服务商也可以通过这套生态基础为用户提供更为规范和统一的工具链、应用中心和最佳实践等相关内容。
Serverless Registry 配合 Serverless Devs 开发者工具能够为 Serverless 领域带来无限可能。通过开源开放到生态基石,再向行业规范标准迈进,再赋能 Serverless 创新和升级,这不仅仅是目标,也是我们持之以恒的动力。
三、Serverless 应用研发效能再提升
作为一款可以在 Serverless 应用全生命周期发挥作用的开发者工具,Serverless Devs 可以在初始化、开发、调试、部署、运维等多个环节发挥重要作用。
开发者在初步接触 Serverless 架构时,会面临很多问题,比如如何创建函数、什么是事件触发、如何做 API 接口等。
但有了 Serverless Devs 的加持,开发者们可以最小代价实现上手,在有体验的前提下去学习、了解,将会事半功倍。
项目构建层面,Serverless 架构的本地开发环境和线上开发环境可能有所不同,经常面临本地代码没问题,发布到线上后却不能用的问题。所以项目构建已经成为很多 Serverless 开发者的痛。
但是在 Serverless Devs 的加持下,开发者只需要一行命令,即可在沙箱环境下实现构建和打包,这也是一种效能提升。
除此之外,应用调试也是 Serverless 开发者面临的痛点之一。在Serverless DevsOps 的加持下,开发者不仅可以在本地模拟线上环境快速调试,也可以一键构建代理服务,将 VPC 资源完美映射到本地,可以在本地直接进行全链路调试,甚至可以通过工具直接连接到线上实例进行代码调试。
多环境部署层面,开发者常常陷入没有思路的困境。而 Serverless Devs 通过模板继承以及指定环境部署等功能,与 CICD 平台天然契合,让开发者可以快速进行多环境创建、部署以及管理。
可观测性层面, Serverless开发者查看不同函数日志需要在不同控制台上反复来回跳转。而有了 Serverless Devs 后,无论是日志还是指标,甚至是链路追踪,只需一行命令即可一目然。
Serverless Devs 一直在为推动行业繁荣发展而努力。而实际上 Serverless Devs 更注重安全和研发效能提升,更注重对于开发者来说是否易用、能否在 Serverless 应用全生命周期助力研发人员更好更快地使用 Serverless 架构。
事实证明 Serverless Devs 取得了不小的成绩,得到了很多开发者的认可。
四、客户案例
阿里云在 Serverless Devs 基础上构建 Serverless 应用中心,为开发者们提供非常标准的GitOps 能力,帮助开发者从应用维度对 Serverless 进行管理和操作,包括环境划分等功能。
德勤集团基于 Serverless 架构进行不同环境的划分,通过不同功能的加持,助力开发和运维效率进一步提升。
德勤集团团队评价:开源 Serverless Devs 的出现,抹平了平台差异化,可以帮助开发者快速部署到不同云平台,打消用户入坑焦虑,同时也给厂商争取了共同协商统一标准的时间。
由此不难看出, Serverless Devs 功能整在不断地满足用户,另一方面其建设态度和思路也始终与广大开发者站在同一角度,为体验层规范、行业繁荣而不断努力,贡献自己的一份力量。
除云厂商和企业,开源社区也与 Serverless Devs 有着较好的合作基础。
CNCF沙箱项目 OpenFunction 计划基于 Serverless Devs 构建其开发者工具链体系。社区负责人也对 Serverless Devs 表示了肯定:Serverless Devs 通过打造开源开放、无厂商锁定的 Serverless 应用全生命周期管理工具,解决了不同 FaaS 平台规范不一致的问题。并表示,OpenFunction社区将与 Serverless Devs 社区紧密合作,使用户可以通过 Serverless Devs 开发者工具统一规范管理 OpenFunction 函数。
除此之外,无论是企业级开发者,还是社区开发者,或是贡献者,纷纷表达了对 Serverless Devs 的认可。在他们心中,Serverless Devs 不仅可以进行多个服务部署,实现兼顾本地调试的前提下后端服务快速上线,还可以实现函数计算代码配置、复用等功能。
Serverless Devs 能够对软件开发过程中各个方面都提供相应支持,如多语言开发脚手架、本地调试、端云调试、单元测试、CI/CD 等,可以使开发人员快速适应无服务器架构应用的开发,做有态度的产品,做有格局的技术。
Serverless Devs不仅是信通院发布的《基于无服务器架构的工具链能力要求》模型参与者,作为该模型的最佳实践, Serverless Devs也有责任为 Serverless 领域不断繁荣,为行业体验层规范的统一不断努力,不断贡献自己力量。