Serverless Component 介绍和使用指南
Serverless Component 是什么,我怎样使用它?

Serverless Components 的目标是什么?
我们希望通过 Serverless Components 让广大开发者更加便捷,平滑的联动云厂商提供的种种服务。
当前,构建一个应用意味着你可以挑选种种 SaaS 服务并且管理他们(例如 serverless 服务),之后将其整合为一个适用的解决方案。这很棒,因为这样做更快并且开销更小。
但这样的做法也会十分复杂。为了将这些服务整合在一起,你需要大量的手工配置,并且当前没有很多工具可以帮你来构建和管理自己的应用架构。
初识 Serverless Components
Serverless Components 目标就是改变当前开发者面对的这一切。
针对各个云厂商/SaaS 厂商的基础服务,Components 提供了编排这些资源和业务代码的统一标准。就像乐高积木一样,你可以使用多个 Components 非常轻松的搭建你的应用。
Serverless Components 还提供了完善的,由社区贡献驱动的开发者生态。你可以很方便的浏览和优化这些 Components。最终的结果就是你可以极大的节省开发时间,不需要从头开始构建你的 Full Stack 应用,取而代之的是可以利用已有的组件快速构建并按自己的需求调整。
Serverless Components 运行机制
接下来让我们来看一下,怎样使用 Serverless Components 来快速构建一个完整的 Serverless 应用。
统一的体验
所有的云服务都可以被封装为一个 Serverless Component。
每个 Component 都支持对相应云服务的创建,回滚和移除操作,这些都可以通过 Serverless Components CLI 实现。
开发者只需要配置 Components 提供该服务所需的最少配置,其余的都会采用默认配置的方式提供。这样可以更方便的创建对应的资源。引用一个 Component 的时候,只需要在 serverless.yml 文件中增加 “components” 属性,并且引用这个 Component,如图所示。

如上所示,可以通过运行 serverless 命令来创建一个对象存储的存储桶资源。
组合更高维度的 Components
假设你希望在腾讯云部署一个基于 Serverless 架构的 Express.js 框架。为了完成这个框架的搭建,你需要在 API 网关服务中创建新的 API ,并且用这个 API 来调用云函数服务;为了完成基本的数据操作,还需要创建、连接并且调用数据库服务(假设为 PostgreSQL )进行增删改查。
我们当前支持了该框架所需的所有 Components。每个组件都可以通过十分简单参数进行配置,你可以根据这些配置编排底层对应的云资源,并且快速、方便的进行服务的部署。
所有的 Serverless Components 都可以结合在一起,并且构成一个更大、功能更丰富的 Component。
我们把这三个基础的 Components (PostgreSQL、API Gateway、SCF)组合起来构造一个 Express.js 的框架,并且他们将组成一个新的、更高维度的 Express Component。如图所示,这些配置也都会在 serverless.yml 文件中体现。

根据这张图可以看出 Components 的价值。当你构建一个 Express 框架的时候,你需要做很多准备工作,需要开通、配置很多产品,比如创建函数,配置 REST API,配置和连接 DB等。
但事实上你可以通过抽象这些基础 Components 来节省很多类似的配置工作,并且 Express.js 这些框架组件可以使用很多默认配置进行部署,并且只暴露最简单的,面向业务的配置项。

此外,你还可以在其他项目中复用这个 Express Component。或者其他的开发者也可以在自己的项目中使用它,并且只需要根据自己的业务简单调整下配置。例如,他们可能会修改 REST API 的路径或者支持的协议等。

最终,这些更高维度的 Components 变成来各种常用场景,可以被开发者快速使用并且复用、整合。
组合 Components 构建整个应用
现在让我们从更加宏观的角度来看这个 Express 框架。当你希望部署整个应用的时候,需求会变得更加复杂和全面。例如你需要对动态资源和静态资源做隔离,优化页面的访问速度,提供更丰富的 API 等。
别担心,你依然可以利用 Serverless Components 进一步扩展和完善你的应用。只需要把这个高维度的 Component 和更多其他 Components 组合,就可以构建更加完整的应用。如下图所示,一个完整的 Full-Stack 应用可以通过持续组合 Serverless Components 实现。

像所有其他的 Components 一样,其他开发者也可以轻松的复用这个 Full-Stack 组件,并且只需要暴露出最简单的配置信息。
我们认为 Serverless 是围绕场景的,无需对基础资源做过多对配置和管理。我们希望 Components 可以让基础设施对开发者更加透明,开发者可以专注于业务逻辑和场景,并且通过开源社区的方式,让这些场景可共享、可复用,同时进一步促进开发者生态。
准备好体验 Serverless Components 了吗?
刚刚我们演示了一个全栈应用的部署方式,如果你希望进一步了解 Components, 欢迎访问 Serverless Components 的 Github 主页,并且查看当前支持的场景模板。
我们当前提供了几种基础 Components,你可以灵活组合他们,并且创建自己所需的高维度的应用场景。我们十分欢迎对 Serverless Components 仓库 的开源贡献,也非常期待开发者的建议和反馈!
如果你对 Serverless Components 感兴趣,这里有一些实践文章可以进一步参考:
- 通过 SCF Component 轻松构建 REST API
- 基于 Serverless Component 全栈解决方案
- Hexo + Serverless Framework,简单三步搭建你的个人博客
当前 Serverless Component 也支持多语言开发框架的快速部署,可以移步组件页面进一步查看:

Serverless Components 的下一步规划
我们相信 Components 可以带来非常理想的 Serverless 开发体验,并且我们计划将该能力和当前的 Serverless Framework 整合在一起。此外,我们计划提供公共的 Components 注册中心,通过该能力,开发者可以更加迅速的进行部署,并且也更方便进行版本管理和团队协作。
- GitHub: github.com/serverless
- 官网:serverless.com
- 社区:Serverless 中文技术社区
Serverless Component 介绍和使用指南的更多相关文章
- 基于 Serverless Component 全栈解决方案
什么是 Serverless Component Serverless Component 是 Serverless Framework 的,支持多个云资源编排和组织的场景化解决方案. Serverl ...
- 基于 Serverless Component 全栈解决方案 Ⅱ
虽然之前的文章 基于 Serverless Component 的全栈解决方案 介绍了如何借助 Serverless Component 快速搭建 Restful API 后端服务 和 Vue.js ...
- 如何开发自己的第一个 Serverless Component
前言 上一篇 基于 Serverless Component 的全栈解决方案 介绍 Serverless Component 是什么和如何使用 Serverless Component 开发一个全栈应 ...
- .NET Standard 2.0 特性介绍和使用指南
.NET Standard 2.0 发布日期:2017年8月14日 公告原文地址 前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时 ...
- .Net大局观(2).NET Core 2.0 特性介绍和使用指南
.NET Core 2.0发布日期:2017年8月14日 前言 这一篇会比较长,系统地介绍了.NET Core 2.0及生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路径.提纲来用. ...
- .Net Core 2.0生态(3):ASP.NET Core 2.0 特性介绍和使用指南
ASP.NET Core 2.0 发布日期:2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Visual Studio 2017 15.3支持ASP.NET ...
- .Net Core 2.0生态(4):Entity Framework Core 2.0 特性介绍和使用指南
前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升级EF也发展到EF6.x,Entity Framework Core是一个支持跨平台的全新版本, ...
- .Net Core 2.0 生态(2).NET Core 2.0 特性介绍和使用指南
.NET Core 2.0发布日期:2017年8月14日 前言 这一篇会比较长,介绍了.NET Core 2.0新特性.工具支持及系统生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路 ...
- .Net Core 2.0 生态(1).NET Standard 2.0 特性介绍和使用指南
.NET Standard 2.0 发布日期:2017年8月14日 公告原文地址 前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时 ...
随机推荐
- 【WPF学习】第三十二章 执行命令
前面章节已经对命令进行了深入分析,分析了基类和接口以及WPF提供的命令库.但尚未例举任何使用这些命令的例子. 如前所述,RoutedUICommand类没有任何硬编码的功能,而是只表达命令,为触发命令 ...
- Codeforces 1138B Circus (构造方程+暴力)
题意: 给你两个01串,要你选n/2个位置,使得选的位置在s1中"1"的数量等于未选的s2中"1"的数量 n<=5000,1s 思路: 设两个串中出现&q ...
- Django ORM各种查询
正向和反向查询 正向 ----> 关联字段在当前表中,从当前表向外查叫正向 反向 —> 关联字段不在当前表中,当当前表向外查叫反向 正向通过字段,反向通过表名查 表结构 from djan ...
- c语言小游戏-扫雷的完成
C语言-扫雷游戏 本文将对此游戏做一个大致的概述,此代码适合初学者,编写软件使用了vs2017. 该代码可以实现如下功能: 1.用户可以选择3个难度,分别布置不同个数的雷. 2.随机数设置雷的位置. ...
- ASP.NET Core使用环境变量
前言 通常在应用程序开发到正式上线,在这个过程中我们会分为多个阶段,通常会有 开发.测试.以及正式环境等.每个环境的参数配置我们会使用不同的参数,因此呢,在ASP.NET Core中就提供了相关的环境 ...
- 2019全国大学生信息安全大赛两道web
简单小结 菜鸟第一次打国赛,这次题目质量很高,学到了许多姿势. Web Justsoso 打开题目,源代码出存在提示: 使用LFI读取index.php与hint.php http://d4dc224 ...
- CVE-2020-0618 SQL Server远程代码执行
1.简介 SQL Server Reporting Services(SSRS)提供了一组本地工具和服务,用于创建,部署和管理移动报告和分页报告. SSRS Web应用程序中的功能允许低特权用户帐户通 ...
- 教你如何用Vue自己实现一个message插件
今天我们来自己动手用实现一个message插件: Vue.js 的插件应该暴露一个 install 方法.这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象: //message. ...
- Arm开发板+Qt学习之路-qt线程执行完毕发送signal主动释放线程内存
header: #ifndef SENDCANMSGTHREAD_H#define SENDCANMSGTHREAD_H #include <QThread>#include " ...
- Hexo | 超详细的hexo+githhub page搭建过程
首先安装node.js 安装git 去Git官网根据你的电脑参数,下载对应版本. 下载完成,通过在命令行输入 git version 查看是否安装成功,有输出版本号说明安装成功. 鼠标邮件菜单里就多了 ...