gitops
是一种实现云原生应用持续部署的方法。通过使用开发人员已经熟悉的工具(包括Git
和CD
工具),它关注于以开发人员为中心的操作基础设施的体验。
介绍
GitOps 的核心思想是应用程序声明式编排、甚至基础架编排存放到 git 源仓库中,GitOps 模型中存在两个Git仓库:
- Code Repo,代码仓库,开发人员保存项目代码
- Config Repo,配置仓库,运维人员维护配置变更(包括基础设施配置以及应用配置)
GitOps 交付模型:
- 基础条件
- 特征
- Git 作为应用变更的唯一入口
- pull 式流水线
- 可观测性
- 工作流程
- 应用管理员将应用/变更提交到 Git
- GitOps 引擎定期检测 Git 端应用,若更新则开始 pull 式流水线
- GitOps 引擎获取应用更新并交付到实际运行环境
- GitOps 引擎定期检查实际运行状态和 Git 中声明式定义差异(和解循环),并报警或自处理
- 优点
- 应用运维效率提升
- 研发效能提高
- 更快的平均恢复时间
- 安全、审计
两种模式
基于 Git Push 部署
该模式下,以git
仓库的event
为驱动(事件驱动),触发CD
流程
- 传统的 CI/CD 构建都是基于 Push 的模型,由 CI 接收事件并开始一系列的处理
基于 Git Pull 部署
该模式下,以运维人员
触发CD
流程,CD
工具从git
仓库拉取代码并部署。
GitOps 工具集
- Git 和 Git Server(GitHub、GitLab、Gitee、Gitea等)
- CI Server:CI Pipeline 的基础设施,如 Jenkins、Dron、Tekton
- Deploy Operator:CD Pipeline 的基础组件,GitOps 中的解决方案包括:
- ArgoCD
- Jenkins X
- Flux
- Gitkube等
- Canary Deployer
- Flux 提供的名为 Flagger 的 Kubernetes Operator 支持金丝雀发布
其它
FinOps(Finance DevOps)
中文为 云财务管理
、云财务工程
、云成本管理
、云优化
或 云财务优化
等,参考
FinOps
基金会是Linux 基金会发起的项目,致力于通过最佳实践、教育和标准来推动实践云财务管理学科
- DevSecOps
- BizOps
- FinOps
- ChatOps