启动延时缩短 50%-80%,函数计算发布镜像加速功能

article/2025/11/10 6:31:15

简介: 容器镜像因其颠覆式创新成为云原生时代应用部署格式的事实标准。头部云厂商 FaaS (Function-as-a-Service) 服务如阿里云函数计算、AWS Lambda 也相继在 2020 年支持使用容器镜像部署函数,全面拥抱容器生态。

头图.png

作者 | Shuai Chang  阿里云云原生 Serverless 团队高级技术专家
来源 | 阿里巴巴云原生公众号

体验文档:镜像拉取加速文档

FaaS 和容器

容器镜像因其颠覆式创新成为云原生时代应用部署格式的事实标准。头部云厂商 FaaS (Function-as-a-Service) 服务如阿里云函数计算、AWS Lambda 也相继在 2020 年支持使用容器镜像部署函数,全面拥抱容器生态。自发布以来,开发者陆续将机器学习、音视频处理、事件驱动离线数据处理、前端自动化等多个场景使用镜像快速无服务器化,提高效率、降低成本。然而,冷启动一直是 Serverless 无法绕开的问题。容器镜像需要将数据通过网络远程下载并解压,对于 GB 级别的镜像,拉取时间可能高达分钟级别,客观上放大了冷启动副作用,阻碍实时应用的 Serverless 演进。

函数计算镜像加速功能

传统的镜像拉取加速强调"开发者负责",如精简镜像,合理分配镜像层,multi-stage 构建,使用工具(如 docker-slim)去除不需要的数据,遵循构建最佳实践等。这些工作不仅加重了用户负担,加速效果有限,且有运行时稳定性风险。阿里集团超大规模和场景高度复杂的容器环境,对镜像存储、加速技术有深厚的积累,出色地承担了 3 年双十一、双十二、春节等大促秒杀场景的严苛的挑战。阿里云 Serverless 同容器镜像、存储等服务深度合作,将内部创新在函数计算输出:杭州、北京、上海、美东、美西正式发布了镜像加速功能。该功能将原本属于开发者的镜像优化负担转由函数计算承担,进一步帮助开发者提高生产效率,专注业务创新。

1. 加速效果

我们在选择了内部生产环境和开源社区的工作负载,覆盖机器学习、人工智能、前端自动化、Web 应用等 7 种镜像大小、IO 访问模式、启动命令的不同组合作为 benchmark,部署在 FC 北京区域。如下图所示,函数计算开启镜像加速功能后加速普遍超过 50%,对于机器学习场景中常见的臃肿镜像(如多个团队共享基础镜像, ml-small-import, ml-large-import, ai-cat-or-dog)加速效果更为明显(约 70%-86%),镜像越大优化空间往往越高。

1.png

2.png

2. 使用方式

镜像加速可以通过控制台、CLI 工具或是 FC SDK 开启,详细步骤参考镜像拉取加速文档。

  • 方式一:在函数计算控制台函数配置下选择“开启镜像加速”。 

3.png

  • 方式二:使用 Funcraft 工具部署

在已有的 CustomContainerConfig 配置下添加 AccelerationType: Default 如需关闭则配置 AccelerationType:

        CustomContainerConfig:Image: registry-vpc.cn-beijing.aliyuncs.com/fc-demo/python-flask:v0.1AccelerationType: Default

3. 功能特点

FC 镜像加速具备以下特点:

  • 使用简单:只需在函数上开启镜像加速,函数计算会自动制作加速镜像和缓存,转换完成后(5分钟以内),函数自动采用加速镜像缓存。
  • 专注业务创新:开发者无需花费时间刻意精简优化镜像大小或严格区分 Serverless 和 Serverfull 应用镜像的构建方式,FC 负责按照应用实际使用数据拉取和解压。
  • 加速免费,使用门槛低:镜像加速开启不产生额外费用,也不需要开发者额外购买或升级任何其他服务。事实上由于镜像拉取时间变短,相应的请求费用也随之降低。
  • 极速弹性、缩容到 0、事件触发:FaaS 结合容器镜像已经极大简化了应用迁移至 Serverless,加速功能进一步解锁了实时、准实时工作负载,曾经需要分钟级别的容器启动现在可以几秒内快速启动,真正实现缩容到 0。

镜像拉取为什么慢?

一个 OCI V1 容器镜像包含多个层(layer),每层都是一个压缩打包的文件系统(文件夹),通常以 tar.gz 格式存储在远端服务(如对象、文件存储)。拉取镜像时步骤如下:

  • 将各个 layer 对应的 tar.gz 文件完整下载至本地。
  • 每层顺序解压。
  • 将各个层合并(如 Overlay)作为 rootfs 启动容器。

上述步骤虽然简单,却是镜像拉取慢的主要原因:

  • 文件格式缺陷、粗粒度数据分层、顺序解压:gzip 层导致无法细粒度随机读取应用实际需要的数据,且要求所有层单线程顺序解压。实际观察发现镜像层可以通过并发下载提高速度,然而解压环节在 gzip 格式下却很难优化。
  • 低效的压缩/解压缩算法:镜像层采用的 gzip,benchmark gzip 解压速度对比 lz4 平均慢接近 9 倍。
  • 全量数据下载:同样由于粗粒度的分层和 gzip 格式(不支持 seek),镜像数据不论是否实际有用,都要被完整下载至本地。

综上原理,镜像拉取时间和镜像大小成正比,而容器镜像构建过程中运行 apt/yum install, 无用的测试、数据文件,构建过程中执行 chmod/chown 等命令造成同一数据复制多份,极易引入大量应用不需要的数据。

加速原理

函数计算将阿里集团成熟的镜像加速技术应用在公共云服务中,加速技术围绕两个核心思路:

  • 按需加载:仅读取应用真实需要的数据,极大减少数据传输量。
  • 更高效的存储和算法:相同大小的数据,更快地解压。

1. 按需加载

Benchmark 中包含镜像数据加载率在 12% - 84% 之间,除了镜像较小的 web 应用,大部分场景数据利用率低于 50%。以层(layer)作为数据分发单位的原始镜像被转换成支持细粒度按需读取的数据格式,并存放在延迟和吞吐都更优的存储中。

4.png

2. 高效解压

除了按需加载带来的下载步骤延时节省,镜像加速技术在数据解压步骤也同样做了大量优化。下图可以看出即使在加载 70% 以上全量数据的情况下,优化效果仍然超过 60%。

5.png

未来规划

函数计算正式发布了容器镜像加速,通过按需读取和更高效的解压技术在不同场景下加速 50%-80%,即使 GB 级别的镜像也可以在几秒内完成端到端启动。加速功能结合函数计算极致弹性和事件触发的特点,解锁了更多对实时要求高的工作负载。容器应用可以更容易地享受 Serverless 特性,真正做到缩容到 0 以及快速大规模扩容。FC 在未来会持续优化冷启动各个环节提供极致弹性,承担更多用户责任,使开发者专注业务创新。

附录:实验场景数据

6.jpg

作者简介

Shuai Chang,阿里云云原生 Serverless 团队高级技术专家,主导了函数计算同容器技术生态融合以及 FaaS 云原生可观测。

原文链接

本文为阿里云原创内容,未经允许不得转载。


http://chatgpt.dhexx.cn/article/DEMhEtiD.shtml

相关文章

python-使用递归函数计算阶乘

不用多说,看完代码绝对明了,只是要提一句,递归函数会创造大量的函数对象,过量的消耗内存和运算能力。而我们也会用递归实现分析几何,画出漂亮的图案。 实现阶乘的大概思路: 引用一下老师课程中的图案 当n5…

阿里云函数计算(一)

最近接触到了阿里云的函数计算的服务,经过几天的尝试还是有所收获,因此不妨把学习过程中的点滴记录下来,方便以后温习。 什么是函数计算 根据阿里云的中的相关介绍,可以知道函数计算是事件驱动的全托管计算服务。用户无需管理服…

yolov5目标检测神经网络——损失函数计算原理

前面已经写了4篇关于yolov5的文章,链接如下: 1、基于libtorch的yolov5目标检测网络实现——COCO数据集json标签文件解析 2、基于libtorch的yolov5目标检测网络实现(2)——网络结构实现 3、基于libtorch的yolov5目标检测网络实现(3)——Kmeans聚类获取anc…

计算机上怎么用函数算比例,如何使用Excel函数计算所占的比例

通过Excel的函数的使用,我们可以轻松计算出某种产品在同类或总产品中所占的比例。 下面是一个实例,希望对您有帮助。 如上图,我们所要计算的是,男女款的服装,各占同类款式的比例分别为多少。 比如,A2单元格…

python中三角函数计算

1、采用math库计算 #!/usr/bin/python import mathprint "cos(3) : ", math.cos(3) print "cos(-3) : ", math.cos(-3) print "cos(0) : ", math.cos(0) print "cos(math.pi) : ", math.cos(math.pi) print "cos(2*math.pi) : &…

计算机及格人数函数公式大全,excel函数计算及格人数和合格人数

下面小编为大家介绍如何利用excel函数计算及格人数和合格人数方法,有需要的朋友快快来学习吧! 步骤 用countif函数计算单科及格人数。如图,分别在单元格内输人函数,计算出语文及格人数和数学及格人数。 合格人数要求计算出语文和数…

年龄的计算方式计算机函数,excel使用时间函数计算年龄 使用Excel函数计算年龄的三种方法...

excel使用时间函数计算年龄 使用Excel函数计算年龄的三种方法,听说excel的教程在抖音很火,很多白领小朋友都在争相学习,下面就跟小编一起学习一下excel使用时间函数计算年龄的新技能吧,看完excel使用时间函数计算年龄 使用Excel函数计算年龄的三种方法会帮助你完成很多复杂…

python 三角函数 计算

今天做结构的时候突然要算一下角度,就想用python简单计算一下,结果发现,中学学的三角函数内容全喂狗了。 python中三角函数计算当然就是直接进math库,这没啥说的,导入这个库就行。但是下边计算的时候度这个东西就难搞…

计算机total函数,Excel中怎样用subtotal函数计算总值

Excel计算各种总计值的SUBTOTAL函数是如何使用的呢?具体该怎么去进行操作?对于不常用函数的朋友或许有点难度,今天,学习啦小编就教大家在Excel中subtotal函数计算各种总计值的操作方法,欢迎大家来到学习啦学习。 Excel中subtotal函数计算各…

一文搞懂函数计算及其工作原理

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 什么是函数计算? 大家都了解,Serverless 并不是没有服务器,而是开发者不再需要关心服务器…

函数计算简介

什么是函数计算 大家都了解,Serverless 并不是没有服务器,而是开发者不再需要关心服务器。下图是一个应用从开发到上线的对比图: 在传统 Serverful 架构下,部署一个应用需要购买服务器,部署操作系统,搭建开…

Excel常用函数公式20例

目录 一、【IF函数条件判断】 二、【多条件判断】 三、【条件求和】 四、【多条件求和】 五、【条件计数】 六、【多条件计数】 七、【条件查找】 八、【多条件查找】 九、【计算文本算式】 十、【合并多个单元格内容】 十一、【合并带格式的单元格内容】 十二、…

excel函数公式大全,最常用的6个公式

Excel中的函数引用一些预定义的公式,可以通过输入参数值来计算函数的对应函数,并且函数名称基本上与函数相对应,这很容易记住。在日常工作中,功能可用于数据统计、计算、处理和分析。本文主要介绍EXCEL中一些常用公式,…

前端入门(雷云特效,css)

(推荐个别人写的css特效网站CSS3的奇思妙想,感觉有好多蛮好玩的功能,这个特效是在里面偏下面一点的位置) (最好还是看一下动画的演示效果,直接复制粘贴就行了) 实现原理其实很简单,…

那些让人惊叹的前端特效

大鲨鱼 3D隧道 3D液体 更多特效请看在线效果 在线演示地址 http://gnipbao.github.io/css3-test/menu.html

前端特效——简单下雪(纯css)

原理&#xff1a; 雪花背景平铺&#xff0c;背景图片位置向右下移动的动画 缺点&#xff1a;不会永远都向下移动&#xff0c;动画时间结束会闪回去首帧 实现&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&q…

【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个响应式网站登陆页面|使用全屏可拖动图像滑块~手把手一步一步教学 ~快来收藏吧!

b站视频演示效果: 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个响应式网站登陆页面|使用全屏可拖动图像滑块~手把手一步一步教学 ~快来收藏吧! 效果图: 用到的图片在后面: 完整代码: <!DOCTYPE html> <html lang="en" dir="ltr"…

前端特效-HTML+CSS - 图片悬浮效果

实现的效果 html部分 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible…

前端特效——时钟

方法一&#xff1a;htmljs <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>钟表</title> </head> <body> <style type"text/css">.time{width:200px;height:50px;background:#030303;c…

前端特效——复杂下雪,雪花纷飞(纯css)

效果&#xff1a; 原理&#xff1a; 因为是用的纯css&#xff0c;所以为了实现很多个雪花&#xff0c;我们就需要创建200个div&#xff08; 数量适量多即可&#xff09; 然后先设置雪花div的共同属性&#xff1a;雪花的背景图片是雪花&#xff0c;给初始大小width: 10px;heig…