Serverless 事件驱动架构实践
为什么选择函数计算
函数计算作为现代云计算的核心服务,为企业提供了高效、灵活的解决方案。在构建事件驱动型应用时,函数计算能够轻松应对复杂的业务逻辑和不断变化的工作负载。它允许开发者专注于核心业务逻辑,而无需关心底层基础设施的管理和扩展。选择函数计算可以显著降低运维成本,实现按需付费,避免资源闲置。同时,它提供了出色的可扩展性,能够自动根据请求量调整资源,轻松应对流量峰值。函数计算还支持多种编程语言和丰富的触发器,便于与其他云服务集成,加速应用开发和部署。对于需要快速响应市场变化、优化资源利用的企业来说,函数计算是构建现代化、高效率应用的理想选择。

将文件处理任务与核心应用解耦,减少资源争用,增强安全性和提高可维护性。

按量付费模型按实际使用计算资源计费,资源利用率高。

预留实例系统不自动回收,可长驻不销毁,消除冷启动带来的延时毛刺。
| 在应用中处理文件 | VS | 使用函数计算处理文件 |
稳定性弱 计算资源消耗大,容易产生 CPU、内存和 IO 资源争抢和系统负载过高,影响系统稳定性。 | 稳定性 | 高可用保障 解耦核心业务和文件处理,文件处理函数由云厂商提供高可用保障。 |
扩展难度大 动态扩展难,处理峰值流量需要预先配置大量计算资源。 | 扩展性 | 弹性伸缩 自动弹性伸缩,应对各种突发流量,资源交付能力强。 |
成本高 为峰值预配置资源利用率不高,产生成本浪费。 | 成本 | 按量付费 只在需要处理文件时消耗计算资源,按使用付费,节省成本。 |
使用函数计算实现多媒体文件处理

本方案使用云服务器 ECS 和 RDS MySQL 版提供 WEB 服务,通过对象存储 OSS 存储用户文件。采用服务端签名的 WEB 直传方式,将文件上传直接发送到 OSS,减少对应用网络资源的占用。文件上传到 OSS 后,通过事件驱动机制触发函数计算执行文件处理任务(示例代码是将 PPT 转换为 PDF 并添加水印)。处理完成后,通过 OSS 事件触发的轻量消息队列(原 MNS )通知应用。
技术方案的广泛应用场景

图片处理
电商网站和社交媒体网站会涉及大量图片的处理,如提供适配不同的手机分辨率、生成缩略图和增加水印防盗用等。

视频处理
视频网站或涉及直播点播的网站会有大量视频文件的使用,为了保障视频播放效果需要进行转码、调整分辨率、生成首屏图片等。

广告 RTA
广告 RTA( Real-Time Advertising )通过实时处理和分析用户数据,在毫秒级别内完成广告竞价和展示。