在此之前您可能听说过“GitOps”,但并不知道它到底是什么,除了GitOps,您可能还听说过的DevOps,或者AIOps,GOP的等,是的,现在是“行动”盛行的时代。
GitOps是一种实现持续交付的模型,它的核心思想是将应用系统的声明性基础架构和应用程序存放在的Git的版本控制库中.Choerodon猪齿鱼在构建持续交付流水线时参考了GitOps,并进行了实践,俗话说“兵马未动,理论先行”,在本文中,将重点阐述GitOps工作流程的原理和模式,以及将它们应用在生产和大规模运行Kubernetes中的一些实践经验。在下一篇文章中,将介绍Choerodon猪齿鱼是如何实践和落地GitOps,从而构建了一个可重复且可靠的交付过程。
GitOps,90%的最佳实践,10%有意思的新东西需要我们去构建。 - “GitOps - 拉动请求的操作”
这篇文章是根据Weave Cloud的几篇关于GitOps的文章翻译整理而来:
-
GitOps
-
GitOps:Pull Request操作
-
GitOps管道 - 第2部分
-
GitOps - 第3部分:可观察性
-
GitOps - 第4部分:应用交付合规性和安全CICD
主要内容
-
什么是GitOps?
-
GitOps的主要优点
-
-
GitOps的应用场景 - 适合云原生的持续交付
-
GitOps的基本原则
-
最佳实践
-
拉式流水线--Pull Request操作
-
GitOps工作流
-
可视化
-
应用交付的合规性和安全的CI / CD
-
-
GitOps带来的价值
什么是GitOps?
GitOps是一种持续交付的方式。它的核心思想是将应用系统的声明性基础架构和应用程序存放在Git的版本库中。
将Git作为交付流水线的核心,每个开发人员都可以提交拉取请求(Pull Request)并使用Git来加速和简化Kubernetes的应用程序部署和运维任务。通过使用像Git这样的简单熟悉工具,开发人员可以更高效地将注意力集中在创建新功能而不是运维相关任务上(例如,应用系统安装,配置,迁移等)。
GitOps:在声明性基础架构之上的版本化CI / CD。停止脚本并开始发货。https://t.co/SgUlHgNrnY - Kelsey Hightower(@kelseyhightower)2018年1月17日
GitOps的主要优点
通过GitOps,当使用Git的提交基础架构代码更改时,自动化的交付流水线会将这些更改应用到应用程序的实际基础架构上但是GitOps的想法远不止于此 - 它还会使用工具将整个应用程序的实际生产状态与基础架构源代码进行比较,然后它会告诉集群哪些基础架构源代码与实际环境不匹配。
通过应用GitOps最佳实践,应用系统的基础架构和应用程序代码都有“真实来源。” - 其实是将基础架构和应用程序代码都存放在gitlab,或者github上等版本控制系统上这使开发团队可以提高开发和部署速度并提高应用系统可靠性。
将GitOps理论方法应用在持续交付流水线上,有诸多优势和特点:
-
安全的云原生CI / CD管道模型
-
更快的平均部署时间和平均恢复时间
-
稳定且可重现的回滚(例如,根据Git恢复/回滚/前叉)
-
与监控和可视化工具相结合,对已经部署的应用进行全方位的监控