媒之族

 找回密码
 立即注册
查看: 594|回复: 0

技巧篇|如何利用极狐GitLab CI提高生产力?

[复制链接]

1680

主题

1680

帖子

240

积分

初级媒体人

Rank: 2

积分
240
发表于 2021-7-19 18:12 | 显示全部楼层 |阅读模式
技巧篇|如何利用极狐GitLab CI提高生产力?

在当前DevOps的趋势下,持续集成(CI)和持续部署(CD)具有支柱性地位,为了在开发团队和运营团队之间搭建桥梁,CI/CD流水线实现了应用程序的自动构建、自动测试和自动部署。如何更好地使用极狐GitLab CI中的流水线功能?下文将给大家介绍一些使用技巧,帮助你利用极狐GitLab CI提高生产力。

在讲述使用技巧之前,我们首先来了解下CI/CD流水线的优势。总的来说,CI/CD流水线可以帮助消除代码错误带来的影响,从而使错误更容易被修复,这是一款能保障运行任务可见性且大大提高生产效率的工具。由于CI/CD流水线的主要目的是加快开发进程,从而更快地为终端用户提供价值,所以整个过程始终有提高效率的空间。

接下来,极狐GitLab CI使用技巧请拿走~

有向无环图 (DAG) 如何实现并发流水线



在基本流水线结构中,同一个阶段的所有作业将同时运行,而后续作业必须等待前序作业完成后才能开始。所有阶段的作业都遵循这样的顺序。也就是说,上图中第二阶段Test的第一个作业需要等到第一阶段BUILD的三个作业全部完成才能开始,这大大减慢了整个流水线的速度。

但是在极狐GitLab平台,通过使用关键词needs:,您可以为作业定义直接依赖关系,后续作业(如Test 作业2)只需等待相关联的作业(Build作业3)完成即可开始。通过使用 DAG 策略,您可以从某个项目的流程中节省几分钟,从而提高流水线执行速度并降低 CI 分钟消耗。通过使用 needs: []您可以让任何阶段的工作无需等其他工作完成就能立即运行。

为什么并行作业会提高生产力?

并非流水线中的所有作业都需要运行相同的时间,有些项目可能只需要几秒钟,有些则需要更长的时间才能完成。当一个团队有很多成员需要等待前序作业完成后才能继续进行项目时,整个团队的生产效率就会大幅降低。

为此,极狐GitLab 提供了一种方法来克隆作业,并使用关键词parallel: 使其并行运行从而加快执行速度。并行作业可能无法减少 CI 每分钟的消耗,但一定能帮助提高工作效率。

使用并行矩阵作业分解大型流水线

在发布并行矩阵作业之前,为了运行多个包含不同变量的作业实例,必须在 .gitlab-ci-yml 中手动定义作业,如下所示:



极狐GitLab 13.3 版本发布了并行矩阵作业,可以让你根据指定的变量在运行时创建作业。假设需要同时运行多个实例,每个实例具有不同的变量值,那么结合 parallel: 和matrix:就可以做到这一点。通过使用 parallel:和 matrix:,就可以将大型流水线分解为可管理的单元以进行高效维护。

通过父/子流水线降低合并冲突风险



为了更好地管理依赖项,许多组织更喜欢为项目设置单一存储库。但是单一储存库也有不完善之处。如果用存储库托管大量项目,使用单个流水线定义来触发不同组件的不同自动化流程,流水线性能就会受到负面影响。通过使用基于父子项目的流水线,你可以拥有多个并行运行的子流水线,从而能设计更高效的流水线。使用关键字 include: 从而在包含外部 YAML文件的CI/CD 配置中就可以达到这个目的。在上图中,父流水线通过关键字 trigger:include生成子流水线。这种方法只允许在必要时编辑流水线的一部分,进而减少了发生合并冲突的机会。

合并列车让目标分支更加稳定

当有大量合并请求流入项目时,存在合并冲突的风险。合并列车是极狐GitLab 的一个强大功能,允许用户在不破坏目标分支的情况下自动合并一系列已在排队的合并请求。使用此功能时你可以在列车添加一个 MR,列车将会进行接管,直到MR被合并。

在同一个作业中使用多个缓存

从极狐13.11 版本开始,极狐GitLab CI/CD 提供在单个作业中配置多个缓存键的功能,从而提高流水线性能,并帮助你在作业运行时节省宝贵的开发时间。

高效的流水线如何为你降低成本?

通过使用 CI/CD 策略确保安全合并更改和绿色主机,企业就无需太担心由于基础设施故障和代码冲突导致的意外停机。

有了更高效的流水线,开发人员能够减少花在维护上的时间,将更多的时间和空间集中在创造富有想法和创新力的工作上,从而提升代码质量改善公司氛围并提升整体士气。

好了,以上就是极狐GitLab CI的几个使用技巧,希望能给到你帮助~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|联系我们|免责声明|媒之族

GMT+8, 2021-7-29 13:03

Powered by Discuz! X3.3

Copyright © 2001-2021, Tencent Cloud.

返回顶部 返回列表