即学即会 Serverless | 如何解决 Serverless 应用开发部署的难题?

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 开发者在选择使用 Serverless 时,仍会有开发和部署困难、厂商锁定等诸多担忧,有没有一种支持 Serverless 应用全生命周期管理的开发者工具,能够简单快速上手并真正帮助我们提升研发、运维的效能的呢?

本文节选自《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 可查阅相关文档:

https://github.com/Serverless-Devs/Serverless-Devs/discussions/439

简单快速上手:通过开放 Serverless Registry 的模型/规范,该项目可以通过应用的模式,为开发者提供多种形式,多种领域以及多种场景的上手案例,帮助开发者快速了解、学习、深入、上手 Serverless 架构,例如新手引导中的 Serverless:Hello World;人工智能:目标检测;传统框架:基于 Django 的博客项目等项目;


场景体验地址:

https://developer.aliyun.com/adc/expo/serverless


功能灵活可插拔:Serverless Devs 开发者工具本身,不具备任何业务能力,所有的业务能力均是通过组件化的形式,进行可插拔式使用,并且每个组件可以根据需要,自定义相对应的命令和功能;开发者可以在一个应用中,选择不同的组件完成对应的业务能力,以满足对不同模块的诉求;


应用全生命周期管理:通过组件化的支持,Serverless Devs 可以在应用的全生命周期发挥重要作用,以阿里云函数计算的 FC 组件为例,开发者可以在项目创建、项目的开发、调试、可观测性等多个层面进行项目的建设和管理;

良好的集成与被集成性:项目具有非常好的集成性与被集成性,可以通过组件化的支持,非常简单的与传统的生态进行有机结合。同时,Serverless Devs 开发者工具也可以非常简单的被集成到海量的自动化流程中,例如 CI/CD 文档中,就举例了与 Github Action 的集成、与 Gitee Go 的集成、与 Jenkins 的集成等平台集成的案例;

总的来说,Serverless Devs 是一个开源开发的 Serverless 领域的工具链项目,它不仅仅表示单纯的某个命令行工具,更在一定程度上指的是一个完整的工具链体系。


社区网址一览:

社区官网:http://www.serverless-devs.com/

项目仓库: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:https://serverlessdevs.resume.net.cn/zh-cn/cli/index.html

Serverless Hub应用中心:https://serverlesshub.resume.net.cn/#/hubs/special-view


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,组件 & 应用累计使用次数突破 1w+;
  • 2021年4月,Serverless Developer Meetup 在上海召开,并正式发布 Serverless Devs 2.0 版本;
  • 2021年7月,Serverless Developer Meetup 在杭州召开,阿里云函数计算团队在会上正式发布端云联调、桌面客户端等功能;
  • 2021年8月,Serverless Devs 下载次数突破 2w+;
  • 2021年10月,在 2021 OpenInfra Days China 会议上,Serverless Devs 带来了《Serverless Devs:Serverless 全生命周期的工具链建设》的主题演讲;
  • 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 架构提供巨大的便利和更科学的管理。在下篇文章中,我们会带领各位一起实现 Serverless Devs 的基础入门,十分简单,并会就一些功能案例进行刨析解读,欢迎关注 Serverless 公众号连续订阅该系列,感兴趣的小伙伴也可以钉钉扫码加入我们的Serverless 开发者技术学习群,我们下周同一时间不见不散。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
人工智能 Java Serverless
阿里云函数计算助力AI大模型快速部署
随着人工智能技术的快速发展,AI大模型已经成为企业数字化转型的重要工具。然而,对于许多业务人员、开发者以及企业来说,探索和利用AI大模型仍然面临诸多挑战。业务人员可能缺乏编程技能,难以快速上手AI模型;开发者可能受限于GPU资源,无法高效构建和部署AI应用;企业则希望简化技术门槛,以更低的成本和更高的效率利用AI大模型。
153 12
|
5天前
|
人工智能 JSON 自然语言处理
一键生成毛茸萌宠形象,基于函数计算极速部署 ComfyUI 生图系统
本次方案将帮助大家实现使用阿里云产品函数计算FC,只需简单操作,就可以快速配置ComfyUI大模型,创建出你的专属毛茸茸萌宠形象。内置基础大模型+常用插件+部分 Lora,以风格化图像生成只需用户让体验键配置简单方便,后续您可以根据自己的需要更换需要的模型、Lora、增加插件。
|
25天前
|
JSON 人工智能 Serverless
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
通过阿里云函数计算FC 和文件存储NAS,用户体验 ComfyUI 和预置工作流文件,用户可以快速生成毛茸茸萌宠等高质量图像。
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
|
6天前
|
人工智能 运维 Serverless
云端问道8期方案教学-基于Serverless计算快速构建AI应用开发
本文介绍了基于Serverless计算快速构建AI应用开发的技术和实践。内容涵盖四个方面:1) Serverless技术价值,包括其发展趋势和优势;2) Serverless函数计算与AI的结合,探讨AIGC应用场景及企业面临的挑战;3) Serverless函数计算AIGC应用方案,提供一键部署、模型托管等功能;4) 业务初期如何低门槛使用,介绍新用户免费额度和优惠活动。通过这些内容,帮助企业和开发者更高效地利用Serverless架构进行AI应用开发。
|
14天前
|
存储 人工智能 安全
函数计算助您 7 分钟极速部署开源对话大模型
本方案利用函数计算的无服务器架构,您可以在函数计算控制台选择魔搭(ModelScope)开源大模型应用模板;同时,我们将利用文件存储 NAS ,为应用服务所需的大模型和相关文件提供一个安全的存储环境;最终通过访问提供的域名进行模型的调用与验证。仅需三步,即可玩转目前热门 AI 大模型。
|
14天前
|
存储 人工智能 Serverless
7分钟玩转 AI 应用,函数计算一键部署 AI 生图大模型
人工智能生成图像(AI 生图)的领域中,Stable Diffusion WebUI 以其强大的算法和稳定的输出质量而闻名。它能够快速地从文本描述中生成高质量的图像,为用户提供了一个直观且高效的创作平台。而 ComfyUI 则以其用户友好的界面和高度定制化的选项所受到欢迎。ComfyUI 的灵活性和直观性使得即使是没有技术背景的用户也能轻松上手。本次技术解决方案通过函数计算一键部署热门 AI 生图大模型,凭借其按量付费、卓越弹性、快速交付能力的特点,完美实现低成本,免运维。
|
1月前
|
Serverless 开发工具 开发者
活动实践 | 西游再现,函数计算一键部署 Flux 超写实文生图模型部署
这些图片展示了阿里巴巴云开发者生态的多个方面,包括开发工具、技术文档、社区交流、培训认证等内容,旨在为开发者提供全方位的支持和服务。
|
2月前
|
自然语言处理 搜索推荐 Serverless
基于函数计算部署GPT-Sovits模型实现语音生成
阿里云开发者社区邀请您参加“基于函数计算部署GPT-Sovits模型实现语音生成”活动。完成指定任务即可获得收纳箱一个。活动时间从即日起至2024年12月13日24:00:00。快来报名吧!
|
27天前
|
人工智能 运维 Devops
CAP:Serverless + AI 让应用开发更简单
对于众多开发者而言,Serverless 架构的核心优势在于其能够无缝集成多种云产品与组件,从而使得开发者可以更加专注于核心业务逻辑和创新。此外,Serverless 架构还提供了按量付费的灵活计费模式,进一步降低了资源成本。使用云应用开发平台 CAP,在 AI 领域,企业就可以专注于模型训练、算法优化等关键任务,让 AI 应用的开发、部署以及全生命周期的管理更加简单。可以预见 Serverless 技术将催生一系列创新且有趣的应用,而这些应用将不断拓展 AI 技术的边界。
|
2月前
|
弹性计算 算法 搜索推荐
活动实践 | 通过函数计算部署ComfyUI以实现一个AIGC图像生成系统
ComfyUI是基于节点工作流稳定扩散算法的新一代WebUI,支持高质量图像生成。用户可通过阿里云函数计算快速部署ComfyUI应用模板,实现个性化定制与高效服务。首次生成图像因冷启动需稍长时间,之后将显著加速。此外,ComfyUI允许自定义模型和插件,满足多样化创作需求。

相关产品

  • 函数计算