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

简介: 容器镜像因其颠覆式创新成为云原生时代应用部署格式的事实标准。头部云厂商 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://www.mzph.cn/news/514018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易点云在京发布璇玑调度系统 中小企业办公IT升级步伐加快

中小企业是中国经济的基本细胞。数据显示,中小企业数量占我国企业总数的90%以上,对全国GDP的贡献达65%、税收贡献超过50%、解决了75%以上的城镇就业。 这些规模庞大的中小微企业的IT基础设施水平远远低于大型企业,“得过且过”是中国中小企业…

MaxCompute作业日常监控与运维实践

简介: MaxCompute作业日常监控与运维实践 监控项目作业超时运行 案例一 专用于业务团队取数的project_A ,基本都是手动跑SQL查询,每个作业执行基本不会很长时间,由于目前使用的是包年包月计算资源,为了防止单个作业…

resttemplate post提交json_SEO工具脚本,Python百度普通收录API提交工具

百度收录问题一直是不少渣渣头痛的问题,而官方其实提供了普通收录和快速收录这样的接口,直接调用官方api接口,大力出奇迹,你需要相信,你尽管seo,有排名算我输,不收录,怎么会呢&#…

OpenKruise 如何实现 K8s 社区首个规模化镜像预热能力

简介: OpenKruise 是阿里云开源的云原生应用自动化管理套件,也是当前托管在 Cloud Native Computing Foundation (CNCF) 下的 Sandbox 项目。它来自阿里巴巴多年来容器化、云原生的技术沉淀,是阿里内部生产环境大规模应用的基于 Kubernetes 之…

云原生时代,底层性能如何调优?

作者 | 宋慧出品 | CSDN云计算(ID:CSDNcloud)现在,当企业提及数字化转型,上云用云的话题时,言必谈及云原生。在云原生吞噬一切的口号下,云原生被频繁、高热度的讨论之后,其真正的价值…

4米乘以12米CAD图_孙吴镀锌钢管大棚骨架图片4-12米可定尺

孙吴镀锌钢管大棚骨架图片4-12米可定尺泽沃温室大棚管厂家是集生产销售为一体,生产经销大棚管、大棚钢管、热镀锌大棚管、大棚镀锌管、热镀锌带管。温室大棚产品广泛用于温室工程建设、大棚蔬菜基地建设、水果、水稻育秧、药材、种植、畜牧养殖等温室大棚骨架等行业…

Raft成员变更的工程实践

简介: 成员变更是一致性系统实现绕不开的难题,对于提升运维能力以及服务可用性都有很大的帮助。 本文从Raft成员变更理论出发,介绍了Raft成员变更和单步成员变更的问题,其中包括Raft著名的Bug。 对于Raft成员变更的工程实现上需要…

No.1-Apache IoTDB 随笔 - Time Series DBMS 综述

简介: 这是一篇无法一口气读完的、文字过万[正文字数14390]的长文,这是一个无法中途不上厕所就看完的、关于时序数据库的视频[时长111分钟]分享的文字整理.. 大家好,很开心能够和大家一起交流时序数据库的相关的内容 首先还是简单自我介绍一…

overflowhidden把内容遮住了怎么办_图片有水印怎么办?不用PS,有这4招就够了

大家好,我是热衷解决问题的秋小叶!俗话说,文不如表,表不如图!图片是我们在做 PPT 时经常会使用到的高频元素。阿文老师曾经说过:但是,在没有接触到正确的搜图方法前,我们往往会在搜索…

谷歌云试图抢占SAP软件云市场;企业上云迎来“黄金时代”;IBM和SAP帮助金融机构加快采用云技术……...

NEWS本周新闻回顾调查表明80%的企业在云计算方面超支云计算优化服务商Virtana公司委托研究机构Arlington Research公司对350位云计算决策者进行的这项研究发现,82%的受访者表示其所在的公司在云计算方面的支出远远超过他们的需要。Market Research Future&#xff1…

Java设计模式-桥接模式

目录 一、手机操作问题 二、传统方法 三、基本介绍 四、原理类图 五、使用桥接模式解决手机问题 一、手机操作问题 现在对不同手机类型的不同品牌实现操作编程( 比如 : 开机、关机、上网,打电话等) , 如图: 二、传统方法 传统方案解决手机操作问题分…

Elasticsearch生态技术峰会 | Elasticsearch在清博大数据的应用与实践

简介: 开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范。值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elasticsearch生态与技术…

Elasticsearch生态技术峰会 | Elasticsearch在企查查的应用实践

简介: 开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范。值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elasticsearch生态与技术…

漫话:为什么计算机用补码存储数据?

作者 | 漫话编程来源 | 漫话编程我们知道,计算机只认识0和1,现实世界中的内容,无论是文字、音频、视频等等想要通过计算机存储、计算或者展示,都需要转换二进制。就像你刚刚唱的旋律,想要存储在计算机中也是要转成二进…

cad多个窗口并排显示_你早该这么做!并排查看Excel工作表其实一个小动作就搞定!...

特别福利:私信发送关键词【福利】,年度最全Office办公资源等你免费领哟~很多人都知道,有时在屏幕上并排查看起两个文件的内容,是一项非常顺畅和方便的操作——省去不少在不同窗口间来回切换的时间!当然,对于…

数据仓库如何实现湖仓一体数据分析?

简介: 随着云计算的普及和数据分析需求的扩大,数据湖数据仓库的湖仓一体分析能力成为下一代数据分析系统的核心能力。相对于数据仓库,数据湖在成本、灵活性、多源数据分析等多方面,都有着非常明显的优势。IDC发布的十项2021年中国…

Java应用全链路启动速度提升至15s,阿里云SAE能力再升级

简介: Java 作为一门面向对象编程语言,在性能方面的卓越表现独树一帜。但在高性能的背后,Java 的启动性能差也令人印象深刻,大家印象中的 Java 笨重、缓慢的印象也大多来源于此,高性能和快启动速度似乎有一些相悖。 近…

到底什么是“无源物联网”?

作者 | 小枣君来源 | 鲜枣课堂继Cat.1之后,2021年的物联网行业,又“喜提”了一个新的“风口”。这个“风口”的名字,叫做“无源物联网”。无源物联网,到底是个啥东东?它和现有的物联网技术之间,有什么区别&…

Gartner魔力象限到底有何“魔力”?

简介: Gartner魔力象限到底有何“魔力”?近日,Gartner发布了一系列最新魔力象限报告,在IT圈掀起了阵阵“龙卷风”,谁跻身全球第一阵营,谁跌出“领导者”象限,权威定调,众说纷纭&…

K8s 原生 Serverless 实践:ASK 与 Knative

简介: K8s 处在一个承上启下的位置,云原生用户使用 K8s 的目的是为了交付和管理应用,也包括灰度发布、扩容缩容等。但是对用户来说,实现这些能力,通过直接操作 K8s API 难免有些复杂。另外节省资源成本和弹性对于用户来…