写点什么

CyberData 镜像增量构建实践

  • 2024-02-22
    浙江
  • 本文字数:1502 字

    阅读完需:约 5 分钟

CyberData镜像增量构建实践

一、什么是镜像增量构建

镜像增量构建是一种优化构建过程的方法,通过利用缓存,只构建发生变化的部分,从而加快构建速度并减少资源消耗。在增量构建中,当代码或配置发生变化时,系统会智能地识别出需要重新构建的部分,而不是重新构建整个镜像。这种方式可以节省时间和计算资源,提高构建效率。增量构建技术对于持续集成和持续部署流程非常重要,能够帮助开发团队更快地获取更新后的镜像,加速应用程序的部署。


二、构建的原理

增量构建的工作原理是通过比较当前代码版本和之前构建时的状态,识别出发生变化的部分,然后只重新构建这些受影响的部分,而不是整个镜像。这样可以利用之前构建时生成的缓存信息,避免重复构建未发生变化的部分,从而提高构建效率。

• 具体来说,增量构建工作原理包括以下几个步骤:

1.比对变更:系统会检测当前代码版本与之前构建时的状态之间的差异,确定哪些部分发生了变化。

2.标记受影响部分:识别出需要重新构建的镜像层或组件,并标记这些受影响的部分。

3.重新构建:仅对标记为受影响的部分进行重新构建,利用之前构建时生成的缓存信息来加速构建过程。

4.更新镜像:将重新构建的部分与之前的镜像组合,生成更新后的镜像。

通过这种方式,增量构建避免了不必要的重复构建,节省了时间和资源,并加快了镜像更新的速度。这种方法在持续集成和持续部署过程中发挥着重要作用,帮助开发团队更高效地进行软件开发和部署。


三、增量构建的优势

增量构建和全量构建是两种不同的构建方式,它们在构建过程中的效率和资源利用方面有所不同。

增量构建:

• 工作原理:只重新构建发生变化的部分,利用缓存避免重复构建未发生变化的部分。

• 优势:构建速度更快:只需处理变更部分,节省了重新构建整个镜像的时间。资源消耗更少:避免了不必要的计算资源浪费。适用于持续集成环境:能够快速获取更新后的镜像,加速部署过程。

全量构建:

• 工作原理:每次都重新构建整个镜像。

• 优势:确保镜像完全一致:每次都从头开始构建,避免了可能存在的缓存一致性问题。更适用于特定场景:某些情况下需要确保每次构建都是全新的,全量构建更适合这种需求。


四、应用场景举例

1.CyberData(以下简称 CD)实际开发中,常见的几种增量构建情况归类如下:

• hotfix 补丁更新

主要用于开发同学针对某个 CD 版本修复一些 bug 后,需要快速更新一个补丁,走正常全量出包的方式,打包时间相对较长,还有就是全量包的体积较大,一般好几个 G,传输也相对较费时,这个时候可以考虑走增量打包的方式,提升开发部署效率;

• 调试工具临时安装

CD 部署安装过程中,因网络环境等问题,需要在镜像中提供一些工具软件(如:curl 之类)协助部署人员快速定位问题,可以基于 CD 镜像增量的方式快速生成带调式工具的镜像,待问题解决后考虑再用之前的正常镜像拉起服务;

• 定制驱动包替换

CD 部署在 POC 现场后,为了快速适配现场的数据源组件,有时候需要替换原来服务镜像里的底层驱动包,这种情况也可以考虑增量构建的方式快速生成替换过驱动的镜像,用于 POC 时的快速适配验证;


2.CD 增量构建简单示例

• 新建并进入构建目录,同时拷贝需要替换的 jar 文件(或者是驱动包文件:mysql-plugin.jar)到此目录下

• 查看镜像找到要修改的镜像名,以 core 为例

• 修改 Dockerfile:以旧镜像为母包,COPY 要替换的文件进来

• 构建镜像

• 查看并使用新的镜像


五、结语

增量构建更适合频繁变更的场景,能够提高构建效率和加快部署速度。

全量构建保证了镜像的一致性,适用于需要每次都从头开始构建的场景。

在 CD 实际应用中,我们可以灵活的根据项目需求和实际的环境选择合适的构建方式。增量构建适用于快速迭代和持续集成的场景,而全量构建适用于需要确保镜像完全一致性的场景。

用户头像

云数据智能操作系统领军者 2022-12-05 加入

浙江数新网络有限公司是一家拥抱开源,专注于云数据平台的大数据服务商,致力于结合全球云数仓先进理念,打造适合中国落地路径的云数仓体系。

评论

发布
暂无评论
CyberData镜像增量构建实践_镜像增量_数新网络官方账号_InfoQ写作社区