平台网站模板,校园网站建设素材,网店运营工作内容,定制家具网站平台简介#xff1a;开发者在选择使用 Serverless 时#xff0c;仍会有开发和部署困难、厂商锁定等诸多担忧#xff0c;有没有一种支持 Serverless 应用全生命周期管理的开发者工具#xff0c;能够简单快速上手并真正帮助我们提升研发、运维的效能的呢#xff1f; 破局#x…简介开发者在选择使用 Serverless 时仍会有开发和部署困难、厂商锁定等诸多担忧有没有一种支持 Serverless 应用全生命周期管理的开发者工具能够简单快速上手并真正帮助我们提升研发、运维的效能的呢 破局工具链体系匮乏之困
在前篇我们提到了 Serverless 正在改变未来软件开发的模式和流程并被预测将引领云计算的下一个十年但尽管如此开发者在选择使用 Serverless 时仍有诸多担忧这其中最受关注的无疑就是工具链体系的匮乏。
所谓工具链的匮乏一方面表现在市面上工具链不完善这导致开发和部署难度大进而增加成本另一方面表现在缺乏相关的工具链在体验层将 Serverless 体验进一步规范优质工具链的匮乏导致本来就担心被厂商绑定的 Serverless 开发者变得更难与厂商解绑。
2020 年 10 月中国信息通信研究院发布国内首个《云原生用户调查报告》明确指出在使用 Serverless 架构之前49% 的用户考虑部署成本26% 的用户考虑厂商绑定情况24% 的用户考虑相关工具及完善程度这些数据背后透露的实际上是开发者对于完善工具链的强烈需求。
尽管有一些开发者认为入门 Serverless 架构通过白屏化的操作相对来说会更容易入门在一定程度上通过各个云厂商的控制台进行函数的创建、更新也会更加地方便。但是不可否定的是Serverless 开发者工具在一定程度上其实有着更为重要的价值和作用譬如
通过脚手架能够快速创建 Serverless 架构的应用在开发过程中通过开发者工具可以进行应用的调试等在开发完成之后通过开发者工具能够将应用一键部署到线上可能包括多个函数以及相对应的 BaaS 类产品项目运维阶段使用开发者工具进行项目的可观测以及问题定位等
若需要实现科学部署通过某些 CI/CD 平台/工具发布 Serverless 架构的应用通常是离不开开发者工具的;但是就目前来看Serverless 领域的开发者工具复杂多样且诸多功能并不完善基本表现在
并没有绝对统一 一致的 Serverless 开发者工具每个厂商都有自己的开发者工具而且使用形式、行为表现并不相同这就导致了开发者在开发前的调研、开发中的调试、部署后的运维等多个层面面临很严峻的挑战
绝大部分的 Serverless 开发者工具更多是资源编排、部署工具并不能真正意义上称之为开发工具、运维工具尤其在开发态的调试如何保证线上线下环境的一致性
如何在运维态可以快速的对业务进行调试如何更简单的排查错误定位问题......等方面并没有统一的、完整的方案这就导致 Serverless 架构的学习成本、使用成本对开发者来说会变的非常高
综上所述出现一个可以提升 Serverless 应用开发效能降低 Serverless 架构使用难度的 Serverless 工具链体系建设显得尤为重要也正是因为此Serverless Devs 应运而生。
Serverless Devs 是一个开源开放的 Serverless 开发者平台致力于为开发者提供强大的工具链体系。通过该平台各位开发者不仅可以一键体验多云 Serverless 产品极速部署 Serverless 项目还可以在 Serverless 应用全生命周期进行项目的管理能够非常简单快速的将 Serverless Devs 与其他工具/平台进行结合进一步提升研发、运维效能。
Serverless Devs 的特点
无厂商锁定得益于功能的可插拔特性可以非常简单的支持不同云厂商的项目部署或者一键部署到不同云平台。目前 Serverless Devs 已经支持了阿里云函数计算、AWS Lambda 、百度智能云函数计算 、华为云函数工作流 、腾讯云云函数等多云的 FaaS 产品
开源形式建设项目通过开源代码开放生态进行建设开发者可以随时查看和参与 Serverless Devs 开发者工具的贡献也可以随时随地进行相关组件和应用的贡献。当然除了这种开源开放的形态我们也鼓励一些企业级团队通过 Serverless Registry Model 建设自己的私有 Registry 以定制化某些不便公开的自定义组件
关于如何快速完成 Serverless Devs 应用开发并发布到 Regsitry 可查阅相关文档
快速完成 Serverless Devs 应用开发并发布到 Regsitry · Discussion #439 · Serverless-Devs/Serverless-Devs · GitHub
简单快速上手通过开放 Serverless Registry 的模型/规范该项目可以通过应用的模式为开发者提供多种形式多种领域以及多种场景的上手案例帮助开发者快速了解、学习、深入、上手 Serverless 架构例如新手引导中的 ServerlessHello World人工智能目标检测传统框架基于 Django 的博客项目等项目 场景体验地址
Serverless Devs 体验场景
功能灵活可插拔Serverless Devs 开发者工具本身不具备任何业务能力所有的业务能力均是通过组件化的形式进行可插拔式使用并且每个组件可以根据需要自定义相对应的命令和功能开发者可以在一个应用中选择不同的组件完成对应的业务能力以满足对不同模块的诉求
应用全生命周期管理通过组件化的支持Serverless Devs 可以在应用的全生命周期发挥重要作用以阿里云函数计算的 FC 组件为例开发者可以在项目创建、项目的开发、调试、可观测性等多个层面进行项目的建设和管理
良好的集成与被集成性项目具有非常好的集成性与被集成性可以通过组件化的支持非常简单的与传统的生态进行有机结合。同时Serverless Devs 开发者工具也可以非常简单的被集成到海量的自动化流程中例如 CI/CD 文档中就举例了与 Github Action 的集成、与 Gitee Go 的集成、与 Jenkins 的集成等平台集成的案例
总的来说Serverless Devs 是一个开源开发的 Serverless 领域的工具链项目它不仅仅表示单纯的某个命令行工具更在一定程度上指的是一个完整的工具链体系。
社区网址一览
社区官网Serverless-Devs - Serverless Devs
项目仓库https://github.com/Serverless-Devs/Serverless-DevsServerlessDesktop
桌面客户端
https://serverlessdevs.resume.net.cn/zh-cn/desktop/index.htmlServerless
应用开发者套件http://serverless-dk.oss.devsapp.net/docs/tutorialdk/intro/react
Serverless Devs CLI:ServerlessDevs Cli
Serverless Hub应用中心:Serverless Devs - Serverless Hub 应用市场
Serverless Devs 的成长之路
2020年10月23日Serverless 开发者平台 Serverless Devs 正式开源2020年11月Serverless Devs 被 CNCF Landsacpe 收录, 成为国内首个进驻的 Serverless 工具2020年11月入围 InfoQ 评选 2020 年度十大开源新锐项目同年Serverless Developer Meetup 首召开成 Serverless 开发者技术新渠道2020年12月ServerlessDevs 下载次数突破 5000组件 应用累计使用次数突破 1w2021年4月Serverless Developer Meetup 在上海召开并正式发布 Serverless Devs 2.0 版本2021年7月Serverless Developer Meetup 在杭州召开阿里云函数计算团队在会上正式发布端云联调、桌面客户端等功能2021年8月Serverless Devs 下载次数突破 2w2021年10月在 2021 OpenInfra Days China 会议上Serverless Devs 带来了《Serverless DevsServerless 全生命周期的工具链建设》的主题演讲2021年12月Serverless Developer Meetup 在深圳召开并尝试性的对外展示了 Serverless Devs Model
Serverless Devs 的设计哲学
Serverless Devs 的模型设计原则是希望可以通过更加简单、科学、规范的 Serverless 工具链体系让开发者更专注于业务逻辑提升 Serverless 应用开发、部署、运维效率。
通过该模型开发者可以通过一种更灵活、更通用的方法使用不同云厂商以及开源的 Serverless 产品进而更高效、更简洁、更便利的实现 Serverless 应用管理。在 Serverless Devs 中通常拥有两个角色
开源贡献者开源贡献者将按照 Serverless Package Model 进行组件/应用的开发并将内容发布到 Serverless Hub 中即可以被更多人所使用
Serverless 开发者通过开发者工具 包括命令行工具以及桌面端等工具进行应用的初始化以及组件的使用通过开发者工具将业务按照预期部署到线上。 在这样一个 Serverless Devs 的应用框架上不难发现可以和其他任何一种模式/生态具有相似的命名以及模块
Serverless Hub类似于一种组件、应用、案例中心类似于 Docker Hub 等
Serverless Registry类似于一种组件、应用的管理工具或者规范模型类似于 Python 生态中的 Pypi类似于 Node.js 生态中的 NPM
下面我们再详细地介绍一下在 Serverless Hub 中其实是有两种形态的 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 提升了传统应用的开发效能那么 Serverless Devs 开发者工具就是提升了 Serverless 应用开发的效能。随着时间的发展Serverless Devs 也从 1.0 版本 到了 2.0 版本。
结语
本篇介绍了 Serverless Devs 的前世今生实际上我们一直希望可以通过 Serverless Devs 的工具链模式和思路让各位通过该平台能够一键体验多云 Serverless 产品极速部署 Serverless 项目为应用的开发传统项目上 Serverless 架构提供巨大的便利和更科学的管理。
原文链接
本文为阿里云原创内容未经允许不得转载。