近日,经过云原生计算基金会(CNCF)TOC 例会上投票决议,Serverless Devs 正式成为 CNCF 官方沙箱项目。开源开放的 Serverless 开发者平台 —— Serverless Devs 由阿里云开源,致力于为开发者提供强大的工具链体系。通过该平台,开发者不仅可以一键体验多云 Serverless 产品,极速部署 Serverless 项目,还可以在 Serverless 应用全生命周期进行项目的管理,并且非常简单快速地将 Serverless Devs 与其他工具/平台进行结合,进一步提升研发、运维效能。
Serverless Devs 是 CNCF 首个 Serverless Tool 项目。未来,Serverless Devs 社区将与更多开发者和用户共建,持续致力于打造无厂商锁定的 Serverless 应用全生命周期管理工具,让 Serverless 更简单,更好用。
CNCF TOC 在会议上对 Serverless Devs 作出如下评价:
Davanum Srinivas (CNCF TOC ) 表示如果你是一位普通的开发者,你有很多 Serverless 应用需要运行,你一定希望自主选择去哪个平台运行,这个平台最好有基于不同语言的模版,你可以基于此快速开始。Serverless Devs 就是这样一个平台,它已经准备好了很多模版,帮助开发者在一个Serverless 运行时中进行部署。它让开发者可以轻松开启 Serverless 之旅。
Emily Fox (CNCF TOC ) 认为 Serverless Devs 非常关注开发者的体验体验,同时也非常关注 Serverless 应用在不同云平台的部署。
Serverless Devs 项目地址: https://github.com/serverless-devs/serverless-devs
Serverless Devs 的六个优势
- 无厂商锁定:得益于功能的可插拔特性,可以非常简单的支持不同云厂商的项目部署,或者一键部署到不同云平台。目前 Serverless Devs 已经支持了阿里云函数计算 、AWS Lambda 、百度智能云函数计算 、华为云函数工作流 、腾讯云云函数等多云的 FaaS 产品;
- 开源形式建设:项目通过开源代码,开放生态进行建设的,开发者可以随时查看和参与 Serverless Devs 开发者工具的贡献,也可以随时随地进行相关组件和应用的贡献。当然,除了这种开源开放的形态,我们也鼓励一些企业级团队,通过 Serverless Registry Model 建设自己的私有 Registry 以定制化某些不便公开的自定义组件;
- 功能灵活可插拔:Serverless Devs 开发者工具本身,不具备任何业务能力,所有的业务能力均是通过组件化的形式,进行可插拔式使用,并且每个组件可以根据需要,自定义相对应的命令和功能;开发者可以在一个应用中,选择不同的组件完成对应的业务能力,以满足对不同模块的诉求;
- 简单快速上手:通过开放 Serverless Registry 的模型/规范,该项目可以通过应用的模式,为开发者提供多种形式,多种领域以及多种场景的上手案例,帮助开发者快速了解、学习、深入、上手 Serverless 架构;
- 应用全生命周期管理:通过组件化的支持,Serverless Devs 可以在应用的全生命周期发挥重要的作用,以 阿里云函数计算的 FC 组件 为例,开发者可以在项目创建、项目的开发、调试、可观测性等多个层面进行项目的建设和管理;
- 良好的集成与被集成性:项目具有非常好的集成性与被集成性,可以通过组件化的支持,非常简单的与传统的生态进行有机结合。同时,Serverless Devs 开发者工具也可以非常简单的被集成到海量的自动化流程中;
设计哲学
Serverless Devs 是一个开源开放的 Serverless 领域的工具链项目,他不仅仅表示单纯的某个命令行工具,在一定程度上指的是一个完整的工具链体系。
在 Serverless Devs 中,拥有两个角色:
- 开源贡献者:开源贡献者将按照 Serverless Package Model 进行组件/应用的开发 ,并将内容发布到Serverless Regsitry 中,既可以被更多人所使用;
- Serverless 开发者:通过开发者工具(包括命令行工具以及桌面端等工具),进行应用的初始化,以及组件的使用;通过开发者工具,将业务按照预期部署到线上;
除此之外,在 Serverless Registry 中,有两种形态的 Package(组件和应用):Component 和 Application:
- Component:指的是组件;是由 Package developer 开发并发布的符合 Serverless Package Model 规范的一段代码,通常这段代码会在应用中被引用,并在 Serverless Devs 开发者工具 中被加载,并按照预定的规则进行执行某些动作。例如,将用户的代码部署到 Serverless 平台;将 Serverless 应用进行构建和打包;对 Serverless 应用进行调试等;
- Application:指的是应用;可以由 Package developer 公开发布到 Registry,以供更多人学习和使用,例如某位贡献者贡献了一个猫狗识别的案例到 Registry;也可以由 Serverless developer 开发,例如某人开发了一个 人脸识别的应用;通常情况下一个应用可以引用一个或者多个组件,并通过 Serverless Devs 开发者工具部署到 Serverless 平台,例如我开发了一个猫狗识别的应用,在这个应用中引用了 Lambda 组件帮助我将部分业务逻辑部署到 FaaS 平台,同时我也引用了 Website 组件帮助我把前端业务代码部署到对象存储中;
Serverless Devs 的模型设计原则,是希望可以通过更加简单、科学、规范的 Serverless 工具链体系,让开发者更专注于业务逻辑,提升 Serverless 应用开发、部署、运维效率,通过该模型。开发者可以通过一种更灵活、更通用的方法使用不同云厂商以及开源的 Serverless 产品,进而更高效、更简洁、更便利的实现 Serverless 应用管理。
成长历史
如果说 Serverless 提升了传统应用的开发效能,那么 Serverless Devs 开发者工具就是提升了 Serverless 应用开发的效能。随着时间的发展,Serverless Devs 更是从简单的单纯的效能提升,变成了更加规范、更加科学的效能提升。我们真切希望可以通过 Serverless Devs 的工具链模式和思路,为应用的开发,传统项目上 Serverless 架构提供巨大的便利和更科学的管理:
- 2020 年 10 月 23 日,Serverless 开发者平台 Serverless Devs 正式开源;
- 2020 年 11 月,Serverless Devs 被 CNCF Landsacpe 收录, 成为国内首个进驻的 Serverless 工具;
- 2020 年 11 月,Serverless Developer Meetup 首召开,成 Serverless 开发者技术新渠道;
- 2020 年 11 月,入围 InfoQ 评选 2020 年度十大开源新锐项目;
- 2021 年 4 月,Serverless Developer Meetup 在上海召开,并正式发布 Serverless Devs 2.0;
- 2021 年 7 月,Serverless Developer Meetup 在杭州召开,阿里云函数计算团队在会上正式发布端云联调、桌面客户端等功能;
- 2021 年 10 月,在 2021 OpenInfra Days China 会议上,Serverless Devs 带来了《Serverless Devs:Serverless 全生命周期的工具链建设》的主题演讲;
- 2021 年 12 月,Serverless Developer Meetup 在深圳召开,并尝试性的对外展示了 Serverless Devs Model;
- 2022 年 5 月,Serverless Devs Model 作为 Serverless 工具链模型最佳实践,亮相信通院云原生产业大会;
- 2022 年 9 月,Serverless Developer Meetup 在杭州召开;Serverless Devs 在云原生计算基金会(CNCF)的 TOC 例会上投票决议通过,正式成为 CNCF 官方沙箱项目;
未来展望
Serverless Devs 将会在未来支持:
- 支持更多的云厂商,云产品;
- Hosted:Azure,Google Cloud Platform
- Installable:Knative,OpenWhisk,Kubeless,Laf
- 功能支持:
- Serverless Devs K8s Controller
- 编辑器插件(VScode Plugin)
- Logs 能力完善(Serverless Devs Logs)
- 云执行环境(Serverless Devs Cloud)
- 全局行为能力(Global Actions)
- 其他规划:
- 更多形式的 Serverless 服务支持,如 Serverless Application Hosting 模型;
- 支持更多 BaaS 产品;
- 探索 IaC 方向;
- 与 Terraform 结合;
欢迎参与贡献
- Serverless Devs Repo:
https://github.com/Serverless-Devs/Serverless-Devs
- Serverless Devs 官网:
https://www.serverless-devs.com/
- Serverless Devs 文档:
https://docs.serverless-devs.com/
- Serverless Regsitry:
https://registry.serverless-devs.com/
- Serverless Devs Model:
https://docs.serverless-devs.com/sdm/readme