阿里P10 关涛(观滔)邀你探讨新一代数据平台的架构迭代方向,戳此了解。 了解详情
写点什么

如何理解 Serverless?

2017 年 10 月 07 日

Serverless 概念的诞生由来已久,但至今仍然没有清楚的定义。这个词首次出现大概是在 2012 年,云基础设施服务提供商 Iron.io 的副总裁 Ken Fromm 在一篇文章中阐述了为什么他认为 Serverless 是软件的未来(事实上,Iron.io 自 2012 年以来就支持这种概念和框架)。紧接着,在 2014 年,亚马逊发布 AWS Lambda,在这之后,Serverless 开始变得流行起来,国内外各大云厂商都争相跟进。

2016 年 8 月, martinfowler.com 上的一篇文章对 Serverless 做了详细阐述。简单来说,Serverless 主要用来描述两个互相有重叠的概念:

  • Serverless 最早用于描述那些大部分或者完全依赖于第三方(云端)应用或服务来管理服务器端逻辑和状态的应用,这些应用通常是富客户端应用(单页应用或者移动端 App),他们建立在云端服务生态之上,包括数据库(Parse、Firebase)、账号系统(Auth0、AWS Cognito)等。这些服务最早被称为 “(Mobile) Backend as a Service”,下文将对此简称为 “BaaS”。
  • Serverless 还可以指代这种情况:应用的一部分服务端逻辑依然由开发者完成,但是不像传统架构那样运行在一个无状态的计算容器中,而是由事件驱动、短时执行(甚至只有一次调用)、完全由第三方管理。对此有一个叫法是 Functions as a service(FaaS)。AWS Lambda 是目前的热门 FaaS 实现之一。

为了进一步了解 Serverless 的概念,InfoQ 记者对亚马逊中国研发中心首席架构师蔡超进行了采访,同时,蔡超也将会在 10 月 17 日举行的 QCon 全球软件开发大会上分享相关话题,欢迎关注。

InfoQ:可否用通俗易懂的语言谈谈什么是 Serverless?

蔡超:Serverless 还处在一个比较初期的阶段,目前也没有权威和官方的定义。顾名思义,Serverless 就是指应用的开发不再需要考虑服务器这样的硬件基础设施,基于 Serverless 架构的应用主要依赖于第三提供的后端服务(BaaS, Backend as a Service) 和应用逻辑运行容器(FaaS Container,Function as a Service)。

打个形象的比方,假如你想卖一些自己的产品,那你就需要买或者租一个店面。但无论是买的还是租的,你都要做一些基本店面布置和维护工作,比如布置柜台、清扫店面,这就好比传统的应用架构,你需要设计,部署和维护硬件基础设施。当然现在你也有另外一种选择,就是在“疯果盒子”这样的店面里,直接租一个放你的产品的盒子,委托“疯果盒子”来销售你的产品。这就像 Serverless,你利用第三方的服务和设施来实现你的业务。

InfoQ:Serverless 的诞生到底是想解决什么问题?

蔡超:我想这个问题可以从 Serverless 的主要优势来看:

1. 降低硬件基础设施的部署和维护成本。

2. 降低应用扩展(scaling)成本。目前的 Serverless 运行平台如 Amazon AWS,都可以支持动态的自动扩张。

这些无疑都有助于让开发者专注自身应用的开发,更快地发布他们的应用。Serverless 可以让开发者不必担心基础架构的伸缩性(scalability)是否能支撑未来的业务扩张,同时减少由于访问量变化而带来的硬件资源浪费。

InfoQ:Serverless 和微服务之间是什么关系?

蔡超:微服务和 Serverless 架构都实现了细粒度的部署,维护和伸缩(scaling)。 目前的 Serverless 实现通常会依赖 FaaS,那么粒度就由 Service 变成了更细粒度的 Function。

InfoQ:Serverless 架构与 FaaS 概念是一回事吗?FaaS 与 PaaS 又有什么区别?可以理解 FaaS 是 PaaS 的升级版本吗?

蔡超:Serverless 和 FaaS 本质上不是一回事。例如,一个简单的 Serverless 应用可以仅仅依赖于 BaaS(比如 AWS SQS、DynamoDB)。目前,大家一提到 Serverless 就会自然的想到 FaaS,主要是因为 Serverless 这个词是在 2014 年 AWS Lambda(Amazon 的 FaaS Container)发布以后才开始变得流行开来的。

我认为 FaaS 和 PaaS 关键的区别在于 Scaling,PaaS 无法像 FaaS 那样在很短的时间内启动或停止一个实例,所以无法实现 FaaS 的按请求动态伸缩,用户必须提前考虑 PaaS 基础设施对于访问量变化的影响。我认为 FaaS 不是 PaaS 的升级,目前看各有特点适用于不同的场合。

InfoQ:要使用 Serverless 架构,是不是就意味着必须上云?

蔡超:至今 Serverless 没有十分官方和明确的定义。目前的 Serverless 应用都依赖于第三方提供的后端服务(BaaS)和逻辑运行容器(FaaS Container),所以目前的人们认为的 Serverless 的确是运行在云上的。

InfoQ:我们应该如何构建 Serverless 架构?有哪些需要注意的点?

蔡超:这个问题其实蛮大的,Amazon 给出了一些 Serverless 架构的模版大家可以参考。和其他技术,尤其是新技术一样,在实践中你会遇到不少问题和陷阱,所以值得注意的地方不少,我总结了一些我们的实践经验将在 QCon 演讲中分享给大家。

这里我就提一下最重要的一点,就是首先判断一下 Serverless 架构是否适合于你的应用。例如,如果你的应用是实时性要求很高的,就目前来看是不适合的(关于 AWS BaaS 及 FaaS 的限制你可以参照 AWS 的各服务的官方文档有关于限制的部分),当然你要考虑因素还应包括开发团队和成本等。

2017 年 10 月 07 日 22:539879
用户头像
郭蕾 做有意思的事情!

发布了 211 篇内容, 共 110.2 次阅读, 收获喜欢 32 次。

关注

评论

发布
暂无评论
发现更多内容

Jcenter 停止服务,说一说我们的迁移方案

Antway

android maven Gradle

生命中的无奈

小天同学

读书 读后感 生命 4月日更

InfoQ 写作练习 - 问卷设计

李宇飞

分布式存储服务器的优点有哪些?为什么要使用分布式存储服务器?

v:IPFS456

分布式存储 IPFS怎么挖矿 FIL算力挖矿 分布式存储服务器哪家最好 分布式存储服务器多少钱

智能小车系列-动力系统(ezPWM)

波叽波叽啵😮一口盐汽水喷死你

pwm ezPWM PWM信号

2021高校IT专业大学生就业意向调查问卷

黑马腾云

LeetCode题解:151. 翻转字符串里的单词,栈,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

Linux 上 定时备份postgresql 数据库

Yang

数据库 postgresql

被遗弃的 Vector 和 Stack

Kori Lin

Java

基于 HLS 创建 Golang 视频流服务器

天黑黑

go 音视频 HLS 声网

【劳动最光荣】TcaplusDB祝大家劳动节快乐

TcaplusDB

C# 数据库 nosql 后端 TcaplusDB

容器 & 服务: 扩容(二)

程序员架构进阶

Kubernetes 28天写作 弹性扩容 4月日更

高并发系列:架构优化之细说负载均衡

Coder的技术之路

负载均衡 高并发 高并发优化 负载均衡架构

知名品牌为什么喜欢投放户外广告

󠀛Ferry

四月日更

软件 IT 专业的高校学生有关在线课程的问卷调查

程序员历小冰

如何从 0 到 1 开发 PyFlink API 作业

Apache Flink

flink pyflink python 3.5+

特斯拉行车数据被篡改?专家称车企很难自证清白,保留“数据指纹”的区块链技术在路上

CECBC区块链专委会

指纹

浪潮云再次入围央采2021年云计算服务采购名单

浪潮云

云计算

音视频编解码--编码参数CRF

Fenngton

ffmpeg 视频编解码 视频压缩 码率控制 CRF

基于Kubernetes Operator的网易数帆生产级云原生中间件实践

网易数帆

架构 Kubernetes 云原生 operator 中间件

Android 设备音视频兼容性适配

网易云信

WebRTC

UT之最后一测

你呀不牛

跨湖跨仓场景下如何实现海量数据分钟级分析

华为云开发者社区

大数据 数据湖 数据分析 华为云FusionInsight MRS HetuEngine

获取chrome80谷歌浏览器存储的指定网站Cookie数据方法详解

老猿Python

Python chrome 爬虫 Cookie

ArrayList 与 LinkedList 底层结构

Kori Lin

Java

Kubernetes入门——Kubernetes实现应用的高可用

百度开发者中心

Kubernetes k8s入门 #技术课程#

智慧平安社区平台建设方案,小区大数据分析管理系统开发

WX13823153201

【XXX高校】软件IT专业学生(恋爱观)调查问卷

李浩宇/Alex

调查报告 大学生 恋爱

面向软件 IT 专业的高校大学生职业规划调查问卷

HaiJun

IT, 大学生

SCA工具:开源安全威胁一手掌控

华为云开发者社区

开源 安全 测试 SCA 软件成分分析

面向软件 IT 专业的高校大学生课余时间自学情况调查

xiezhr

大学生日常 IT 高校学院 问卷调查

如何理解Serverless?-InfoQ