今年,白鲸开源计划将Gitops功能反馈贡献给Apache DolphinScheduler社区,这个功能主要解决了开发、生产环境的同步问题。
在没有这个功能之前,我们只能通过导入导出的方式,以 JSON 文件作为媒介将开发环境的内容同步到生产环境,这个方式会面临两个问题。
- 需要手动、或者自定义自动化脚本处理:Apache DolphinScheduler没有提供开箱即用的同步两个环境的方法,只能依靠用户手动的导入导出。或者用户需要自定义自动化脚本,将开发环境的内容同步到生产
- 不支持跨项目导出:JSON导入导出是在项目维度下进行的,跨项目的导入导出不支持,意味着如果有多个项目的环境,需要进行多次操作
白鲸开源发现这个功能的优化点,分析调研后发现GitOps是解决这个问题的可能方案,所以我们在内部实现了GitOps用来同步开发生产环境,从而实现工作流部署。
什么是 Git Ops?
GitOps 是一种基于版本控制系统(通常是Git)的持续交付(Continuous Delivery)和基础设施管理的方法。
它的核心理念是将整个系统的状态和配置存储在版本控制库中,通过Git的特性实现对系统的自动化管理和持续交付。以下是GitOps的一些关键特点和优势:
- Infrastructure as Code: GitOps强调使用代码来描述和管理基础设施。通过在版本控制库中存储基础设施代码,可以轻松地重建、复制和修改整个环境。
- 声明性配置: 使用声明性配置,定义系统的期望状态而非详细的执行步骤。这样,GitOps系统可以自动比对实际状态与期望状态,并进行调整以使其一致。
- 自动化: GitOps强调自动化,通过Git中的提交和合并触发自动化流程,减少人工干预,提高可靠性和可重复性。
- 版本控制: