应对 Job 场景,Serverless 如何帮助企业便捷上云

本文涉及的产品
性能测试 PTS,5000VUM额度
应用实时监控服务-应用监控,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 函数计算作为事件驱动的全托管计算服务,其执行模式天生就与这类 Job 场景非常契合,对上述痛点进行了全方面的支持,助力“任务”的无服务器上云。

作者:冯一博


任务(Jobs),是互联网服务的一种常见场景。在诸如 AI 训练、直播(视频转码)、数据清洗(ETL)、定时巡检等场景下,任务平台能否支持快速的高并发任务启动性能、提供较高的离线计算资源利用率以及丰富的上下游生态是这类场景的核心痛点。函数计算作为事件驱动的全托管计算服务,其执行模式天生就与这类 Job 场景非常契合,对上述痛点进行了全方面的支持,助力“任务”的无服务器上云。


函数计算和 Serverless Jobs


“Job”系统应具备什么能力?


在上述的“Job”场景中,一个任务处理系统应该具有以下能力:


  1. 任务触发:支持灵活的任务触发方式。如支持客户端手动触发,支持事件源触发,支持定时触发等;
  2. 任务编排:能够编排复杂任务流程,管理子任务之间关系,如分支、并行、循环等逻辑;
  3. 任务调度及状态管理:调度任务优先级,多租隔离及任务状态管理,支持多种任务并发度、限流;能够管理任务状态,控制任务的执行等;
  4. 资源调度:解决任务的运行资源问题。这里面包括多种运行时支持,计算资源冷启动延迟控制,在/离线任务混部,最终目标是使得系统具有较高的资源利用率;
  5. 任务可观测性:任务执行历史的查看、审计;任务的执行日志;
  6. 任务调度系统上下游生态:任务调度系统可以自然接入上下游系统。比如与 Kafka/ETL 生态、消息生态等集成的能力。

阿里云函数计算 Serverless Job


函数计算 Jobs 能力全景图如下图所示:


1.png

image.gif图一:函数计算 Jobs 能力全景图


业界常见任务调度系统 Job 能力对比


2.png

image.gif表一:常见任务调度系统能力对比


在普遍情况下,像诸如一些云厂商的批量计算产品、开源的 K8s Jobs 等任务调度系统支持的最小粒度一般是按实例级别扩缩容,并且不具有大规模任务(编排)管理的能力,因此比较适用于低并发、重负载、超长时运行的业务(如基因计算、大规模机器学习训练)等;而一些开源流程执行引擎、大数据处理系统的任务调度往往缺少弹性、多租隔离、高并发管理及可视化等一系列能力。函数计算作为免运维的 Serverless 平台,很好的结合了上述不同系统的优点,另外 Serverless 先天的弹性能力很好的支持了任务中普遍存在的高并发波峰波谷场景的需求。


推荐最佳实践 & 客户案例


AI 训练 & 推理


场景的核心诉求:


  1. 同时支持实时推理 + 离线训练,实时推理对冷启动有要求;
  2. 有明显的波峰波谷,计算量大,需要高并发,计算实例间基本不需要协同;
  3. 一般需要容器镜像运行自定义库进行训练。


案例 1:网易云音乐 - 音视频处理平台


网易云音乐的音乐“发现”和“分享”功能依赖对音乐进行基础特征分析及提取。在运行这类推荐算法及数据分析时,需要依赖非常大的算力对音乐原始文件进行处理。网易云音乐音视频离线处理平台在经历了 异步处理模式- 优先及队列优化 - 算法集群虚拟化 - 算法镜像框架化 - 云原生化 这一系列演进后,选择了函数计算作为视频平台的基础设施,有效解决了不断扩大的计算规模所带来的的难以运维、弹性差等问题。


3.pngimage.gif


案例 2:数据库自治服务 - 数据库巡检平台


阿里云集团内部的数据库巡检平台主要用于对 sql 语句的查询、日志等进行优化分析。整个平台任务分为离线训练及在线分析两类主要任务,其中在线分析业务的的计算规模达到了上万核,离线业务的每日执行时长也在 百万h。由于在线分析、离线训练时间上的不确定性,很难提高集群整体资源利用率,并且在业务高峰来时需要极大的弹性算力支持。业务最后使用函数计算构建了数据库巡检平台,满足日常的 AI 在线推理及模型的离线训练任务。


4.png


案例3:分众传媒 - Serverless 图片处理业务


在广告业务中,运行深度学习算法进行图片处理、比对、识别是比较常见的业务,这类业务往往具有数据来源多样、单实例处理时间不确定、波峰波谷明显、任务可观测要求高等特性。采用自购机器运行服务不但需要考虑机器的运维及资源利用率问题,还比较难以适配多种多样的图片源,难以做到服务的快速上线。


函数计算的多种事件源触发支持为这类业务提供了极大的便利。分众传媒采用 OSS/MNS 触发器触发函数计算,解决数据源多样的问题。用户的图片数据可以上传至 OSS 或者 MNS,对应的触发器则会直接触发函数计算来完成图片处理任务,函数计算的弹性及按量付费模式解决了资源使用率及机器运维的烦恼。在可观测性方面,任务处理实例使用了有状态异步调用模式,对于任何已触发的任务做到了可追溯的能力,方便业务对于执行失败的任务进行排查及重试。


5.png


视频转码 & 直播推流 & 录播转直播


直播转录/录播转直播业务往往同时具有业务的实时性、业务的不定时不定量的特点:


  1. 要求直播同时能够随时拉起处理实例,随时停止转录实例;
  2. 业务高峰的时间段集中在日间的几个小时,夜间几乎没有业务请求。因此资源的利用率和成本是主要考虑的因素。


对于视频转码场景除一般的弹性诉求外,往往还对资源规格(CPU)的灵活性有要求,以期待获取更高的资源利用率。如:


  1. 资源规格:由于转码输出码率的不同,出于成本考虑,希望能够灵活弹起不同规格的资源;
  2. 运行时间随机性。由于需要提高转码效率,往往会对视频进行分片处理,因此任务来的瞬间可能需要很高的实例数;
  3. 为了提高转码效率,可能进行分片后分别处理,涉及到多函数间共享数据;
  4. 需要容器镜像方式来运行一些自身的库,并且往往对快速启动;
  5. 由于转码的离线业务属性,任务结束后还需要留存一定的任务记录以便后续审计、问题排查等需求。


案例 1:新东方 - 云教室系统 Serverless 视频处理平台


新东方云教室系统支持了视频直播、转码、点播等新东方所有在线教育场景。随着业务量的增大,由于直播转录及视频转码任务处理平台具有明显的波峰波谷特性,自建机房较低的资源利用率成为了业务的核心痛点。为了提高整体的资源利用率,云教室系统上述功能使用了函数计算,可以根据业务特点灵活选择计算资源的规格,毫秒级冷启动性能以及 "pay as you go" 的付费模式也使得整体的计算资源的利用率非常高,在满足波峰算力的同时让整个系统拥有最低的成本。


在进行业务场景的 serverless 化的过程中,云教室系统使用了阿里云函数计算有状态调用模式。这种模式也是专为 Job 场景打造,能够进行历史记录查询及优雅停止任务的功能。在存储方面,视频临时文件采用了函数计算 - NAS 方案。新东方通过视频平台的函数调度器能够轮询多个函数服务来进行负载均衡,每个服务通过挂载不同的 NAS,在做到了文件共享的同时提高了函数内部 NAS 临时存储的使用率,进一步降低了资源的使用成本。
image.gif

6.png


案例 2:米连 - 直播视频实时合规审核平台


米连的直播相亲业务涉及视频处理的主要任务为视频截帧,在拉流的同时进行视频截帧并上传到目标存储中。这类直播场景由于具有波峰波谷的特性,因此除资源利用率要求外还具有一定的实时性及长时执行的要求。审核平台最终使用了函数计算支持高弹性及长时算力的能力,有效的支撑了业务场景。
image.gif

7.png


数据处理 & ETL


场景的核心诉求:


  1. 弹性,高并发的支持。资源按需付费,种类多样,利用率高,免运维;
  2. 复杂流程的编排支持;
  3. 任务的可观测性能力。


案例:图森未来 - 自动化数据处理平台, 让一切简单可靠


图森未来的无人驾驶技术研发依赖大量的路测试验数据积累,而高效进行路测、快速对路测数据进行处理来指导模型的更新迭代是这类场景的核心诉求。而路测不定时运行,数据入库的流程较长,涉及多个系统交互,算力不确定等特性为流程编排任务为数据处理平台带来了较大挑战。


针对上述情况,图森未来探索数据处理平台的自动化。数据处理平台使用了 Serverless 工作流进行了整体流程的编排,并通过原生支持的消息服务 MNS 解决了云上云下的数据打通问题。


除调度外,图森未来通过使用任务的输入输出映射及状态汇报机制,高效的管理流程中各任务的生命周期及相互间的数据传递,对流程中任务的状态及执行过程中数据更新进行维护,解决了长时不确定长流程的数据处理需求。
image.gif


总结


结合上述案例及分析,函数计算的弹性、可观测性、队列隔离能力及完整的事件生态极好的支持了这类任务场景。简单总结主要体现在以下几个方面:


  1. 任务的触发
    函数计算支持定时触发器、OSS 触发器、各类消息队列触发器,这为 EDA 架构的应用程序、多种数据来源的数据处理场景提供了丰富的能力;


  1. 任务编排&任务调度
    函数计算原生被阿里云 Serverless 工作流服务无缝集成,Serverless 工作流支持顺序、分支、并行等方式来编排分布式任务,跟踪每个任务的状态转换,并在必要时执行事先定义的重试逻辑。Serverless 工作流 + 函数计算的组合可以很好的支持复杂长流程的运行;


  1. 在资源层面,Serverless 更能体现出其核心优势:开发免运维,并提供高弹性和高可用性保障。
    对比自建,使用无服务器架构后,仅需要按实际任务执行的使用量付费,即节省了成本,也省去了运维的烦恼。函数计算支持多种运行时语言,也支持了运行自定义容器镜像,极大方便了开发调试流程。


  1. 在可观测方面,Serverless 工作流和函数计算对多任务流程、单任务流程提供了丰富的可观测性指标和查询方式,能够便捷的查找历史、观测执行中等任务的指标及日志,方便调试及问题追踪。


在未来,函数计算 - Serverless Jobs 将精耕垂直领域的任务处理场景,包括提供更长的实例执行时间、更丰富的可观测性指标、更强大的任务调度策略及端对端集成能力,致力于为您提供垂直场景下的“最短路径”,助力业务腾飞。


点击此处,查看更多函数计算相关信息~

image.gif



了解更多相关信息,请扫描下方二维码或搜索微信号(AlibabaCloud888)添加云原生小助手!获取更多相关资讯!

二维码.png

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
机器学习/深度学习 机器人 Serverless
FaaS 的应用场景
FaaS 的应用场景
|
3月前
|
消息中间件 存储 监控
函数计算产品使用问题之“低频介质型”适用哪些场景
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
关系型数据库 Serverless 分布式数据库
ICDE’24 | 中国企业首获最佳论文,详解PolarDB Serverless如何在0.5秒内实现跨机迁移
数据库领域顶会 ICDE 2024于5月13-17日在荷兰乌特勒支(Utrecht, Netherlands)举办。ICDE (The International Conference on Data Engineering) 与VLDB、SIGMOD被公认为是国际数据管理领域三大顶级学术会议,此次在荷兰召开的ICDE 2024大会,共吸引北京大学、清华大学、浙江大学、MIT、斯坦福等机构,以及谷歌、微软、阿里云、华为、字节等公司的近1000名人员参会,共同探讨AI、数据库、数据处理领域的前沿技术问题。
|
3月前
|
存储 缓存 监控
函数计算产品使用问题之调用sd生图时,怎么保证高并发场景正常运行
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
弹性计算 监控 Serverless
函数计算产品使用问题之如何处理银行转账场景遇到的高并发问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
前端开发 小程序 Serverless
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
|
3月前
|
自然语言处理 Serverless Linux
Serverless痛点解决问题之企业用户业务体量变大如何解决
Serverless痛点解决问题之企业用户业务体量变大如何解决
35 1
|
3月前
|
人工智能 Serverless API
Serverless 架构实现弹幕场景问题之用SAT进行双主键的插入操作如何解决
Serverless 架构实现弹幕场景问题之用SAT进行双主键的插入操作如何解决
35 0
|
3月前
|
NoSQL Serverless 数据库连接
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
36 0
|
3月前
|
存储 Serverless API
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
28 0

相关产品

  • 函数计算