全部产品
云市场

使用 Serverless 架构实现网站文件处理最佳实践

更新时间:2020-01-12 20:05:02

本文是 Serverless 实现网站文件处理最佳实践,介绍如何通过函数计算实现网站文件管理的各种功能。

场景描述

某图片网站数据管理的场景,主要给客户供图片标注服务,有以下几个需求:

  • 上传文件自动更新压缩包
    • 客户特定图片更新上传文件到OSS的某个目录后,自动压缩目录下的指定的文件,压缩后以压缩包的形式来分发给不同的工作组来进行处理,工作组下载后,需要获取压缩包的MD5值,以验证下载的文件是一致的。
  • 上传压缩包自动解压
    • 某些对外公开展示的图片处理后,以压缩包形式上传到OSS后,需要自动解压缩,以图片的格式供前端页面调用,并需要图片的meta信息(需求不确定,用FC来迅速满足要求)
  • 自动爬取图片
    • 某些细分图片组里,需要从网站爬取一些素材图片,补充到素材库里
  • 自动打包文件夹
    • 某些图片组,有大量类别,每个类下有很多图片,并且会不定时更新,这部分在分发时,需要当客户下载时,自动打包,并以压缩包的形式来分发
  • 对网页截图并存档,统一图片分辨率并加水印
    • 对网页定期截图并存档
    • 统一图片分辨率,并加水印

架构简介

文件处理架构

  • 用户执行一定的动作,会触发对应的OSS/HTTP的触发器
  • 函数计算发现触发器已经被触发,结合传入的参数,执行对应的函数,从而执行了对应的动作
  • 这个过程中,所有日志都会写入到LOG服务的对应的项目中,方便调试和查询

方案优势

  • 对事件和请求能实时动态伸缩,达到智能资源调度
  • 毫秒级别的计量数据,按用户使用资源付费
  • 虚拟机级别隔离运行,保证用户信息安全
  • 使用阿里云动态负载均衡

方案详情: Serverless 实现网站文件处理最佳实践