云原生环境下,如何有效实现编译过程的加速?

2026-05-23 21:230阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2329个文字,预计阅读时间需要10分钟。

云原生环境下,如何有效实现编译过程的加速?

作者:东方零售、王雷、背景、云原生内容摘要:流线式功能是通过启动容器来执行整体功能的步骤,每次运行流线式流线都可能被调整到不同的计算节点。这可能导致一个问题:容器运行完成后,数据是否会保存?

作者:京东零售 王雷

背景

云原生下的流水线是通过启动容器来运行具体的功能步骤,每次运行流水线可能会被调度到不同的计算节点上。这会导致一个问题:容器运行完是不会保存数据的,每当流水线重新运行时,​​又会重新拉取代码、编译代码、下载依赖包​​等等。在云原生场景下,不存在​​本地宿主机编译代码、构建镜像时缓存的作用​​,大大延长了流水线运行时间,浪费很多不必要的时间、网络和计算成本。

在许多流水线场景中,同一条流水线的多次执行之间是有关联的。如果能够用到上一次的执行结果,则可以大幅缩短执行时间。为了提高用户使用流水线的体验,我们加入支持缓存的功能,挂接远程储存管理构建缓存,可以实现同一个项目的编译依赖复用,在同一条流水线的多次运行中,共享同一份缓存。

目标

通过实现云原生流水线的缓存技术,实现代码编译的缓存复用,平均加速流水线3~5倍;

云原生环境下,如何有效实现编译过程的加速?

实现方案

我们将需要进行缓存的文件,使用zstd的方式进行压缩,通过远程挂载cfs,将构建的缓存持久化到cfs上的指定位置。当下一次构建开始的时候,判断缓存是否被命中,如果命中缓存,我们从cfs上的指定位置pull对应的缓存压缩包,解压到相应目录下。

阅读全文

本文共计2329个文字,预计阅读时间需要10分钟。

云原生环境下,如何有效实现编译过程的加速?

作者:东方零售、王雷、背景、云原生内容摘要:流线式功能是通过启动容器来执行整体功能的步骤,每次运行流线式流线都可能被调整到不同的计算节点。这可能导致一个问题:容器运行完成后,数据是否会保存?

作者:京东零售 王雷

背景

云原生下的流水线是通过启动容器来运行具体的功能步骤,每次运行流水线可能会被调度到不同的计算节点上。这会导致一个问题:容器运行完是不会保存数据的,每当流水线重新运行时,​​又会重新拉取代码、编译代码、下载依赖包​​等等。在云原生场景下,不存在​​本地宿主机编译代码、构建镜像时缓存的作用​​,大大延长了流水线运行时间,浪费很多不必要的时间、网络和计算成本。

在许多流水线场景中,同一条流水线的多次执行之间是有关联的。如果能够用到上一次的执行结果,则可以大幅缩短执行时间。为了提高用户使用流水线的体验,我们加入支持缓存的功能,挂接远程储存管理构建缓存,可以实现同一个项目的编译依赖复用,在同一条流水线的多次运行中,共享同一份缓存。

目标

通过实现云原生流水线的缓存技术,实现代码编译的缓存复用,平均加速流水线3~5倍;

云原生环境下,如何有效实现编译过程的加速?

实现方案

我们将需要进行缓存的文件,使用zstd的方式进行压缩,通过远程挂载cfs,将构建的缓存持久化到cfs上的指定位置。当下一次构建开始的时候,判断缓存是否被命中,如果命中缓存,我们从cfs上的指定位置pull对应的缓存压缩包,解压到相应目录下。

阅读全文