导读

Serverless 架构将成为未来云计算领域重要的技术架构,将会被更多的业务所采纳。进一步深究,Serverless 架构在什么场景下有优秀的表现,在什么场景下可能表现得并不是很理想呢?或者说,有哪些场景更适合 Serverless 架构呢?

Serverless 架构的应用场景

Serverless 架构的应用场景通常是由其特性决定的,所支持的触发器决定具体场景。如图 1-1 所示,CNCF Serverless Whitepaper v1.0 描述的关于 Serverless 架构所适合的用户场景如下。

●异步并发,组件可独立部署和扩展的场景。

●突发或服务使用量不可预测的场景。

●短暂、无状态的应用,对冷启动时间不敏感的场景。

●需要快速开发、迭代的业务。

1-1 CNCF Serverless Whitepaper v1.0 描述的 Serverless 架构所适合的用户场景

CNCF 除基于 Serverless 架构的特性给出 4 个适用的用户场景之外,还结合常见的触发器提供了详细的例子。

●响应数据库更改(插入、更新、触发、删除)的执行逻辑。

●对物联网传感器输入消息(如 MQTT 消息)进行分析。

●执行流处理(分析或修改动态数据)。

●数据单次提取、转换和存储需要在短时间内进行大量处理(ETL)。

●通过聊天机器人界面提供认知计算(异步)。

●调度短时间内执行的任务,例如 CRON 或批处理的调用。

●机器学习和人工智能模型。●持续集成管道,按需为构建作业提供资源。

CNCF Serverless Whitepaper v1.0 基于 Serverless 架构的特点,从理论上描述了 Serverless 架构适合的场景或业务。云厂商则站在自身业务角度来描述 Serverless 架构的典型应用场景。

通常情况下,当对象存储作为 Serverless 相关产品触发器时,典型的应用场景包括视频处理、数据 ETL 处理等;API 网关更多会为用户赋能对外的访问链接以及相关联的功能等,当 API 网关作为 Serverless 相关产品的触发器时,典型的应用场景就是后端服务,包括 App 后端服务、网站后端服务甚至微信小程序等相关产品的后端服务。

一些智能音箱也会开放相关接口,这个接口也可以通过 API 网关触发云函数,获得相应的服务等;除了对象存储触发以及 API 网关触发,常见的触发器还有消息队列触发器、Kafka 触发器、日志触发器等。

1. Web 应用或移动应用后端

如果 Serverless 架构和云厂商所提供的其他云产品结合,开发者能够构建可弹性扩展的移动应用或 Web 应用程序 ,轻松创建丰富的无服务器后端。而且这些程序在多个数据中心可用。图 1-2 所示为 Web 应用后端处理示例。

1-2 Web 应用后端处理示例

2.实时文件/数据处理

在视频应用、社交应用等场景下,用户上传的图片、音视频往往总量大、频率高,对处理系统的实时性和并发能力都有较高要求。此时,对于用户上传的图片,我们可以使用多个函数对其分别处理,包括图片的压缩、格式转换等,以满足不同场景下的需求。图 1-3 所示为实时文件处理示例。

1-3 实时文件处理示例

我们可以通过 Serverless 架构所支持的丰富的事件源、事件触发机制、代码和简单的配置对数据进行实时处理,例如:对对象存储压缩包进行解压、对日志或数据库中的数据进行清洗、对 MNS 消息进行自定义消费等。图 1-4 所示为实时数据处理示例。

1-4 实时数据处理示例

3.离线数据处理

通常,要对大数据进行处理,我们需要搭建 Hadoop 或者 Spark 等相关的大数据框架,同时要有一个处理数据的集群。但通过 Serverless 技术,我们只需要将获得到的数据不断存储到对象存储,并且通过对象存储配置的相关触发器触发数据拆分函数进行相关数据或者任务的拆分,然后再调用相关处理函数,之后存储到云数据库中。

例如:某证券公司每 12 小时统计一次该时段的交易情况并整理出该时段交易量 top5;每天处理一遍秒杀网站的交易流日志获取因售罄而产生的错误,以便准确分析商品热度和趋势等。函数计算近乎无限扩容的能力可以使用户轻松地进行大容量数据的计算。

利用 Serverless 架构可以对源数据并发执行 mapper 和 reducer 函数,在短时间内完成工作。相比传统的工作方式,使用 Serverless 架构更能避免资源的闲置,从而节省成本。数据 ETC 处理流程可以简化为图 1-5。

1-5 数据 ETL 处理示例

4.人工智能领域

在 AI 模型完成训练,对外提供推理服务时,基于 Serverless 架构,将数据模型包装在调用函数中,在实际用户的请求到达时再运行代码。相对于传统的推理预测,这样做的好处是无论是函数模块还是后端的 GPU 服务器,以及对接的其他相关机器学习服务,都可以进行按量付费以及自动伸缩,从而在保证性能的同时确保服务的稳定。图 1-6 为机器学习(AI 推理预测)处理示例。

1-6 机器学习(AI 推理预测)处理示例

5.物联网(IoT)领域

目前,很多厂商都在推出自己的智能音箱产品—用户对智能音箱说一句话,智能音箱通过互联网将这句话传递给后端服务,然后得到反馈结果,再返给用户。通过 Serverless 架构,厂商可以将 API 网关、云函数以及数据库产品结合起来,以替代传统的服务器或者虚拟机等。

Serverless 架构一方面可以确保资源能按量付费,即用户只有在使用的时候,函数部分才会计费;另一方面当用户量增加时,通过 Serverless 架构实现的智能音箱系统的后端也会进行弹性伸缩,保证用户侧的服务稳定,且对其中某个功能的维护相当于对单个函数的维护,并不会给主流程带来额外风险,相对来说会更加安全、稳定等。图 1-7 为 IoT 后端处理示例。

图1-7 IoT 后端处理示例

6.监控与自动化运维

在实际生产中,我们经常需要做一些监控脚本来监控网站服务或者 API 服务是否健康,包括是否可用、响应速度等。传统的方法是通过一些网站监控平台(例如 DNSPod 监控、360 网站服务监控,以及阿里云监控等)进行监控和告警。

这些监控平台的原理是用户自己设置要监控的网站和预期的时间阈值,由监控平台部署在各地区的服务器定期发起请求,进而判断网站或服务的可用性。当然,这些服务器虽然说通用性很强,但实际上并不一定适合。例如,现在需要监控某网站状态码和不同区域的延时,同时设置一个延时阈值,当网站状态异常或者延时过大时,平台通过邮件等进行通知和告警。

目前,针对这样一个定制化需求,大部分监控平台很难直接实现,所以开发一个网站状态监控工具就显得尤为重要。除此之外,在实际生产运维中,对所使用的云服务进行监控和告警也非常有必要。例如:在使用 Hadoop、Spark 时要对节点的健康进行监控;在使用 Kubernetes 时要对 API Server、ETCD 等的指标进行监控;在使用 Kafka 时要对数据积压量,以及 Topic、Consumer 等的指标进行监控。

对于这些服务的监控,我们往往不能通过简单的 URL 以及某些状态进行判断。在传统的运维中,我们通常会在额外的机器上设置一个定时任务,以对相关服务进行旁路监控。Serverless 架构的一个很重要的应用场景就是运维、监控与告警,即通过与定时触发器结合使用,实现对某些资源健康状态的监控与感知。图 1-8 为网站监控告警示例。

1-8 网站监控告警示例

原文链接

本文为阿里云原创内容,未经允许不得转载。

详解 Serverless 架构的 6 大应用场景相关推荐

  1. 从零入门 Serverless | 一文详解 Serverless 架构模式

    作者 | Hongqi  阿里云高级技术专家 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复 入门 ,即可获取 Serverl ...

  2. 一文详解Serverless架构模式

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 什么是 Serverless 架构?按照 CNCF 对 Serverless 计算的定义,Serv ...

  3. 带你从零入门 Serverless | 一文详解 Serverless 架构模式

    作者 | Hongqi  阿里云高级技术专家 责编 | Carol 来源 | Serverless 本文整理自<Serverless 技术公开课> 什么是 Serverless 架构?按照 ...

  4. 万字详解Docker架构原理、功能及使用

    一.简介 1.了解Docker的前生LXC LXC为Linux Container的简写.可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性.相当于C++中 ...

  5. 大型分布式架构详解:架构模式+敏捷性+可扩展+案例等

    大型分布式架构详解:架构模式+敏捷性+可扩展+案例等 本篇是大型分布式网站架构的技术总结篇. 主要对大型分布式架构中涉及的架构模式.高性能.高可用.可伸缩.敏捷性.可扩展等技术点进行简要总结,对大型分 ...

  6. 详解Oracle架构、原理、进程,学会世间再无复杂架构

    详解Oracle架构.原理.进程,学会世间再无复杂架构 学习是一个循序渐进的过程,从面到点.从宏观到微观,逐步渗透,各个击破,对于Oracle, 怎么样从宏观上来理解呢?先来看一个图,这个图取自于教材 ...

  7. 详解微架构:GPU与ASIC的对比

    一.GPU定义和内部结构 二.GPU的构成:微架构概述 三.GPU的构成:详解微架构SP.ROPs.TMU 四.GPU的构成:详解微架构光纤追踪单元和张量单元 五.GPU的构成:API概述 六.GPU ...

  8. 前瞻: 拥抱量子计算时代!详解2020年全球十大杰出量子计算公司

    拥抱量子计算时代!详解2020年全球十大杰出量子计算公司 https://blog.csdn.net/Qtumist/article/details/105462463 分类专栏: 新闻资讯 文章标签 ...

  9. 算法:详解布隆过滤器的原理、使用场景和注意事项@知乎.Young Chen

    算法:详解布隆过滤器的原理.使用场景和注意事项@知乎.Young Chen 什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data struc ...

最新文章

  1. python备份cisco交换机_1.自动备份思科交换机配置
  2. mybatisgenerator使用_MyBatis Generator,帮你少写50%代码的自动化工具,你用过吗?
  3. Java中动态获取项目根目录和tomcat的绝对路径
  4. Shiro <shiro:hasPermission >标签不生效,shiro权限不生效原因
  5. jsf 自定义属性_JSF资源包,自定义消息示例教程
  6. Windows XP声卡驱动正常,丢失声音服务的解决
  7. SM3算法对大文件做摘要
  8. SAP WBS预算可通过二种方式配置和使用
  9. win7 开始 计算机箭头,Windows7美化教程:Win7快捷方式箭头怎么去掉
  10. 我是如何同时在字节和微信成功拿到实习转正offer!
  11. 贵州安顺:红色基因激活初心密码 为民服务谱写秀丽篇章
  12. golang学习(三)—— 数组、切片、map
  13. fluent什么时候用滑移网格_Fluent转子定子系统的流体动力学计算
  14. 解决canvas画布图片跨域问题
  15. Linux窗口和Win命令窗口查看mysql bit类型的值
  16. 初中教师计算机培训方案,教师年度信息技术培训计划的方案
  17. 上奇产业通:全国人工智能产业分析报告
  18. 2023 年用于 Python 移动应用程序开发的流行工具
  19. wlan autoconfig 启动错误:1068依赖服务或组无法启动解决方案
  20. 优维CMDB:OneModel协助IT资源管理快速落地

热门文章

  1. 量子计算笔记序章---双缝实验
  2. 清华计算几何大作业思路分析和代码实现
  3. 共享经济的未来趋势:共享健身和健身设施的创新
  4. 回文指的是一个字符串从前面读和从后面读都一样,编写一个算法判断一个字符串是否为回文。
  5. 【Swin-T onnx】swin transformer 转 onnx Error解决
  6. 计算机窗口老失去焦点,win7系统电脑使用优化软件后当前窗口失去焦点
  7. java程序获取MindWave Mobile 2脑波耳机数据+二次开发
  8. 安卓手机用什么耳机最好?适合安卓手机的蓝牙耳机推荐
  9. isnumeric( )函数用法
  10. HTML表单 和 表单域