手机网站设计趋势,海口网站建设哪个好薇,怎样说服老板做网站,wordpress集成文库插件简介#xff1a; 函数计算 FC 正式发布容器镜像加速#xff0c;通过按需读取和更高效的解压技术在不同场景下加速 50%-80%#xff0c;即使 GB 级别的镜像也可以在几秒内完成端到端启动。 FaaS 和容器
容器镜像因其颠覆式创新成为云原生时代应用部署格式的事实标准。头部云厂… 简介 函数计算 FC 正式发布容器镜像加速通过按需读取和更高效的解压技术在不同场景下加速 50%-80%即使 GB 级别的镜像也可以在几秒内完成端到端启动。 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.1AccelerationType: Default
功能特点
FC 镜像加速具备以下特点
使用简单只需在函数上开启镜像加速函数计算会自动制作加速镜像和缓存转换完成后5分钟以内函数自动采用加速镜像缓存。专注业务创新开发者无需花费时间刻意精简优化镜像大小或严格区分 Serverless 和 Serverfull 应用镜像的构建方式FC 负责按照应用实际使用数据拉取和解压。加速免费使用门槛低镜像加速开启不产生额外费用也不需要开发者额外购买或升级任何其他服务。事实上由于镜像拉取时间变短相应的请求费用也随之降低。极速弹性、缩容到 0、事件触发FaaS 结合容器镜像已经极大简化了应用迁移至 Serverless加速功能进一步解锁了实时、准实时工作负载曾经需要分钟级别的容器启动现在可以几秒内快速启动真正实现缩容到0。
镜像拉取为什么慢
一个 OCI V1 容器镜像包含多个层layer每层都是一个压缩打包的文件系统文件夹通常以 tar.gz 格式存储在远端服务如对象、文件存储。拉取镜像时步骤如下
将各个 layer 对应的 tar.gz 文件完整下载至本地每层顺序解压将各个层合并如 Overlay作为 rootfs 启动容器
上述步骤虽然简单却是镜像拉取慢的主要原因 • 文件格式缺陷、粗粒度数据分层、顺序解压gzip 层导致无法细粒度随机读取应用实际需要的数据且要求所有层单线程顺序解压。实际观察发现镜像层可以通过并发下载提高速度然而解压环节在 gzip 格式下却很难优化。 • 低效的压缩/解压缩算法镜像层采用的 gzipbenchmark gzip 解压速度对比 lz4 平均慢接近9倍。 • 全量数据下载同样由于粗粒度的分层和 gzip 格式不支持 seek镜像数据不论是否实际有用都要被完整下载至本地。 综上原理镜像拉取时间和镜像大小成正比而容器镜像构建过程中运行 apt/yum install, 无用的测试、数据文件构建过程中执行 chmod/chown 等命令造成同一数据复制多份极易引入大量应用不需要的数据。
加速原理
函数计算将阿里集团成熟的镜像加速技术应用在公共云服务中加速技术围绕两个核心思路 • 按需加载仅读取应用真实需要的数据极大减少数据传输量 • 更高效的存储和算法相同大小的数据更快地解压
按需加载
Benchmark 中包含镜像数据加载率在 12% - 84% 之间除了镜像较小的 web 应用大部分场景数据利用率低于 50%。以层layer作为数据分发单位的原始镜像被转换成支持细粒度按需读取的数据格式并存放在延迟和吞吐都更优的存储中。
高效解压
除了按需加载带来的下载步骤延时节省镜像加速技术在数据解压步骤也同样做了大量优化。下图可以看出即使在加载 70% 以上全量数据的情况下优化效果仍然超过 60%。
未来规划
函数计算正式发布了容器镜像加速通过按需读取和更高效的解压技术在不同场景下加速 50%-80%即使 GB 级别的镜像也可以在几秒内完成端到端启动。加速功能结合函数计算极致弹性和事件触发的特点解锁了更多对实时要求高的工作负载。容器应用可以更容易地享受 Serverless 特性真正做到缩容到0以及快速大规模扩容。FC 在未来会持续优化冷启动各个环节提供极致弹性承担更多用户责任使开发者专注业务创新。
附录实验场景数据
Benchmark场景镜像压缩大小解压后大小python-flaskWeb 应用46MB118MBecommerce-nodejs电商, nodejs express130MB371MBml-small-import/ml-large-import机器学习使用 numpy, pandas, pystan 等库728MB2.392GBai-cat-or-dog机器学习人工智能推理预测 tensorflow, keras 等库790MB1.824GBpuppeteer-pdfHeadless chrome网页转 PDF, 使用 puppeteer, nodejs express332MB894MBcypress-chrome前端 UI 自动化cypress, headless chrome作者Shuai Chang阿里云云原生 Serverless 团队高级技术专家主导了函数计算同容器技术生态融合以及 FaaS 云原生可观测。
原文链接
本文为阿里云原创内容未经允许不得转载