基于 Zadig 的 GitOps 实践
GitOps 是 WeaveWorks 于 2017 年提出的概念,其核心思想是将应用程序的服务配置、数据库、编排配置等以代码的形式组织在 Git 仓库中,来组织整个部署过程,实现应用程序的版本化、自动化和标准化。
GitOps 的两种模式
GitOps 的部署策略有两种实现方式:基于 Push 的方式和基于 Pull 的方式。两者的主要区别如下:
基于 Push 的方式 基于 Pull 的方式
- Push 方式是作为上帝视角来做环境的更新,而 Pull 方式则可以利用权限鉴权等信息做安全性及合规性保障。
- Push 方式是在代码变更后触发更新,如果有人手动修改了集群中的配置,集群中的配置就会和代码库中的配置有差异;而 Pull 方式实现方式,则是检测集群和代码库中的配置,当发现不一致时,自动/手动触发更新,让环境中使用的配置始终和代码库中的保持一致。
Zadig 关于 GitOps 的思考
Zadig 作为一款开源持续交付产品,致力于帮助工程师成为企业创新的核心引擎。Zadig 充分融合 GitOps 的思想,结合 Pull 和 Push 两种方式进行实践,帮助工程师高效输出:
- 让工程师专注在业务价值创造上,减少其对繁琐部署流程的参与:Webhook 及全自动软件交付流水线能力,让业务代码“所见即所得”的在环境中生效。
- 降低工程师对服务配置、环境管理的心智负担:服务配置 AsCode,Git 仓库中环境配置变更后自动同步到 Zadig 中,服务配置变更后自动更新环境。 下面具体阐述 Zadig 中是如何实践 GitOps 来助力高效交付的。
Zadig 中的 GitOps 实践
代码变更、环境配置变更、服务配置变更后,均可自动部署环境。
代码变更
在 Zadig 中配置工作流,增加触发器配置后,系统会自动在对应的 Git 仓库中创建 Webhook。当满足条件的事件发生时会自动触发工作流执行,将最新代码变更部署到环境中。
对于不同的环境,在工作流中配置多个 Webhook 触发器,实现多环境的 GitOps。
环境配置变更
支持从 Git 仓库中导入环境配置(Ingress/ConfigMap/Secret/PVC),导入时开启自动同步开关。 当 Git 仓库中配置内容变更后,会自动更新 Zadig 中的环境配置。
服务配置变更
支持从 Git 仓库导入服务配置创建服务。 在服务策略中开启服务自动更新开关,当代码库中的服务配置内容有变更时,会自动同步更新 Zadig 中的服务配置,并自动基于新的配置更新环境中的对应服务。
小结
基于 Webhook 的自动化可持续部署可简化中间流程提高部署效率;服务配置及时自动同步能力可使服务规模化的过程更加有序可控,为团队带来一致性;环境自动更新能力,增强开发人员的使用体验。
一言以概之,Zadig 中关于 GitOps 的实践,支持团队以小步快跑的方式迭代产品,缩短从代码到交付的过程,更快验证价值。
Zadig,让工程师更专注创造!欢迎加入 开源吐槽群🔥
- 神奇的 Zadig 工作流:以链接广大开发者为使命
- 数据库/SQL 版本管理工具选型指北
- 如何实现 MySQL 代码和数据的一站式变更
- Zadig 跨团队之最佳使用姿势:搞定开发、测试、运维协作自动化
- 基于 Zadig 的 GitOps 实践
- 极速 Zadig 构建效率是这样炼成的
- 主机基础设施如何使用 Zadig 做持续交付
- Zadig 环境负载均衡:0 人工干预,极速部署
- 打通了!Jira Zadig 实现需求与研发过程追踪
- 云原生 DevOps 现状调研问卷征集:KodeRover 联合 OSCHINA 推出
- Zadig v1.13.0 相信开放的力量,工作流连通一切价值
- 飞书视频会议端到端集成测试工程实践经验总结 - Zadig 应用案例
- 在解决了 2961 个用户反馈后,我做出了这样的改变...
- 基于 Ingress Controller 在集群外访问 Zadig 自测环境(最佳实践)
- iMile 利用 Zadig 多云环境周部署千次,跨云跨地域持续交付全球业务
- 稳!上千微服务接入 Zadig 的最佳姿势(Helm Chart 篇)
- 稳!上千微服务接入 Zadig 的最佳姿势(K8s YAML 篇)
- Zadig 洞态 IAST:让安全溶于持续交付
- TT 语音落地 Zadig:开源共创 Helm 接入场景,环境治理搞得定!
- 00后云工程师用 Zadig 为企业研发开源节流