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

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

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