假设您已经成功扩展了应用程序基础架构。您使用 DevOps 进行快速协作软件开发,并通过 Kubernetes 或 HashiCorp Nomad 等容器编排扩展底层应用程序基础设施以满足当前需求。编写和部署新代码进展顺利……直到情况并非如此——直到应用程序配置或其他组件偏离对齐,或者直到出现重构的根本需求,而没有简单的方法来重新创建环境,或者回滚时到之前的状态变成下沉或游泳时刻等。
自动化声明式基础设施部署和配置不仅可以更轻松地快速交付具有令人惊叹的新功能和改进的代码,而且还可以减轻漂移冲突,并保持对部署环境状态的控制。虽然云原生应用程序是为了在流动和动态的云环境中运行而构建的,但这正是 GitOps 真正发挥作用的地方。
什么是 GitOps?
GitOps 不仅仅是另一个流行词,它已经进入了非常拥挤的软件开发领域。 GitOps 是一个操作框架,旨在使用 Git 作为单一事实来源来简化和自动化应用程序和基础设施的部署和管理。 GitOps 在云原生生态系统中迅速普及,特别是在基于 Kubernetes 的环境中。
对某些人来说,围绕 GitOps 的炒作可能听起来像是对 DevOps 的枕式重新包装。如果您已经拥有坚实的 DevOps 文化,那么 GitOps 会带来什么?
GitOps 与 DevOps
DevOps 为软件开发生命周期带来了一套最佳实践,包括版本控制、协作、合规性、CI/CD、日志记录和监控,以开发和交付高质量的应用程序。 GitOps 是这些最佳实践的操作实现,用于管理和自动化整个部署环境。
GitOps 利用版本控制的 git 存储库作为单一事实来源。 CD 管道控制云基础设施所需的声明性状态,并且合并到中央存储库中的更改会触发强制执行该状态的机制。
GitOps 可自动化应用程序代码部署和基础设施管理。通过为应用程序代码和配置创建单独的存储库来遵循最佳实践。使用 CI/CD 工具更新应用程序存储库会触发进程来更新配置存储库。然后将配置更改推送/拉取到部署环境。
GitOps 方法补充了云原生开发的快速性和灵活性。可重复的流程和统一的部署方法允许团队异步工作而不牺牲协作——这是更快地将稳定和可扩展的产品推向市场的关键。
GitOps 的好处
使用 GitOps 方法的好处包括: