启动延时缩短 50%-80%,函数计算发布镜像加速功能
Posted 阿里巴巴云原生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启动延时缩短 50%-80%,函数计算发布镜像加速功能相关的知识,希望对你有一定的参考价值。
体验文档:
FaaS 和容器
函数计算镜像加速功能
1. 加速效果
2. 使用方式
镜像加速可以通过控制台、CLI 工具或是 FC SDK 开启,详细步骤参考。
方式一:在函数计算控制台函数配置下选择“开启镜像加速”。
方式二:使用 Funcraft 工具部署。
CustomContainerConfig:
Image: registry-vpc.cn-beijing.aliyuncs.com/fc-demo/python-flask:v0.1
AccelerationType: Default
3. 功能特点
-
使用简单:只需在函数上开启镜像加速,函数计算会自动制作加速镜像和缓存,转换完成后(5分钟以内),函数自动采用加速镜像缓存。
-
专注业务创新:开发者无需花费时间刻意精简优化镜像大小或严格区分 Serverless 和 Serverfull 应用镜像的构建方式,FC 负责按照应用实际使用数据拉取和解压。
-
加速免费,使用门槛低:镜像加速开启不产生额外费用,也不需要开发者额外购买或升级任何其他服务。事实上由于镜像拉取时间变短,相应的请求费用也随之降低。
-
极速弹性、缩容到 0、事件触发:FaaS 结合容器镜像已经极大简化了应用迁移至 Serverless,加速功能进一步解锁了实时、准实时工作负载,曾经需要分钟级别的容器启动现在可以几秒内快速启动,真正实现缩容到 0。
镜像拉取为什么慢?
-
将各个 layer 对应的 tar.gz 文件完整下载至本地。 -
每层顺序解压。 -
将各个层合并(如 Overlay)作为 rootfs 启动容器。
-
文件格式缺陷、粗粒度数据分层、顺序解压: gzip 层导致无法细粒度随机读取应用实际需要的数据,且要求所有层单线程顺序解压。 实际观察发现镜像层可以通过并发下载提高速度,然而解压环节在 gzip 格式下却很 难优化。
-
低效的 压缩/解压缩算法: 镜像层采用的 gzip,benchmark gzip 解压速度对比 lz4 平均慢接近 9 倍。
-
全量数 据 下载: 同样由于粗粒度的分层和 gzip 格式(不支持 seek),镜像数据不论是否实际有用,都要被完整下载至本地。
加速原理
按需加载:仅读取应用真实需要的数据,极大减少数据传输量。
更高效的存储和算法:相同大小的数据,更快地解压。
1. 按需加载
2. 高效解压
未来规划
附录:实验场景数据
Benchmark | 场景 |
镜像压缩大小 |
解压后大小 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
参考
作者简介
以上是关于启动延时缩短 50%-80%,函数计算发布镜像加速功能的主要内容,如果未能解决你的问题,请参考以下文章
Docker -- CentOS7安装Docker(含安装启动(关闭防火墙)配置Docker镜像加速)