Serverless AI训练营:课时9:典型案例2:函数计算在音视频场景实践(二)
课时9:典型案例2:函数计算在音视频场景实践(二)
那么基于函数计算的方案,客户上传音视频文件到阿里云存储即可,一旦文件上传成功会立即触发函数计算执行,函数计算系统会自动根据任务数实时扩缩容,同时将转码后的音视频文件存到对象存储,利用该方案,客户在两天内就完成了业务开发,同时也满足了客户对于弹性高可用的能力诉求,计算力不再是瓶颈,高峰期函数计算提供了大量计算资源进行音视频处理上传到对象存储的千万级音视频文件自动触发函数计算,几个小时内就能完成整个业务流程,函数代码的高度自定义在当前还没有产品化解决方案的情况下,是该场景最佳实践,在音频和短视频处理场景下,用户反馈节省了大约60%的机器成本。
这是一个比较简单的架构,从简单到复杂,芒果TV案例。
核心价值:
全 Serverless 架构:整个流程高度自动化,视频的上传、处理、推送、分发在极短的时间内完成。
弹性高可用:计算力不再是瓶颈,时间驱动能力保证实时监听阿里云对象存储的时间,并快速把数据传输到后端算法系统,加快处理速度,提高处理效率。
稳定性:即使在上传视频高峰期,视频处理也不会有任何的排队。保障了服务的稳定性。
降低成本:有效应对短视频的突发在线流量,按需付费,提高资源利用率。
如上图,芒果 TV 是湖南广播电视台旗下唯一互联网视频平台,作为中国唯一一家拥有全终端、全平台牌照的网络视频平台,芒果 TV 每天要处理大量用户视频,为保证数据量突增时的系统瓶颈,减少闲置服务器资源成本;芒果 TV 选择全 Serverless 架构,函数计算的事件触发机制与毫秒级弹性扩容的伸缩能力可以有效解决芒果 TV 遇到的问题。
客户上传视频文件到阿里对象存储然后由对象存储自动触发执行,该过程完全基于阿里云内网,不会产生任何网络费用,同时在视频处理完后函数任务会将结果视频推送到 CDN 系统由 CDN 完成内容的就近分发,那么基于函数计算的 Serverless 架构,整个流程高度的自动化,视频上传、处理、推送、分发在极短的时间内完成,在满足芒果 TV 功能需求的前提下同时做到了弹性高可用计算力不再是瓶颈,事件驱动能力保证了实时监听阿里云对象存储事件,并快速把数据推送到后端系统,加快处理速度,提高处理效率。即使在上传视频高峰期,视频处理也不会有任何排队。保障了服务的稳定性,客户反馈在总体的费用上有明显的降本成果。
这个实例对比上一个是越来越复杂的。
如上图,天天看看是一家每月服务过亿用户的互联网公司,免费提供电影、电视剧、综艺等视频资源的高清在线点播和下载,也是中国正版影视发行平台,每天有大量的上传视频需要及时转码处理以适配各种终端及网络条件,要求短时间内准备大量的计算资源进行大规模并行转码处理,同时希望基于 FFmpeg 自建的转码服务能简单迁移。
该方案对比芒果 TV 的方案在接入层增加了健全适配多终端的需求,在计算层并行处理的实验要求。
前面两个案例是单个视频文件从头到尾串联处理,对大视频或者并行处理有更高要求的客户可以通过函数计算提供的 API 网关触发器 Serverless 工作流任务编排能力,快速完成业务的迁移、编排整个任务的状态完成整个并行计算的处理基于 FFmpeg 自建的转码服务基本上不需要改动就可以直接部署在函数计算上满足客户弹性高可用、高度自定义降低成本的需求。
如上图,蓝墨是一家由美国留学生回国创业的高科技公司,专注于移动互联网时代数字出版和移动学习领域的新技术研究及平台运营,自2012年成立以来其业务一直保持高速增长;海量视频教材资源需要剪辑、切分、组合、转码、分辨率调整、客户端适配等一系列复杂的技术工作,且需求量存在极为陡峭的波峰波谷,核心诉求是:节省成本、极致弹性、免运维...
蓝墨的架构中大量的云服务联动,对比前面三个案例增加了日志服务SLS、消息服务 MQ 等等,而且有大量的大文件需要并行处理,蓝墨选择了函数计算作为其 Serverless 架构的核心服务,充分享用云原生架构技术红利,完全按需调用,同时通过任务编排实现复杂的并行处理方案,相比于传统的方式,基于函数计算的方案帮助蓝墨节省了60%左右的 IT 成本投入。做到了无需运维,极高的弹性能力,帮助蓝墨技术团队更专注于复杂业务逻辑的实现,聚焦业务创新,这对于一个初创高速成长的公司是非常有意义的,需要专注于整个业务价值的增长,而不是对于一些底层技术细节追求。
结合四个案例可以看到函数计算在从简单的、快速上云一些服务到复杂的 Serverless 工作流、日志服务、消息服务等等语音服务系统发挥了非常重要的粘合作用。整个流程通过函数计算能够快速整合形成整套 Serverless 方案,能够帮助客户更聚焦业务开发,快速落地。
三、Demo场景演示
如何快速开发、调试和上线短视频转码业务。
首先打开函数计算的控制台,可以看到函数计算的一些状态包括指令等等
回到应用中心可以看到基于模板创建应用,可以看到很多模板,这些模板会以代码的方式提供,再根据模板更改适配的服务,以 FFmpeg 视频转码为例,可以看到整个应用的相关介绍
场景的实例可以从此视频处看到整个对应的监控包括时长、内存等等。也可以看到更多视频大小的分布执行时间分布等等,帮助实现白屏化,避免重复劳动。
这样的实例是基于函数计算对象存储加上 FFmpeg 实现
Serverless架构的弹性高可用方案也就是最佳实践的第一个案例。这
样案例是需要上传任意格式的文件,自动触发函数执行之后转码,可
以观察整个监控指标。
工作原理就是客户上传视频到对象存储自动触发函数计算立刻执行,函数计算执行之后会把视频文件转存回对象存储,客户在对象存储文件里面拿到转码后的文件。
音视频处理是 CPU 密集型应用,对内存包括 CPU、处理时长都有比较大的需求,如果说默认资源不满足场景的资源需求,可以提交工单扩充更大的资源。