GitOps体系学习和理解

什么是 GitOps 呢?

  1. GitOps 是一套使用 Git 来管理基础架构和应用配置的实践,而 Git 指的是一个开源版控制系统。GitOps 在运行过程中以 Git 为声明性基础架构和应用的单一事实来源。
  2. GitOps 使用 Git 拉取请求来自动管理基础架构的置备和部署。Git 存储库包含系统的全部状态,因此系统状态的修改痕迹既可查看也可审计。
  3. GitOps 围绕开发者经验而构建,可帮助团队使用与软件开发相同的工具和流程来管理基础架构。除了 Git 以外,GitOps 还支持您按照自己的需求选择工具。
GitOps体系学习和理解

1. GitOps 到底是个什么呢

GitOps = 基础设施即代码(IaC) + 合并请求(MR) + 持续集成/持续交付(CI/CD)

GitOps 是一种运维框架,它采用了 DevOps 在应用程序开发阶段的最佳实践(例如版本控制、协作、合规性和CI/CD工具),并将其应用于基础设施自动化。 与 GitOps 相比,传统的 DevOps 尽管在软件开发生命周期已实现自动化,但基础架构大体上仍然是一个需要专业团队进行手动操作的过程。随着对基础架构需求的不断增长,实现基础设施自动化变得越来越重要。现代化的基础设施需要弹性机制(速度和规模),以便能有效地管理持续部署所需的云资源。

GitOps体系学习和理解

GitOps 用于对基础设施置备的过程进行自动化,采用以 配置文件 存储为代码(基础设施即代码),配置文件在每次部署时都会生成相同的基础设施环境,来保证环境的一致性,完成整个运维流程的自动化。

  • 三叉戟 - 基础设施即代码(IaC) - Terraform
    • GitOps 使用 Git 仓库作为基础设施定义的单一可信来源,将所有基础设施以配置文件的方式存储为起来,达到配置和管理应用服务的问题。
  • 三叉戟 - 合并请求(MR)
    • GitOps 使用合并请求作为所有基础设施更新的变更机制,合并请求是团队通过评审和评论进行协作的地方,合并会被提交到您的主干分支并可作为审计日志。
  • 三叉戟 - 持续集成/持续交付(CI/CD)
    • GitOps 使用具有持续集成和持续交付的 Git 工作流来自动化执行基础架构的更新,在新代码合并后,CI/CD 流水线将执行环境中的更改,从而避免手动配置的错误等问题。