1.1.7 应用场景
Serverless 架构作为云原生技术未来的演进方向,无服务器架构技术也从观望逐渐落地,据 Gartner 的过往预测数据显示:到 2020 年全球将有 20% 的企业部署无服务器架构。Serverless 将进一步释放云计算的能力,将安全、可靠、可伸缩等需求交由基础设施实现,使用户仅需关注业务逻辑而无需关注具体部署和运行,极大地提高应用开发效率。同时这个方式促进了社会分工协作,云厂商可以进一步通过规模化、集约化实现计算成本大幅优化。
聚焦业务核心价值
随着云服务的发展,计算资源被高度抽象化,从物理机到云服务器,再到容器服务,计算资源逐渐变得更加细腻化。Serverless 架构将会成为未来云计算领域中重要的技术架构,被更多的业务所采纳,成为其技术选型,那么再进一步的深究,Serverless 在什么场景下可以有非常优秀的表现,在什么类型的场景下可能表现得并不是很理想呢?或者说,有哪些场景更适合 Serverless 架构呢?
Serverless架构的应用场景,通常是由其特性决定方向,所支持的触发器决定具体场景。
CNCF Serverless Whitepaper v1.0 所描述的用户场景
如图上图所示,在 CNCFServerless Whitepaper v1.0 关于 Serverless 架构所适合的用户场景包括:
异步的并发,组件可独立部署和扩展的场景
应对突发或服务使用量不可预测的场景
短暂、无状态的应用,对冷启动时间不敏感的场景
需要快速开发迭代的业务,因为无需提前申请资源,因此可以加快业务上线速度
CNCF 基于 Serverless 架构的特性给出了四个用户场景之外,还结合常见的触发器提供了详细的例子:
响应数据库更改 (插入、更新、触发、删除) 的执行逻辑
对物联网传感器输入消息 (如 MQTT 消息) 进行分析
处理流处理 (分析或修改动态数据)
管理单次提取、转换和存储需要在短时间内进行大量处理 (ETL)
通过聊天机器人界面提供认知计算 (异步)
调度短时间内执行的任务,例如 CRON 或批处理的调用
机器学习和人工智能模型
持续集成管道,按需为构建作业提供资源,而不是保持一个构建从主机池等待作业分派的任务
以上是从理论上描述了 Serverless 架构适合的场景或业务,云厂商将会站在自身的业务角度,整体来描述 Serverless 架构的典型场景。通常情况下,对象存储为触发器在 Serverless 架构的典型应用场景包括视频处理、数据 ETL 处理等;API 网关更多会为用户赋能对外的访问链接以及相关联的功能等,当以 API 网关作为 Serverless 相关产品的触发器时,常见的应用场景就是后端服务,包括 App 的后端服务,网站的后端服务甚至是微信小程序等相关产品的后端服务,同时像一些智能音箱也会开放相关的接口,这个接口也是可以通过 API 网关出发云函数,获得相应的服务等;除了对象存储触发以及 API 网关触发,常见的触发器还有消息队列触发器,Kafka 触发器,日志触发器等。