云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
摘要:今天分享的内容是由来自于阿里云技术内容团队的周博宇带来的一篇突破资源瓶颈,使用函数计算来处理多媒体文件的一篇方案。主要分为以下六部分。
1. 寻找阿里云的云需求的解决方案
2. 选择函数计算的原因
3. 两种不同的处理文件的方式对比
4. 使用函数计算实现多媒体文件处理
5. 技术方案的广泛应用场景
6. 阿里云推荐优惠购买云产品
01. 寻找阿里云的云需求的解决方案
首先我们打开阿里云dot com的官网,在最顶部找到解决方案,点击这个技术解决方案,可以在下面找到这一篇告别资源瓶颈,函数计算驱动多媒体文件处理的方案,我们进入方案的详情页。
该技术解决方案是阿云针对用户的常实际场景推出的云上的解决方案。大家有什么任何的使用云的需求都可以来这里找到相应的解决方案。首先我们介绍一下这篇方案,他是随着数字化和多媒体的发展,尤其是企业数字化,无纸化办公和社交媒体的发展。我们越来越多的应用都会涉及到多媒体文件的处理。比如在办公中涉及到 Word 、Excel、 PPT 时以及在社交媒体中会有图片,音频和视频的一些字文件的使用。那我们作为开发者,一开发的应用也会越来越多地涉及到文件的处理。从文件的上传存储,在线的展示到文件的处理,格式转化,加水印,到音视频的转码,图片的一些安全检测等等方面,我们都会涉及到使用应用程序来处理文件,越来越多的应用程序需要处理,所以向你推荐使用函数计算来处理媒体文件。
02. 选择函数计算的原因
选择函数计算的原因其实在我们过往的应用开发过程中能体现出来,通常会在原有的后端程序中来实现文件上传,保存和处理。这种方式实现起来比较快,又不需要使用新的资源。但是这种方式也会存在一些问题,就是在功能刚刚上线的时候,其实它能很好的来支撑你的发展,但是随着你业务量的扩大,比如说上传的并发量的增加,首先多人的上传可能会占用很大的带宽,造成带宽的拥堵。随着文件的增多,你在处理文件时会使用的 CPU 内存也会增加。这时会与你的程序的主要的功能造成一些影响,其中包括造成一些 CPU 的内存占满,随着你存储文件的增加,也可能会造成你磁盘的占满,进而影响应用程序。我们建议你是将这种文件处理的代码和能力,从主应用拆分出来,来使用函数计算来完成,它这样带来的好处有几点,第一点是可以节奏你的核心业务与文件处理程序,当文件处理程序出现瓶颈或者出现拥堵的时候,不会影响核心业务,你的网站仍然是可以访问的。第二点是它可以按需计算,按需计算成本。就算是根据你具体的使用量而来。付费的而无需说我不用的时候是不需要花钱的。第三点是可以弹性自动扩展,随着你高并持续的并发的增长,可以去自动的弹出新的实力来处理这些程序,而不会造成一些拥堵。
03. 两种不同的处理文件的方式对比
那你可能也会考虑到说,我为什么不可以去重新重新创建一个应用程序来部署文件处理应用,那我们下面也是对两种方式做了一个详细的对比。那你自己去创建一个应用来处理文件,那首先它的你需要去花大量的精力去维护它,同时你需要去照顾到它的稳定性。
(1) 稳定性:当计算量比较大的时候,仍然会产生这样的一个 CPU 内存和 IO 资源的争抢造成程序的不稳定。那使用还是计算的话,它其实是由云计算语音上的函数计算来保证你应用的稳定性。他来提提供更高的可用性。
(2) 扩展性:第二点是扩展的难度大,就是当你做一些运营活动,或者是在企业里边会有一些特殊的时候需要大家上传比较多的文件的时候就会带来比较大的程序的负担。这个时候一般情况下,我们会选择去提前扩容机器去申请机器,部署环境,再去部署程序。那这样的话,他其实是有一定难度的。如果你使用函数计算的话,它其实可以自动弹性伸缩。根据我们计算的需求量的增长来自动的弹出更多的资源来供你使用。
(3) 成本:第3点是成本高,就是当我们申请一些固定的资源。比如我申请两台。机器来来部署我的这个应用处理文件的应用。那我们可能有些时候他并没有是并没有人上传文件,那这个应用也存在这里,那它就造成了一些成本的负担。那假如我们使用函数计算的话,只有在真正需要计算的时候,他才会产生计费。那这样的话,这种按量付费的方式会带来比较大的成本的节省。
04. 使用函数计算实现多媒体文件处理
下面我们看一下函数计算处理多媒体文件的一个架构与部署,首先我们看到在方案的左侧,是使用了一台 ECS 和一台 RDS 来模拟正常的一个应用。 ECS 是作为传统后端,承载了 Web 页面,以及后端服务, RDS 是存储数据。在右侧是使用了 OSS 来存储上传的文件,使用 FC 去做文件的一个处理,使用 MNS 作为消息中间键来连通 OSS 和原来在后端应用部署在 ECS 的后端应用。从而使用右边这套 OSS、FC 和 MNS 来组成了一个文件单独的文件处理系统,进而将文件处理从传统应用中解耦出来。
05. 技术方案的广泛应用场景
这套系统除了实现多媒体文件的处理,其实它还有更很广泛的应用场景。比如说图片的处理,视频的处理视频的转码,广告的一个离线计算。那在这个方案之中,我们将原来的从用户从浏览器将文件上传到服务器中,仅有服务器只做一些签名,由浏览器直接将文件上传到 OSS 中,最终这样带来的好处是你的文件其实是不需要经过 ECS 的官网,不占用 ECS 的官网带宽的,它直接是对接到 OSS 上,上传到 OSS 上,上传到 OSS 上之后,通过 OSS 事件触发的方式,来触发 FC 上的文件处理应用。 FC 接收到这样文件处理的请求是从 OSS 上把文件拉取下来,在 MNS 本地进行处理,处理完成之后,将处理后的也再次上传到 OSS 中,于是 OSS 接收到新的文件之后,会触发一条 MNS 消息, MNS 服务器只需要监听 MNS 消息,收到消息后去做一些服务器状态的更新。这样我们就完成了这一个文件处理的过程,在整个过程服务器只需要在数据库中记录一条处理日志,监听消息,收到消息之后,处理完成之后的文件的地址存储下来。整体的服务器的承受的压力是比较小的,所有的文件处理的过程都是在云上 FC 中进行。
06. 阿里云为你推荐优惠购买云产品
我们解决方案也会给大家提供一些优惠的购买和免费试用的额度。大家可以先领取一些额度,再来试用方案。像函数计算是对新用户提供了每个月15万 CU 的试用额度,可以持续的使用三个月。同时还是预算也支持购买资源包。你可以购买一定数量的资源包,来达到比较优惠的程度来使用函数计算。
本次的分享到此结束,谢谢大家。