今年,白鲸开源计划将Gitops功能反馈贡献给Apache DolphinScheduler社区,这个功能主要解决了开发、生产环境的同步问题。

file

在没有这个功能之前,我们只能通过导入导出的方式,以 JSON 文件作为媒介将开发环境的内容同步到生产环境,这个方式会面临两个问题。

  • 需要手动、或者自定义自动化脚本处理:Apache DolphinScheduler没有提供开箱即用的同步两个环境的方法,只能依靠用户手动的导入导出。或者用户需要自定义自动化脚本,将开发环境的内容同步到生产
  • 不支持跨项目导出:JSON导入导出是在项目维度下进行的,跨项目的导入导出不支持,意味着如果有多个项目的环境,需要进行多次操作

白鲸开源发现这个功能的优化点,分析调研后发现GitOps是解决这个问题的可能方案,所以我们在内部实现了GitOps用来同步开发生产环境,从而实现工作流部署。

什么是 Git Ops?

GitOps 是一种基于版本控制系统(通常是Git)的持续交付(Continuous Delivery)和基础设施管理的方法。

它的核心理念是将整个系统的状态和配置存储在版本控制库中,通过Git的特性实现对系统的自动化管理和持续交付。以下是GitOps的一些关键特点和优势:

  • Infrastructure as Code: GitOps强调使用代码来描述和管理基础设施。通过在版本控制库中存储基础设施代码,可以轻松地重建、复制和修改整个环境。
  • 声明性配置: 使用声明性配置,定义系统的期望状态而非详细的执行步骤。这样,GitOps系统可以自动比对实际状态与期望状态,并进行调整以使其一致。
  • 自动化: GitOps强调自动化,通过Git中的提交和合并触发自动化流程,减少人工干预,提高可靠性和可重复性。
  • 版本控制: 使用版本控制系统进行配置管理,提供了可追溯性和回滚能力。每个系统变更都通过Git提交,使得可以轻松回溯到先前的配置状态。
  • 观察和监控: GitOps系统通常具备观察和监控的能力,通过实时监测Git仓库的变更来驱动持续交付流程。

我们计划做什么?

我们在配置中心实现了GitOps和Apache DolphinScheduler的集成,用户仅需要在配置中心配置了Git供应商的链接,系统中集成了Commit提交、分支推送、以及部署的功能。

简单的讲就是用户可以通过点击图形化界面中的一个按钮,实现生产环境到开发环境的部署.

Git操作流程

file

产品设计流程 

file

白鲸开源已在内部实现了GitOps与Apache DolphinScheduler的深度集成,通过简化的配置,用户可以轻松实现开发与生产环境的快速同步。此功能的引入不仅提升了环境部署的效率,也加强了系统的安全性和可追溯性。

展望未来,白鲸开源科技在2024年计划将这一功能贡献给Apache DolphinScheduler社区,以期为更广泛的用户解决环境同步的挑战,推动社区的技术发展和创新。我们相信,通过社区的共同努力,可以不断优化和完善工作流调度和管理,为用户提供更加高效、可靠的解决方案。

本文由 白鲸开源 提供发布支持!