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时 ...
随机推荐
- Activity工作流框架入门(二)API使用DEMO
工作流API使用Demo package activity.demo.test; import java.io.File; import java.io.FileInputStream; import ...
- Docker(一):理解Docker镜像与容器
一.镜像的概念 1.广泛镜像概念: 镜像是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在完全相同的副本即为镜像. 2.Docker镜像概念: 在Docker中镜像同样是一种完全 ...
- python中线程共享资源问题的解决
线程跟进程有些相似,有时被称作轻量级的进程,但不同的是,所有的线程运行在同一个进程中,共享相同的运行坏境. 进程和线程都是实现多任务的一种方式,例如:在同一台计算机上能同时运行多个QQ(进程),一个Q ...
- django 发布会签到系统web开发
引言 最近学习了虫师的发布会签到系统demo,结合自己所学django知识,对demo重新塑造了一下.也是为了练练手,巩固知识.现在就分享一下成果~ Django工作流 学习django web开发, ...
- 如何查看dll或者exe是X86还是X64架构
使用VS里面的dumpbin.exe 用法:dumpbin /headers *.exe(需要运行vcvarsall.bat) C32 or Winhex PE L为x86.PE d†为x64 P ...
- C语言笔记--传递结构指针以及值传递,址传递
#include <stdio.h> #include <windows.h> #include <mmsystem.h> #include <string. ...
- CSS selector? [class*=“span”]怎么理解
我在Twitter 中有看到如下selector: .show-grid [class*="span"] { background-color: #eee; text-align: ...
- 初入机器学习,安装tensorflow包等问题总结
学习python,机器学习(maching-lerning).深度学习(deep-learning)等概念也是耳熟能详.我最近从新手开始学习maching-learning知识,不过课程偏向基本的理论 ...
- 【TensorFlow】TensorFlow获取Variable值,将Variable保存为list数据
Variable类型对象不能直接输出,因为当前对象只是一个定义. 获取Variable中的浮点数需要从数据流图获取: initial = tf.truncated_normal([3,3], stdd ...
- python学习(10)字典学习,写一个三级菜单程序
学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...