Serverless 架构的典型应用场景

本文涉及的产品
简介: Serverless架构自提出到现在经过若干年的发展,已经在很多领域中有着非常多的最佳实践。但是Serverless自身也是有局限性,由于其无状态、轻量化等特性,Serverless在一部分场景下可以有非常优秀的表现,但是在另外一些场景下可能表现的并不是很理想。

Serverless架构自提出到现在经过若干年的发展,已经在很多领域中有着非常多的最佳实践。但是Serverless自身也是有局限性,由于其无状态、轻量化等特性,Serverless在一部分场景下可以有非常优秀的表现,但是在另外一些场景下可能表现的并不是很理想。在《CNCF Serverless Whitepaper v1.0》中对Serverless架构所适合的用户场景描述为:

  • 异步的并发,组件可独立部署和扩展(原文:Asynchronous, concurrent, easy to parallelize into independent units of work)
  • 应对突发或服务使用量不可预测(原文:Infrequent or has sporadic demand, with large, unpredictable variance in scaling requirements)
  • 短暂、无状态的应用,对冷启动时间不敏感(原文:Stateless, ephemeral, without a major need for instantaneous cold start time)
  • 需要快速开发迭代的业务,因为无需提前申请资源,因此可以加快业务上线速度(原文:Highly dynamic in terms of changing business requirements that drive a need for accelerated developer velocity)

在文章中还对Serverless架构可以更好支持的领域进行了简单的描述:Non-HTTP-centric and non-elastic scale workloads that weren’t good fits for an IaaS, PaaS, or CaaS solution can now take advantage of the on-demand nature and efficient cost model of a serverless architecture,针对Serverless比较适用的具体领域,在文章中这样举例:

• 响应数据库更改(插入、更新、触发、删除)的执行逻辑(原文:Executing logic in response to database changes (insert, update, trigger, delete) )

• 对物联网传感器输入消息(如MQTT消息)进行分析(原文:Performing analytics on IoT sensor input messages (such as MQTT messages) )

• 处理流处理(分析或修改动态数据)(原文:Handling stream processing (analyzing or modifying data in motion) )

• 管理单次提取、转换和存储需要在短时间内进行大量处理(ETL)原文:Managing single time extract, transform, and loarequire a lot of processing for a short time (ETL) )

• 通过聊天机器人界面提供认知计算(异步,但相关)(原文:Providing cognitive computing via a chatbot interface (asynchronous, but correlated) )

• 调度短时间内执行的任务,例如cron或批处理的调用(原文:Scheduling tasks performed for a short time, such as cron or batch style invocations )

• 机器学习和人工智能模型(检索一个或多个数据元素(异步、并发,易于并行化到独立的工作单元罕见或零星需求,与大,不可预测的方差比例要求无状态的,短暂的,没有一个主要需要瞬时冷启动时间高度动态变化的业务需求的驱动需要加快开发速度表7,NLP,或图像,并与预先学习的数据模型进行匹配,以识别文本、面孔、异常等。)(原文:Serving machine learning and AI models (retrieving one or more data elements such Asynchronous, concurrent, easy to parallelize into independent units of work Infrequent or has sporadic demand, with large, unpredictable variance in scaling requirements Stateless, ephemeral, without a major need for instantaneous cold start time Highly dynamic in terms of changing business requirements that drive a need for accelerated developer velocity 7 as tables, NLP, or images and matching against a pre-learned data model to identify text, faces, anomalies, etc.) )

• 持续集成管道按需为构建作业提供资源,而不是保持一个构建从主机池等待作业分派(原文:Continuous integration pipelines that provision resources for build jobs on-demand, instead of keeping a pool of build slave hosts waiting for jobs to be dispatched)

《CNCF Serverless Whitepaper v1.0》站在Serverless架构的特点,从理论上描述了Serverless架构适合的场景或业务,云厂商将会站在自身的业务角度,整体来描述Serverless架构的典型场景,不同云厂商虽然描述的典型场景可能有所不同,但是实际上整体思路或者类型是类似的:

云厂商 产品

典型场景举例

AWS Lambda

  • 实时文件处理
  • 实时流处理
  • 机器学习
  • IoT后端
  • 移动应用后端
  • Web应用程序

阿里云 函数计算

  • Web应用
  • 实时数据处理
  • AI推理
  • 视频转码

华为云 函数工作流

  • 实时文件处理
  • 实时数据流处理
  • Web/移动应用后端
  • 人工智能场景

腾讯云 云函数

  • 实时文件处理
  • 数据ETL处理
  • 移动及Web应用后端
  • AI推理预测

综上所述可以看到在各个云厂商层面,所推出的典型场景主要包括:实时文件处理、实时数据处理、机器学习(AI推理预测)、IoT后端、移动应用后端、Web应用程序、音视频转码(实际上与实时文件处理是类似的)等。

实时文件处理

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

数据ETL处理

通常我们要对大数据进行处理,需要搭建Hadoop或者Spark等相关大数据的框架,同时要有一个处理数据的集群,也被称为分布式系统。通过Serveerless技术,只需要不断地将获得到的数据不断的存储到对象存储,并且通过对象存储相关触发器触发数据拆分函数进行相关数据或者任务的拆分,然后再调用相关处理函数,处理完成之后,存储到云数据库中。例如:某证券公司每12小时统计一次该时段的交易情况并整理出该时段交易量 top 5,每天处理一遍秒杀网站的交易流日志获取因售罄而导致的错误从而分析商品热度和趋势等。云函数近乎无限扩容的能力可以使您轻松地进行大容量数据的计算。我们利用云函数可以对源数据并发执行多个 mapper 和 reducer 函数,在短时间内完成工作;相比传统的工作方式,使用云函数更能避免资源的闲置浪费从而节省资金。

实时数据处理

通过Serverless架构所支持的丰富的事件源,通过事件触发机制,可以通过几行代码和简单的配置对数据进行实时处理,例如:对 OSS zip 包进行解压、对 SLS 日志或 OTS 数据进行清洗、对 MNS 消息进行自定义消费等

机器学习(AI推理预测)

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


IoT后端

目前很多厂商都在推出自己的智能音响产品,用户可以对智能音箱说出一句话,智能音箱可以通过互联网将这句话传递给后端服务,然后获得到反馈结果,再返回给用户。通过Serverless架构,可以将API网关、云函数以及数据库产品进行结合来替代传统的服务器或者是虚拟机等,通过这样的一个架构,一方面,可以确保资源的按量付费,只有在使用的时候,函数部分才会计费,另一方面可以当用户量增加之后,通过Serverless实现的智能音箱系统的后端,也会进行弹性伸缩,可以保证用户侧的服务稳定,当我们要对其中某个功能进行维护相当于对单个函数进行维护,并不会对主流程产生额外风险。相对来说会更加安全、稳定等。

Web应用/移动应用后端

Serverless架构和云厂商所提供的其他云产品进行结合,开发者能够构建可弹性扩展的移动或 Web 应用程序 – 轻松创建丰富的无服务器后端,而且这些程序可在多个数据中心高可用运行,无需在可扩展性、备份冗余方面执行任何管理工作。

音视频转码

视频应用、社交应用等场景下,用户会上传一些视频,通常情况下,上传的视频会进行一些转码,包括转换为不同的清晰度,通过Serverless技术与对象存储相关产品组合,利用对象存储相关触发器,即上传者将视频上传到对象存储中,触发如果云函数对齐其进行处理,处理之后将其重新存储到对象存储中,这个时候其他用户过来就可以选择编码后的视频进行播放,包括对不同清晰度的选择等。

综上所示,Serverless架构的典型应用场景更多是由Serverless架构的特点决定的。当然,随着时间的不断推移,Serverless架构其实在不断的演进,特点会更加突出,劣势会被弥补,进而Serverless架构所适合的场景也会不断的更加丰富。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
17天前
|
资源调度 前端开发 JavaScript
第十章(应用场景篇) Single-SPA微前端架构深度解析与实践教程
第十章(应用场景篇) Single-SPA微前端架构深度解析与实践教程
|
1天前
|
资源调度 运维 Cloud Native
云原生架构技术之无服务器技术
当这些BaaS云服务日趋完善时,无服务器技术(Serverless)因为屏蔽了服务器的各种运维复杂度,让开发人员可以将更多精力用于业务逻辑设计与实现,而逐渐成为云原生主流技术之一。
10 5
|
3天前
|
消息中间件 弹性计算 监控
【Serverless架构组成及优势适用场景】
Serverless的弹性伸缩、按需计费、无状态等特性使得开发者能够更加专注于业务逻辑,摆脱繁琐的服务器管理。它的优势在于灵活应对突发性工作负载、降低成本、提高开发效率,尤其在事件驱动、微服务、后端API等场景中表现出色。虽然Serverless仍然在不断发展,但其已经在云计算领域掀起了一场革命,成为当今应用开发的热门选择。随着技术的不断演进,我们有理由期待Serverless将继续推动应用开发的创新,为我们构建更加高效、可靠的应用提供更多可能。
|
5天前
|
运维 Cloud Native 开发者
云原生架构的未来演进:从容器化到无服务器
【5月更文挑战第28天】 在现代IT领域,云原生技术正成为推动企业数字化转型的核心力量。本文将探讨云原生架构的关键组成部分,包括容器化、微服务以及无服务器计算,并预测这些技术的发展趋势。文章旨在提供一个全面的视角,以理解云原生生态系统如何适应日益复杂的业务需求,并支持构建更加灵活、可扩展的应用程序。
|
12天前
|
运维 监控 JavaScript
【阿里云云原生专栏】Serverless架构下的应用部署与运维:阿里云Function Compute深度探索
【5月更文挑战第21天】阿里云Function Compute是事件驱动的无服务器计算服务,让用户无需关注基础设施,专注业务逻辑。本文详述了在FC上部署应用的步骤,包括创建函数、编写代码和部署,并介绍了运维功能:监控告警、日志管理、版本管理和授权管理,提供高效低成本的计算服务。
160 6
|
17天前
|
安全 Serverless API
Serverless架构在图像处理中展现出高成本效益,按需付费降低费用,动态调整资源避免浪费
【5月更文挑战第16天】Serverless架构在图像处理中展现出高成本效益,按需付费降低费用,动态调整资源避免浪费。其出色的并发处理能力和自动扩展确保高并发场景的顺利执行。简化开发流程,让开发者专注业务逻辑,同时提供丰富API和集成服务。安全方面,Serverless通过云服务商管理基础架构和多种安全机制保障任务安全。因此,Serverless是处理高并发、动态需求的理想选择,尤其适合图像处理领域。随着技术发展,其应用前景广阔。
30 4
|
18天前
|
监控 云计算 开发者
探索云计算中的无服务器架构:从概念到实践
无服务器架构作为云计算领域的新兴技术,正在以其高效、灵活的特性吸引着越来越多的开发者和企业。本文将深入探讨无服务器架构的概念及其在云计算中的应用,通过实际案例展示如何利用无服务器架构构建可靠、可扩展的应用系统。
|
18天前
|
人工智能 运维 算法
函数计算的应用场景
函数计算的应用场景介绍
19 1
|
18天前
|
运维 监控 Serverless
【专栏】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器(Serverless)
【4月更文挑战第28天】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器。它基于事件驱动,自动扩展资源并按需计费。优势包括缩短开发周期、优化资源利用、降低成本、提高可用性及简化维护。然而,冷启动延迟、调试困难、性能监控、安全性和学习曲线等挑战仍需解决。随着技术进步,无服务器架构将在科技发展中发挥更大作用。
|
12天前
|
机器学习/深度学习 人工智能 监控
基于函数计算体验AIGC文生图应用
小陈在学习Serverless和函数计算后,计划通过阿里云函数计算服务实践AIGC应用。他发现阿里云提供了基于Stable Diffusion的文生图模型模板,可以快速创建AIGC应用。部署步骤包括开通函数计算服务,通过模板创建应用并部署,然后通过应用域名进行文字生图体验。用户还能查看和管理函数,进行版本和别名管理。实验完成后,应用可以被安全删除。
188 2

热门文章

最新文章

相关产品

  • 函数计算