Serverless 从概念提出到应用,已经走过了 8 个年头,开发者对 Serverless 的使用热情不断高涨。为帮助开发者实现一键体验多云产品,极速部署 Serverless 项目,10 月 23 日,阿里巴巴正式宣布开源首个 Serverless 开发者平台 Serverless Devs,这也是业内首个支持主流 Serverless 服务/框架的云原生全生命周期管理的平台。

这就是 Serverless Devs

Serverless Devs 是一个开源开放的 Serverless 开发者平台,致力于为开发者提供强大的工具链体系。通过该平台,开发者可以一键体验多云 Serverless 产品,极速部署 Serverless 项目。

Serverless Devs 包含 Serverless Devs Tool (Serverless 开发者工具)和 Serverless Devs App Store(Serverless 应用中心):

  • Serverless Devs Tool 是一款可以让 Serverless 开发者的开发和运维效率翻倍的工具。通过使用该工具,开发者可以更简单、更快速的进行应用创建、项目开发、测试、发布部署等,实现项目的全生命周期管理。

  • Serverless Devs App Store 是一个集 Serverless 应用在线搜索,一键部署以及资源可视化编辑于一体的应用中心产品。应用中心拥有海量的生产级项目模板,案例模板,开发者可以自由选择,并将项目一键部署到指定的云平台上。

Serverless Devs 的开源为国内外开发者提供了 Serverless 工具的新选择,让开发者以更短的路径体验到多云 Serverless 产品,以更快的速度创建和部署 Serverless 应用,以更简单和更自动化的方法进行项目管理和运维,Serverless 项目通过该平台完成全自动化后,可节省 99.9% 的管理成本。

Serverless 工具链之困

Serverless 正在改变未来软件开发的模式和流程,并被预测将引领云计算的下一个 10 年,但尽管如此,开发者在选择使用 Serverless 时仍有诸多担忧,这其中最受关注的无疑就是工具链体系的匮乏。

所谓的工具链匮乏,一方面表现在市面上工具链不完善,这导致开发和部署难度大,进而增加成本;另一方面表现在,缺乏相关的工具链在体验层将 Serverless 体验进一步规范,优质工具链的匮乏导致本来就担心被厂商绑定的 Serverless 开发者变得更难与厂商解绑。今年 10月,中国信息通信研究院发布国内首个《云原生用户调查报告》明确指出在使用 Serverless 架构之前,49% 的用户考虑部署成本,26% 的用户考虑厂商绑定情况,24% 的用户考虑相关工具集完善程度,这些数据背后透露的实际上是:开发者对于完善工具链的强烈需求。

Serverless Devs 的优势

Serverless Devs 帮助解决目前的工具链之困,让开发者一键体验多云产品,极速部署 Serverless 项目。

1. 可支持主流 Serverless 服务/框架

Serverless Devs 是一个组件化与插件化的 Serverless 开发者平台,开发者可以在平台中可插拔式的使用不同 Serverless 的服务和框架,同时可参与组件和插件的开发。无论是工业级的 Serverless 服务,还是各类开源的 Serverless 框架,Serverless Devs 都可友好支持。开发者无需对市面上每一款 Serverless 工具进行研究和学习,只需通过 Serverless Devs ,就可以简单、快捷的“上手”主流 Serverless 服务和框架。

2. 可视化编辑和部署

Serverless Devs 拥有可视化编辑和部署流程。在 Serverless Devs App Store 中,使用者可以通过关键词快速检索所需的应用案例或组件,并且通过可视化编辑完成项目配置,通过鼠标点击即可完成项目部署。

无论是进行项目体验,还是进行项目开发、运维,在应用中心的加持下,在可视化编辑和部署的加持下,Serverless 项目的整体部署时间缩短了近 1 倍。同时,Serverless Devs App Store 也是一个开发者开源共建的平台,所有用户都可以在应用中心发布自己的组件和应用供更多人学习、参考以及使用。

3. 灵活与开放的使用方法

与绝大部分的开发者工具不同的是,Serverless Devs 在进行项目描述时不仅仅可以对函数计算、API 网关、对象存储等资源进行描述,也可以通过 Serverless Devs 提供的插件以及 Hook 进行 Install、Build、Publish 等行为描述。与此同时 Serverless Devs 不会对每个组件的命令进行限制,而是鼓励开发者针对不同的组件,开发不同的能力来应对更多、更复杂的场景,以阿里云函数计算组件为例,它不仅仅支持函数的部署和移除这样的传统能力,还支持日志查询,指标查询,本地构建,依赖安装,调试等更多定制化的能力。

Serverless Devs 的这种灵活与开放的使用方法,可以在自动化部署、运维等领域发挥非常大的作用,将 Serverless Devs 与项目全生命周期进行有机融合,使得 Serverless 项目的开发运维效能提升 90%。

像使用手机一样玩转 Serverless

通过 Serverless Devs,我们可以像使用手机一样的使用 Serverless。在使用手机时,我们需要通过在手机应用市场中搜索、下载各种应用,并安装到手机中进行使用;对于 Serverless Devs 开发平台来说,我们可以通过 s gui 快捷调出 Serverless Devs App Store,并在其中搜索并下载组件/插件到 Serverless Devs Tool 开始使用 Serverless,如图所示:

使用场景

Serverless Devs 可参与到项目的创建、开发、调试、部署与运维的全流程中,以阿里云函数计算组件为例:

  • 在项目的创建阶段,可通过命令行工具或者应用中心进行项目的最初创建;

  • 在项目开发过程中,可以通过本地开发、调试等能力来验证本地开发的正确性;

  • 在项目调试的环节,可以通过本地调试与远程调用、日志查询等能力,来进行项目的最终调试;

  • 在部署环节,可以先通过依赖安装、项目构建等流程构建出完整的部署包,再进行项目的部署;

  • 在后期运维环节,可以通过指标查询来进行项目健康度检查,通过日志查询等来进行问题定位,通过项目发布等能力进行版本发布,别名发布以及灰度发布等;

Roadmap

  • 2020 年 10 月,完成阿里云函数计算组件的全部能力建设;

  • 2020 年 11 月,完成代号“130”计划,一个月内完成 30 个 Web 框架/CMS 的支持,包括不限于 Django,Express,Flask,Koa,Egg,Nuxt,Next 以及 Webpy 等项目的一件迁移能力;

  • 2020 年 11 月,完成代号“32100”计划,3 周 21 天,让 Serverless Devs App Store 拥有 100 个组件/应用,可以覆盖人工智能、大数据、Web 开发、监控告警等多个领域,并且这些内容全部开源;

  • 2020 年 12 月,推出全新迭代版本;

  • 2021 年 1 月,完成代号“88“计划,8 周完成 8 个云平台的函数计算等相关能力的支持,可以通过 Serverless Devs Tool 快速把项目部署到阿里云等多云平台,甚至某些组件,只需要修改 provider,就可以实现多云部署;

  • 2021 年 3 月,完成 VScode 插件、云 IDE 等支持,通过编辑器、GUI 形式,使用 Serverless Devs

参与贡献

Serverless Devs 的开源为国内外开发者提供了 Serverless 工具的新选择,让开发者可以以更短的路径体验到多云 Serverless 产品,以更快的速度创建和部署 Serverless 应用,以更简单和更自动化的方法进行项目管理/运维,未来期待更多开发者参与共建。

目前代码已经在 Gitee(码云)和 GitHub 上正式开放:

如果你有任何疑问,欢迎钉钉搜索群号:33957367 进群交流!

快速体验 Serverless Devs

通过简单的几行指令,部署一个写诗神器,点击链接:

https://developer.aliyun.com/adc/scenario/c6415182ebba4c9f990c2298e9a73eba

体验就送 1024 专属好礼!

重磅 | 阿里开源首个 Serverless 开发者平台 Serverless Devs的更多相关文章

  1. 阿里开源首个移动AI项目,淘宝同款推理引擎

    淘宝上用的移动AI技术,你也可以用在自己的产品中了. 刚刚,阿里巴巴宣布,开源自家轻量级的深度神经网络推理引擎MNN(Mobile Neural Network),用于在智能手机.IoT设备等端侧加载 ...

  2. ServerlessBench 2.0:华为云联合上海交大发布Serverless基准测试平台

    摘要:华为云联合上海交大重磅推出ServerlessBench 2.0,为社区提供涵盖12类基准测试用例.新增5大类跨平台测试用例.4大类关键特性指标.且多平台兼容的Serverless开放基准测试集 ...

  3. 开发者必看!探秘阿里云Hi购季开发者分会场:海量学习资源0元起!

    摘要: 开发者分会场致力于帮助开发者学习了解阿里云最新技术,为开发者设计全方位的技术成长与进阶之路. 2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: ...

  4. 利用Azure Functions和k8s构建Serverless计算平台

    题记:昨晚在一个技术社区直播分享了"利用Azure Functions和k8s构建Serverless计算平台"这一话题.整个分享分为4个部分:Serverless概念的介绍.Az ...

  5. 涂鸦基于OAuth2在开发者平台上的探索与实践

    前言 开发授权(OAuth2)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资料(如照片.视频.联系人列表),而无需将用户名和密码提供给第三方应用. OAuth2允许用户提供一 ...

  6. Google发布跨云Serverless管理平台Knative

    企业只要使用由Google与Pivotal.IBM.红帽和SAP等企业共同开发的跨云Serverless管理平台Knative,就能在支持Kubernetes的云平台上自由的迁移工作负载,无论是跨私有 ...

  7. 触控发布《Cocos开发者平台白皮书》

    Cocos 2014 开发者大会(秋季)组委会今天正式发布了<Cocos开发者平台白皮书>,GameRes游资网得到Cocos官方授权发布该白皮书电子版. 白皮书主要内容包括对行业的趋势解 ...

  8. 在阿里云上搭建 Spark 实验平台

    在阿里云上搭建 Spark 实验平台 Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程 [传统文化热爱者] 阿里云服务器搭建spark特别坑的地方 阿里云实现Hadoop+Sp ...

  9. iOS开发之HelloKitty(移动社交平台项目)

    iOS开发之HelloKitty(移动社交平台项目,2015.3,parishe)

随机推荐

  1. unity优化 — 纹理(优化)通道分离

    unity针对Android平台还提供了通道分离的方式:将图片(sprite)压缩成ETC1,提取Alpha生成一张通道图.unity将通道图保存的格式为a8格式,目的为了让混合起来的Alpha效果很 ...

  2. 机械硬盘换到SSD后系统引导报错代码0xc000000e

    由于机械硬盘IO不够用,系统使用起来非常的缓慢,特意购买了新的SSD进行了替换.机械硬盘的IO在70左右,SSD的IO在1000-4000左右指普通消费SSD. 由于不想安装系统,就直接把机械硬盘的数 ...

  3. Python习题集(九)

    每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我! https://www.cnblogs.com/poloyy/category/1676599.html 题目 已知一个数列:1. ...

  4. Go并发编程--正确使用goroutine

    目录 1. 对创建的gorouting负载 1.1 不要创建一个你不知道何时退出的 goroutine 1.1.1 不要帮别人做选择 1.1.2 不要作为一个旁观者 1.1.3 不要创建不知道什么时候 ...

  5. Lambda函数接口和方法构造器应用

    函数式接口 什么是函数式接口? 在java中'有且仅有一个抽象方法的接口',就称为函数式接口. 可以通过Lambda表达式来创建该接口的对象.(若Lambda表达式抛出一个受检异常,那么该异常需要在目 ...

  6. Spring Cloud Eureka 之常用配置解析

    [原创内容,转载.引用请注明出处] 1. 配置项解析 1.1 通用配置 # 应用名称,将会显示在Eureka界面的应用名称列 spring.application.name=config-servic ...

  7. 并发编程之:ForkJoin

    大家好,我是小黑,一个在互联网苟且偷生的农民工. 在JDK1.7中引入了一种新的Fork/Join线程池,它可以将一个大的任务拆分成多个小的任务并行执行并汇总执行结果. Fork/Join采用的是分而 ...

  8. Redis核心原理与实践--列表实现原理之quicklist结构

    在上一篇文章<Redis列表实现原理之ziplist结构>,我们分析了ziplist结构如何使用一块完整的内存存储列表数据. 同时也提出了一个问题:如果链表很长,ziplist中每次插入或 ...

  9. python爬取疫情数据存入MySQL数据库

    import requests from bs4 import BeautifulSoup import json import time from pymysql import * def mes( ...

  10. Java定时任务Quartz

    第一步:pom文件中添加依赖包 第二步:创建xml文件,名称为:spring-scheduler 路径如下图: 第三步:spring-scheduler配置详情 <!--创建任务--> & ...