gitlab-ci 优化方案

本文介绍了如何通过优化gitlab-runner镜像来提升后端项目的构建速度。针对现有构建过程中下载依赖慢的问题,提出了三种优化思路,并详细阐述了使用shell执行ci脚本的方式,包括构建包含gitlab-runner、java、maven、gradle环境的镜像,以及实操步骤。优化后,构建时间从6分钟缩短到1分钟。
摘要由CSDN通过智能技术生成

后端项目构建速度优化思路、gitlab-runner镜像构建详解

背景:

当前公司后端项目自动构建(gitlab-ci)使用的运行器(gitlab-runner)是使用docker方式执行ci脚本,整个流程是代码合并触发自动构建,运行期执行gitlab-ci.yml文件中的脚本。首先拉下来指定的image,然后启动这个镜像实例在里面执行ci脚本。整体流程如下图1所示:

图1

这样做的弊端是每次触发ci都会使用一个新的docker容器,当maven构建jar包时因为本地没有依赖包每次都会去下载依赖,且当前runner所在环境上的maven没有配置镜像仓库,下载依赖速度很慢,这就导致构建的耗时久,进而拉低整个ci的效率。随着业务越来越多,打包速度也会越来越慢,因此需要优化下构建流程。

优化思路

解决此问题目前有三个思路

第一个思路是在原来gitlab-ci.tml文件里使用cache关键字加上缓存,缓存路径为容器里依赖存储的目录,缓存key为项目id+分支名,这样每次在容器内打包时就会使用上次构建使用的jar包,可以大幅加快构建速度,但流程上还是比较复杂。

第二个思路是继续使用docker方式执行ci脚本,但是在拉取的指定的image上下载好大部分的依赖,这样可以省去占比较大的下载依赖所消耗的时间。但此方法maven的打包耗时会与此镜像内依赖包的全面程度挂钩。

第三个思路是使用shell方式执行ci脚本。首先在基础镜像基础上构建一个有gitlab-runner、maven、gradle、java

`registry.gitlab.cn/omnibus/gitlab-jh` 和 `gitlab/gitlab-ce` 这两个仓库分别代表了 GitLab 的两个版本:基础版 (`GitLab CE`) 和企业版 (`GitLab EE`)。 ### 区别: #### 技术栈与支持特性 **GitLab CE (Community Edition)**: - **技术栈**:基于 Ruby on Rails 架构构建,提供开源版本的所有核心功能,如代码托管、项目管理、CI/CD 等,适合个人开发者和小型团队使用。 - **社区活跃度高**:拥有广泛的社区支持,有大量的插件可以用于定制化服务,满足特定需求。 - **安全性与稳定性**:尽管开源,但在安全更新方面可能不如企业版迅速。 - **成本效益**:完全免费,无需支付任何许可费用。 **GitLab EE (Enterprise Edition)**: - **技术栈**:同样基于 Ruby on Rails,但也包含了额外的企业级功能和服务,如更高级的安全策略、性能优化、专业技术支持等。 - **高级功能**:包括但不限于更好的性能监控、数据迁移工具、增强的权限管理和审计日志、更多的 API 扩展点等。 - **部署灵活性**:除了传统的自托管模式外,还支持云原生部署(如 Kubernetes),提供高度可扩展性和可用性的解决方案。 - **商业支持**:提供专业的客户支持、更新优先以及企业级的服务保证。 ### 相关问题 - 了解更多信息: 1. **GitLab CE vs GitLab EE: 应该选择哪一个?** - 此问题探讨了根据组织规模、预算和技术需求,在两者之间做出决策的过程。 2. **如何从 GitLab CE 升级到 GitLab EE?** - 解释了从开源版本过渡到企业版本的具体步骤和注意事项。 3. **GitLab EE 中有哪些是 CE 版本所不具备的独特优势?** - 分析了企业版提供的额外功能及其对大型企业或机构的价值所在。 通过理解这两个版本之间的差异,用户可以根据自身的需求和资源选择最适合其业务发展的GitLab版本。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值