开发函数计算的正确姿势——使用 brotli 压缩大文件

大文件问题

函数计算对上传的 zip 代码包尺寸限制为 50M。某些场景中代码包中会超过这一限制,比如二进制 serverless-chrome 经过一番裁剪以后 ZIP 压缩包的体积为 43.4M,类似的还有 liboffice ,此外常见的还有机器学习训练的模型文件。

目前解决大文件问题有三种方法

  1. 采用更高压缩比的算法,比如本文介绍的 brotli 算法
  2. 采用 OSS 运行时下载
  3. 采用 NAS 文件共享

简单的比较一下这三种方法的优劣

方法 优点 缺点
高密度压缩 发布简单,启动最快 上传代码包较慢;要写解压代码;大小受限制不超过 50 M
OSS 下载解压后文件不超过 512 M 需要预先上传至 OSS;要写下载和解压代码,大概 50M/s 的下载速度
NAS 文件大小没有限制,无需压缩 需要预先上传至 NAS;VPC 环境有冷启动时延(~5s)

正常情况下如果代码包能控制在 50M 以下启动较快。而且工程上也比较简单,数据和代码放在一起,不需要额外的写脚本去同步更新 OSS 或者 NAS。

压缩算法

Brotli 是 Google 工程师开发的开源压缩算法,目前已经被新版的主流浏览器支持,作为 HTTP 传输的压缩算法。下面是在网上找到的关于 Brotli 和其他常见压缩算法对比基准测试。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值