Serverless 基本概念入门

2020-02-07 18:11:43 +08:00
 scf10cent

▎从行业趋势看,Serverless 是云计算必经的一场革命

2019 年,Serverless 被 Gartner 称为最有潜力的云计算技术发展方向,并被赋予是必然性的发展趋势。Serverless 从底层开始变革计算资源的形态,为软件架构设计与应用服务部署带来了新的设计思路。

为此,我们策划了 Serverless 技术专栏,从基础概念入门,到前后台架构设计、应用拓展、最佳实践等多维度,揭开 Serverless 的面纱,带你走进无服务器的世界。


什么是 Serverless ?

Serverless,按中文翻译,称为「无服务器」。

这究竟是一种什么样的形态或产品呢?无服务器,就是真的没有服务器吗?

其实,在行业内,目前对于 Serverless 有几种解读方法:

在说起 Serverless 架构时,Serverless 代表的是利用 Serverless 形态的产品实现的应用架构,这种架构完全依托于云厂商或云平台提供产品完成系统的组织及构建。在这种架构中,用户无需关注支撑应用服务运行的主机,而将关注点投入在系统架构,业务开发,业务支撑运维上。

而说起 Serverless 产品时,代表的是无需理解、管理服务器,按需使用,按使用付费的产品。Serverless 产品中,其实也可以包含存储、计算等多种类型的产品。而典型的计算产品,就是云函数这种形态。

云函数,或者称为函数即服务 (Function as a Service),它和后端即服务 (Backend as a Service) 一起,都可以称为 Serverless 产品。通过组合使用这些产品,开发者可以构建自身的业务 Serverless 架构。

Serverless 的价值

Serverless 技术为什么会获得越来越多的关注?我们可以从几个角度来看。

首先,从开发者使用的来说,不用更多地去考虑服务器的相关内容,无需再去考虑服务器的规格大小、存储类型、网络带宽、自动扩缩容问题。同时,也无需再对服务器进行运维,无需不断打系统补丁、应用补丁,无需进行数据备份、软件配置等工作。

其次,Serverless 产品是完全自动化的弹性扩缩容的。在业务高峰时,产品的计算能力、容量自动扩容,承载更多的用户请求,而在业务下降时,所使用的资源也会同时收缩,避免资源浪费。

再次,跟随着完全自动化的弹性所带来的,是全新的计量计费模式。开发者仅需根据使用量来付费,而在深夜无业务量的情况下,不会有空闲资源占用,因此也不会有费用产生。

随着如上提到的特性,Serverless 给开发者或用户带来了具体的商业价值:

1. 降低运维需求

2. 降低运营成本

3. 缩短迭代周期、上线时间

4. 快速试错

Serverless 的技术特点

这里提到的技术特点的对象,特指 Serverless 产品中的计算产品,也就是云函数。云函数包含了如下的技术特性:

1. 事件驱动

2. 单事件处理

3. 自动弹性伸缩

4. 无状态开发

Serverless 的应用场景

Serverless 架构或者技术,可以用在什么样的场景下,来充分发挥它的优势呢?如下的场景,都适合使用 Serverless 架构或产品,来实现所需的业务逻辑。

1. WEB 及移动后端

通过结合使用云函数和 API 网关或 HTTP 触发器,可以对外提供 URL 访问地址,成为 Web、小程序、或移动应用等的后端服务。Serverless 架构既可以直接用于构建后台来服务应用,也可以通过类似 BFF 模式,构建中台和应用间的桥梁。

Serverless 架构提供的强弹性能力,使得可以支撑业务或应用的暴涨;而提供的低运维需求,使得开发者可以专注于业务实现和优化;同时,按实际使用量的付费方式,使得开发者无需预配置资源,无需担心预配置资源的浪费。

2. 消息处理

Serverles 架构的应用本身是由事件触发的,因此极其适合于进行消息处理。无论是消息队列中传递的业务消息,还是 Kafka 中采集应用日志,均可以对接到云函数上,进行实时的消息处理、分析。

3. 对象存储文件处理

在 Serverless 应用场景中,由对象存储中的文件上传事件,来触发云函数的运行,也是一种常见场景。

针对图片文件的上传,可以借助云函数完成图片的缩略图生成、二维码或水印标记、图片优化处理;而针对数据文件的上传,可以启动数据的自动化分析

4. 物联网

物联网意味着成千上万的设备会连入网络,时刻在不断的产生数据,这对数据的分析、处理的及时性提出了很高的挑战。通过使用 Serverless 架构,物联网设备所采集的数据将可以作为云函数的触发事件,而实现数据的实时处理、分析和应用。

随着物联网设备计算能力的进一步提升,云函数作为最小粒度的计算单元,有机会被调度到设备端运行,实现边缘计算,达到「端 - 云」联合的 Serverless 架构。

5. 运维及集成

通过对接云函数以及云上的各个产品、日志服务、监控告警系统,云时代的运维也都可以用云函数来构建。定时触发的云函数,将可以方便地替代需要在主机上来运行的定时任务;而日志或告警触发的云函数,将可以对云中的事件作出立刻回应及处理。

Serverless — 云原生时代的应用

云计算已经进入了新的时期,目前上云已经不是应不应该,而是如何上云的问题。在这种情况下,云原生的概念也随之而生。云原生的架构或应用,是基于云而设计的,充分利用现代云计算平台所具备的弹性和分布式特性来实现应用架构。

而 Serverless 架构、产品、以及应用,均是完全依托于云而构建的,是典型且完全的云原生的架构、产品或应用。Serverless 产品所具备的产品特性、技术、费用等优势,将成为新一代云产品的发展方向;而基于 Serverless 架构推进完成开发的应用或架构,将充分享受到云时代带来的强大助力,使得云计算能真正成为业务的助推器。

**Serverless 的计算产品 —— 云函数,作为云虚拟机、容器技术之后的下一代计算形态,将引来云计算中新的热潮。**围绕着云函数而建设的产品能力、工具、生态、以及应用开发,也将引来新的一轮发展。随着无服务器的产品和生态走向成熟,将逐步承载起企业核心业务。在这个持续向前高速发展的过程中,腾讯云的云函数,将作为腾讯云云原生的重点发力领域,跟随客户需求、行业发展、技术发展,为用户提供完整的 Serverless 解决方案。

传送门:

欢迎访问:Serverless 中文网,您可以在 最佳实践 里体验更多关于 Serverless 应用的开发!

6860 次点击
所在节点    Serverless
12 条回复
maomaomao001
2020-02-07 19:51:58 +08:00
@livid 可能是误判,但是近期的 serverless 帖子,几乎都是腾讯云的广告
scf10cent
2020-02-07 21:12:09 +08:00
@maomaomao001 新功能发布的帖子是发在了 推广 的节点上,rest api、website Component 这些实践其实算技术贴?( https://www.v2ex.com/t/636619 ),腾讯云的确是我们的合作伙伴,但其实这里的超链接基本都是 GitHub 上 serverless 的链接
scf10cent
2020-02-07 21:14:28 +08:00
@maomaomao001 actually, 我们希望中国的用户也能采用我们的框架 Serverless Framework
maomaomao001
2020-02-07 22:53:31 +08:00
@scf10cent 好吧,那我可能确实是误判了,不好意思
ufan0
2020-02-08 00:44:33 +08:00
排版极其舒服,点赞。
cassyfar
2020-02-08 03:52:08 +08:00
这是用现成的 serverless compute (比如 aws lambda)做的吗?还是你们自己做了个类似的?
leishi1313
2020-02-08 06:27:23 +08:00
serverless(.com)都开到国内了呀,不错呀
cdlixucd
2020-02-08 09:18:15 +08:00
serverless 如果能做到容器化不依赖平台还可以 不然我觉得都是在耍流氓 接触公有云有一段时间了 感觉就是老酒新装 和以前托管在机房买服务器差不多 炒概念
scf10cent
2020-02-08 15:49:46 +08:00
@leishi1313 是啊,sls 官网最近上了中文页面
scf10cent
2020-02-08 15:51:56 +08:00
@cdlixucd 底层的云服务确实需要依赖平台,毕竟存储 网关什么的各种联动产品。不过 Serverless Framework 其实是多云工具,腾讯云、aws、google cloud 这些都支持的
cdlixucd
2020-02-08 20:15:27 +08:00
@scf10cent 这个就像很多 MSP 提供的多云运维工具一样 也是继承各个云厂商的 API 来进行二次开发的吧 比如把 AWS 的 lambda 和 GCP 的 Function
scf10cent
2020-02-10 13:17:34 +08:00
@ufan0 哈哈哈反正都是基于 Markdown 的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/642817

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX