GitOps 是 WeaveWorks 于 2017 年提出的概念,其核心思想是将应用程序的服务配置、数据库、编排配置等以代码的形式组织在 Git 仓库中,来组织整个部署过程,实现应用程序的版本化、自动化和标准化。

GitOps 的两种模式

GitOps 的部署策略有两种实现方式:基于 Push 的方式和基于 Pull 的方式。两者的主要区别如下[1]

基于 Push 的方式

zadig的具体使用场景(Zadig如何支持GitOps)(1)

基于 Pull 的方式

zadig的具体使用场景(Zadig如何支持GitOps)(2)

Zadig 关于 GitOps 的思考

Zadig 作为一款开源持续交付产品,致力于帮助工程师成为企业创新的核心引擎。

Zadig 充分融合 GitOps 的思想,结合 Pull 和 Push 两种方式进行实践,帮助工程师高效输出:

下面具体阐述 Zadig 中是如何实践 GitOps 来助力高效交付的。

Zadig 中的 GitOps 实践

代码变更、环境配置变更、服务配置变更后,均可自动部署环境。

代码变更

在 Zadig 中配置工作流,增加触发器配置后,系统会自动在对应的 Git 仓库中创建 Webhook。当满足条件的事件发生时会自动触发工作流执行,将最新代码变更部署到环境中。

对于不同的环境,在工作流中配置多个 Webhook 触发器,实现多环境的 GitOps。

zadig的具体使用场景(Zadig如何支持GitOps)(3)

zadig的具体使用场景(Zadig如何支持GitOps)(4)

zadig的具体使用场景(Zadig如何支持GitOps)(5)

环境配置变更

支持从 Git 仓库中导入环境配置(Ingress/ConfigMap/Secret/PVC),导入时开启自动同步开关。

zadig的具体使用场景(Zadig如何支持GitOps)(6)

当 Git 仓库中配置内容变更后,会自动更新 Zadig 中的环境配置。

zadig的具体使用场景(Zadig如何支持GitOps)(7)

服务配置变更

支持从 Git 仓库导入服务配置创建服务。

zadig的具体使用场景(Zadig如何支持GitOps)(8)

在服务策略中开启服务自动更新开关,当代码库中的服务配置内容有变更时,会自动同步更新 Zadig 中的服务配置,并自动基于新的配置更新环境中的对应服务。

zadig的具体使用场景(Zadig如何支持GitOps)(9)

动图演示效果如下:

zadig的具体使用场景(Zadig如何支持GitOps)(10)

小结

基于 Webhook 的自动化可持续部署可简化中间流程提高部署效率;服务配置及时自动同步能力可使服务规模化的过程更加有序可控,为团队带来一致性;环境自动更新能力,增强开发人员的使用体验。

一言以概之,Zadig 中关于 GitOps 的实践,支持团队以小步快跑的方式迭代产品,缩短从代码到交付的过程,更快验证价值。

Zadig,让工程师专注创造。

引用:

[1] https://www.gitops.tech/

赢《致匠心 - 基于 Zadig 落地云原生 DevOps 行业案例 & 故事集》:

zadig的具体使用场景(Zadig如何支持GitOps)(11)

zadig的具体使用场景(Zadig如何支持GitOps)(12)

,