游乐游手机版
首页/系统平台/文章详情

函数计算镜像加速方案:实现从分钟到秒级启动

时间:2026-08-21 17:33
作者信息:Shuai Chang,阿里云云原生 Serverless 团队高级技术专家,主导了函数计算同容器技术生态融合以及 FaaS 云原生可观测。体验文档:镜像拉取加速文档:https: help aliyun com document_detail 193075 htmlFaaS 和容器容器

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

体验文档:镜像拉取加速文档:https://help.aliyun.com/document_detail/193075.html

FaaS 和容器

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

函数计算镜像加速功能

在镜像拉取加速方面,传统做法强调“开发者负责”,比如精简镜像、合理划分镜像层、采用multi-stage构建方式、借助工具(像docker-slim)去除不必要的数据,以及遵循构建的最佳实践等。但这些工作不仅给用户增添了负担,加速效果也有限,而且还存在运行时稳定性的风险。阿里集团拥有超大规模且场景高度复杂的容器环境,在镜像存储和加速技术方面有着深厚的积累,在过去3年的双十一、双十二、春节等大促秒杀场景中,成功应对了极为严苛的挑战。阿里云Serverless与容器镜像、存储等服务深度合作,将内部创新成果应用于函数计算领域:在杭州、北京、上海、美东、美西正式推出了镜像加速功能。这一功能将原本由开发者承担的镜像优化工作转由函数计算负责,进一步帮助开发者提升生产效率,让他们能够更专注于业务创新。

加速效果

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

使用方式

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

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

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

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

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

功能特点

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

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

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

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

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

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

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

加速原理

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

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

按需加载

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

高效解压

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

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

附录:实验场景数据

参考
  • 函数计算支持容器镜像-加速应用 Serverless 进程
  • New for AWS Lambda – Container Image Support
  • 函数计算镜像拉取加速文档-Docker Slim: Minify and Secure Docker containers (free and open source!)
  • christopher-talke/node-express-puppeteer-pdf-example-awesome-fc/custom-container-docs
来源:https://apiv1.oschina.net/oschinapi/blog/detail?id=4959147
上一篇云原生场景下Fluid结合JindoFS实现阿里云OSS加速 下一篇Harbor在网易轻舟微服务平台中的应用实践与落地经验
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。