函数计算驱动多媒体文件处理:高效、稳定与成本优化实践

本文涉及的产品
对象存储 OSS,20GB 3个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 本次测评的解决方案《告别资源瓶颈,函数计算驱动多媒体文件处理》展示了如何利用阿里云函数计算高效处理多媒体文件。文档结构清晰、内容详实,适合新客户参考。方案提供了一键部署与手动部署两种方式,前者简便快捷,后者灵活性高但步骤较多。通过部署,用户可体验到基于函数计算的文件处理服务,显著提升处理效率和系统稳定性。此外,测评还对比了应用内处理文件与函数计算处理文件的不同,突出了函数计算在资源管理和成本控制方面的优势。

引言

又到了一周一次的解决方案测评频道了,本次测评的主题是《告别资源瓶颈,函数计算驱动多媒体文件处理》,测评地址如下:https://developer.aliyun.com/topic/fc-drive-file

image.png

废话不多说,下面我们就一起来看看解决方案吧!

函数计算驱动多媒体文件处理

解决方案

具体的细节这里先不说,单从排版、文档结构、内容组织来看,这篇堪称上乘之作,比我上次看到的解决方案都要好很多。

文档的标题层级分明,从主标题到子标题,再到更细粒度的小节标题,一目了然,让读者能够迅速找到感兴趣的部分;内容按照逻辑顺序组织,从问题的提出、解决方案的介绍到具体实施步骤,环环相扣,条理清晰,完整全面,读起来非常的顺畅,完全可以作为一份新客户的指导教程,很赞!

image.png
image.png
image.png

部署实践

点击解决方案中的【立即部署】,进入到部署界面,分为一键部署手动部署两种形式:

image.png

其实这里也不用想,自然是一键部署从效率上更优于手动部署,而手动部署的灵活程度优于一键部署,不过,秉着探索精神,下面还是从头到尾实践一遍。

一键部署体验

我们直接进入到第三步,点击蓝色字体处的一键部署:

image.png

资源栈名称和存储空间名称先保持默认,我们修改一下应用登录配置中的登录名及密码:

image.png

选择可用区及实例类型,设置实例的登陆密码:

image.png

设置数据库登录名及密码,选择RDS实例规格:

image.png

点击创建,发现权限有缺失,点击立即开通:

image.png

同意授权即可:

image.png

假如当前尚未开通,需在此开通消息服务MNS,按量付费的,不用担心。

image.png

回到刚才那个界面后点击继续创建:

image.png

创建完成后如下图所示:

image.png

点击输出,点击下面的url地址:

image.png

输入刚才设置的用户名及密码:

image.png

在文件管理页面,单击上传新的文件,在上传文件对话框,上传ppt文件,示例要求必须是pptx文件格式。

image.png

上传完成后可以在文件列表页面看到上传记录,稍等几秒后文件处理完成,可以在页面看到如下状态,点击可以下载处理后的ppt。

image.png

我们查阅该资源栈的执行模板,可以看到,当前网站运行多媒体文件处理的代码确确实实是运行在函数计算FC上的。

image.png

   "FcFunction": {
   
   
      "Type": "ALIYUN::FC::Function",
      "Properties": {
   
   
        "Code": {
   
   
          "OssBucketName": {
   
   
            "Ref": "OssBucket"
          },
          "OssObjectName": "fc-code/fc-web-demo-job-jar-with-dependencies.jar.zip"
        },
        "FunctionName": {
   
   
          "Fn::Sub": "${CommonName}-function"
        },
        "ServiceName": {
   
   
          "Fn::Sub": "${FcService.ServiceName}"
        },
        "MemorySize": 1024,
        "Handler": "com.aliyun.demo.Main::handleRequest",
        "DiskSize": 512,
        "Timeout": 120,
        "Runtime": "java11",
        "Cpu": 0.5
      },
      "DependsOn": "DeployApplicationOnEcs"
    },

而这也恰恰佐证了背景中所言,使用函数计算来托管运行多媒体文件处理的代码能显著提升文件处理的效率和可靠性

手动部署体验

手动部署这里也是分为两个部分的,一部分是基础的服务资源配置即部署资源,一部分是应用配置即部署应用

image.png

在部署资源中,我们需要部署专有网络VPC、交换机和安全组,创建云数据库 RDS MySQL实例,创建消息服务MNS队列,创建对象存储OSS Bucket,创建角色和权限策略,创建云服务器ECS。

image.png

这里按照操作文档一步步执行即可。

在部署应用上,我们还是需要手动执行一些操作。

登录云服务器ECS管理控制台。点击右上角的远程连接,并使用root权限登录到云服务器。

image.png

部署JAVA环境:

yum upgrade & yum install java-1.8.0-openjdk-devel

image.png

验证安装成功,执行如下命令:

java -version

image.png

编辑环境变量文件如下:

vim ~/.bashrc
export APPLETS_RDS_ENDPOINT=<数据库连接地址>
export APPLETS_RDS_USER=<数据库用户名>
export APPLETS_RDS_PASSWORD=<数据库密码>
export APPLETS_RDS_DB_NAME=<数据库名称>
export ALIYUN_RAM_ROLE_NAME=<角色名称>
# 外网访问 OSS endpoint 如oss-cn-hangzhou.aliyuncs.com
export ALIYUN_OSS_ENDPOINT=<外网访问 OSS endpoint>
# OSS region 如cn-hangzhou
export ALIYUN_REGION_ID=<OSS region>
export ALIYUN_OSS_BUCKET=<OSS bucket name>
export ECS_IP=<ECS实例公网IP>
# MNS队列 endpoint使用内网地址,如http://xxx.mns.cn-hangzhou-internal.aliyuncs.com
export ALIYUN_MNS_ENDPOINT=<MNS队列 endpoint>
export ALIYUN_MNS_QUEUE=<MNS队列名称>
export WANX_DEMO_USERNAME=<自定义界面登录用户名>
export WANX_DEMO_PASSWORD=<自定义界面登录密码>

image.png

执行如下命令使环境变量生效:

source ~/.bashrc

image.png

下载解压工具unzip,此处已经下载好了:

yum install unzip

image.png

下载代码:

wget https://help-static-aliyun-doc.aliyuncs.com/demos/demo.zip

image.png

解压代码包

unzip -d /home/admin demo.zip

启动服务

sh /home/admin/deploy.sh start /home/admin/fc-web-demo-0.0.1-SNAPSHOT.jar

看到如下信息表示启动成功。

image.png

接下来,我们要创建函数计算函数,用于感知OSS Bucket中用户上传的文件,进行处理,然后将处理后的文件上传到OSS Bucket中。

在创建函数页面,选择事件函数,配置以下配置项,然后单击创建。

image.png

按要求配置函数如下:

image.png

在函数配置页面,选择配置页签,在左侧导航栏,单击触发器,然后单击创建触发器。

image.png
image.png

最后,我们访问ECS的公网地址即可看到该界面:

image.png

对照之前一键部署中的模版,我们也可以发现其一致性,即:一键部署仅是采用ROS模版将手动部署的大量复杂命令脚本化了

比如此段对应着上文手动配置环境变量文件:

image.png

比如此段对应着上文手动创建函数计算触发器:

image.png

总结

总的来说,这篇解决方案确实是非常优秀的,不吹不黑,至少比我之前评测过的任何一篇都要完整和详细。

而对比在应用中处理文件和使用函数计算处理文件,其特点也是显而易见的:

image.png

函数计算能够显著增强文件处理的稳定性和扩展性。相较于在应用中直接处理文件导致的资源争用和系统负载问题,函数计算通过解耦核心业务逻辑与文件处理任务,确保了系统的高可用性。同时,由于函数计算支持自动弹性的资源分配机制,可以轻松应对突发的流量高峰,无需预先配置大量的计算资源来应对可能的峰值,从而大大降低了成本。这种按需分配资源的方式不仅提高了资源利用率,还简化了运维工作,使得开发者能够更加专注于业务逻辑的开发与优化。

展望未来,随着云计算技术的不断进步,期望函数计算能提供更多定制化的解决方案,在文件处理领域发挥越来越重要的作用。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2天前
|
消息中间件 关系型数据库 Serverless
函数计算驱动多媒体文件处理解决方案
《告别资源瓶颈,函数计算驱动多媒体文件处理》方案利用函数计算解耦文件处理与核心应用,提升高并发处理效率和服务稳定性。体验测评显示,文档引导相对全面但部分细节可优化;代码示例有实用性,但可能遇到环境配置等问题;函数计算性能、稳定性和成本满足需求,适合企业上云;云产品如函数计算功能强大、操作便捷,对象存储与其他服务集成良好,云服务器和数据库提供可靠支持。该方案虽有改进空间,但整体值得推荐,能为多媒体文件处理提供高效、稳定且成本可控的选择。
139 83
|
1天前
|
运维 Kubernetes 前端开发
拥抱Knative, 合思加速Serverless化演进实践
合思信息基于阿里云容器服务Knative, 实现Serverless化演进的最佳实践。
拥抱Knative, 合思加速Serverless化演进实践
|
1天前
|
消息中间件 关系型数据库 Serverless
函数计算驱动多媒体文件处理解决方案评测
在本次评测中,我有幸体验了函数计算驱动的多媒体文件处理解决方案。
39 28
|
4天前
|
消息中间件 弹性计算 关系型数据库
体验函数计算:高效处理多媒体文件的真实感受与实战总结
该方案在引导和文档方面做得较为详尽,仅在事件驱动机制部分略显简略。部署和代码示例实用,但需注意内存配置以避免超时。使用体验方面,函数计算表现出色,尤其在高并发场景下,显著提升了应用稳定性和成本效益。云产品如OSS、MNS等与函数计算配合流畅,ECS和RDS表现稳健。总体而言,这套方案弹性好、成本低,特别适合应对高并发或流量不确定的场景,值得推荐。
44 24
|
7天前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
20 0
|
9天前
|
消息中间件 弹性计算 关系型数据库
函数计算驱动多媒体文件处理解决方案评测
近期,我有机会体验了阿里云的"告别资源瓶颈,函数计算驱动多媒体文件处理"解决方案。这个方案旨在解决传统应用中文件处理可能带来的资源瓶颈问题,通过函数计算来实现更高效、稳定的多媒体文件处理。以下是我的详细评测:
18 0
|
10天前
|
机器学习/深度学习 机器人 Serverless
FaaS 的应用场景
FaaS 的应用场景
|
9天前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
9天前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
12天前
|
消息中间件 SQL 监控
Serverless 应用的监控与调试问题之BMQ的架构是怎么支持流批一体的
Serverless 应用的监控与调试问题之BMQ的架构是怎么支持流批一体的

热门文章

最新文章

下一篇
DDNS