作者简介:Gary想养猫,前端开发者
本文选自「掘金x腾讯云征文|万物皆可 Serverless」
原文链接:https://juejin.cn/post/6895228421551423495
顾名思义,Serverless 即「无服务器运算」,云计算的下一代。与其说它是具体的技术,不如说是一套理念思想。在行业内对 Serverless 有几种解读方法:
Serverless 架构指开发者实现的服务端逻辑运行在无状态的计算容器中,由事件触发,完全被第三方管理(如服务运营商),其业务层面的状态则被开发者使用的数据库和存储资源所记录。
而说起 Serverless 产品,代表的是无需理解、管理服务,按需使用,按使用付费的产品。Serverless 产品中,其实也可以包括存储,计算等多种类型的产品,而典型的计算产品,就是云函数 SCF 这种形态。
云函数,或者称为 FaaS
(Function as a Server,函数即服务),它和 BaaS
(Backend as a Server,后端即服务) 一起,都可以称为 Serverless 产品。通过组合这些产品,开发者可以构建自身的业务 Serveless 架构。
1. 降低运维需求
Serverless 是非常简单的开发解决方案。
2. 降低开发成本
IaaS
(Infrastructure as a Server,基础设施即服务)和 PaaS
(Platform as a Server,平台即服务)存在的前提是,服务器和操作系统管理可以商品化。Serverless 作为另一种服务的结果是整个应用程序组件被商品化。
3. 扩展能力
Serverless 架构一个显而易见的优点即“横向扩展是完全自动的、有弹性的、且由服务提供者所管理”。从基本的基础设施方面受益最大的好处是,您只需支付您所需要的计算能力。
4. 更简单的管理
Serverless 架构明显比其他架构更简单。更少的组件,就意味着您的管理开销会更少。
5. “绿色” 的计算
按照《福布斯》杂志的统计,在商业和企业数据中心的典型服务器仅提供 5%~15% 的平均最大处理能力的输出。这无疑是一种资源的巨大浪费。随着 Serverless 架构的出现,让服务提供商提供我们的计算能力最大限度满足实时需求。这将使我们更有效地利用计算资源。
区别于前面讲的 Serveless 架构,这里的技术特点对象特指 Serveless 产品中的计算产品,即云函数,云函数包括了如下的技术特性
1. 事件驱动
http
请求,一个文件上传,一次数据库记录修改,一条消息发送等等都可以被定义为事件2. 单事件处理
3.自动弹性压缩
4. 无状态开发
1. Web应用
Serveless 架构可以支持各类静态和动态Web应用,如RESTful API 的各类请求动作(get、post等)可被映射成 FaaS
的函数。通过 FaaS
的自动弹性扩展功能,Serveless Web应用可以快速能承载高访问量的站点。
2. 移动互联网
Serveless 应用通过 BaaS
对接后端不同的服务而满足业务需求,提高应用开发的效率。前端通过FaaS提供的自动弹性扩展对接移动端的流量,开发者可以更轻松地应对突发的流量增长。在 FaaS 的架构下,应用以函数的形式存在。各个函数逻辑之间相对独立,应用更新变得更容易,使新功能的开发、测试和上线的时间更短。
3. 物联网(Internet of Things,IoT)
物联网(Internet of Things,IoT)应用需要对接各种不同的数量庞大的设备。不同的设备需要持续采集并传送数据至服务端。Serveless 架构可以帮助物联网应用对接不同的数据输入源。
4. 多媒体处理
视频和图片网站需要对用户上传的图片和视频信息进行加工和转换。但是这种多媒体转换的工作并不是无时无刻都在进行的,只有在一些特定事件发生时才需要被执行,比如用户上传或编辑图片和视频时。通过 Serveless 的事件驱动机制,用户可以在特定事件发生时触发处理逻辑,从而节省了空闲时段计算资源的开销,最终降低了运维的成本。
5. 数据及事件流处理
Serveless 可以用于对一些持续不断的事件流和数据流进行实时分析和处理,对事件和数据进行实时的过滤、转换和分析,进而触发下一步的处理。比如,对各类系统的日志或社交媒体信息进行实时分析,针对符合特定特征的关键信息进行记录和告警。
6. 系统集成
Serveless 应用的函数式架构非常适合用于实现系统集成。用户无须像过去一样为了某些简单的集成逻辑而开发和运维一个完整的应用,用户可以更专注于所需的集成逻辑,只编写和集成相关的代码逻辑,而不是一个完整的应用。函数应用的分散式的架构,使得集成逻辑的新增和变更更加灵活。
上述都能在常规的容器云平台上构建部署,不过有了 Serveless 更高层次的抽象和封装,我们可以更快地开发构建部署,服务可以有更好的运行姿态,从而一步步接近我们想象中那个只写代码,不关心服务器的美好愿景。
Serveless 是云计算发展的必经历程,理念、技术大多不是凭空诞生的,很明显 Serveless 的应用就是为了解放生产。
立即体验腾讯云 Serverless Demo,获取 Serverless 新用户礼包,请在 PC 端访问: serverless.cloud.tencent.com/start?c=wx
欢迎进入千人 QQ 群 (537539545) 交流!
点击「阅读原文」进入 Serverless 中文网,体验更多 Serverless 应用的最佳实践!
本文分享自 ServerlessCloudNative 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!