Sync: expand data model and gitops notes

This commit is contained in:
2026-04-24 14:49:34 +08:00
parent 7550b4ee18
commit 75b9e25e68
13 changed files with 2418 additions and 318 deletions

View File

@@ -0,0 +1,62 @@
---
title: "CTP Topic 33 An Introduction to GitOps"
type: source
tags:
- GitOps
- CI/CD
- Kubernetes
- DevOps
- Infrastructure as Code
date: 2026-04-14
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/06_CI_CD_GitOps/ctp-topic-33-an-introduction-to-gitops.md]]
## Summary用中文描述
- 核心主题GitOps 方法论入门——将软件开发原则应用于部署流程,实现声明式基础设施自动化交付
- 问题域:解决部署失败、配置不一致、手动操作风险等传统 CI/CD 问题
- 方法/机制:四大原则(声明式配置 + 版本控制 + CD 流程分离 + 自修复协调器)+ Pull/Push 两种部署模型
- 结论/价值:开发者只需掌握 Git 即可完成安全部署代码变更分钟级上线Git 日志即审计追踪
## Key Claims用中文描述
- GitOps 四大原则使部署过程完全自动化,代码变更可在数分钟内安全部署上线
- Pull 模型比 Push 模型更适合 GitOps——部署代理同时监控 Git 和目标系统,提供额外安全层
- 幂等Idempotent平台如 Kubernetes是 CD 流程顺利执行的必要条件
- GitOps 是 DevOps 的逻辑演进Git 提交日志天然构成合规审计追踪
- CI 与 CD 应解耦——CI 专注构建和分析代码CD 专注部署二进制文件,解耦增强安全性
## Key Quotes
> "The only tool a developer needs to know is Git." — Victor Etkin
> "GitOps uses Git workflows, CD pipelines, and infrastructure as code. Observability is crucial for ensuring the desired and actual states align."
> "An IDEMPOTENT operation is one that can be applied multiple times without changing the result beyond the initial application."
> "GitOps is a logical evolution of DevOps, simplifying adoption and enhancing portability. Git commit logs become audit trails, streamlining compliance."
## Key Concepts
- [[GitOps]]将软件开发原则Git 版本控制 + Pull Request 协作应用于基础设施和应用部署的方法论核心是通过声明式配置描述期望状态GitOps 控制器自动协调实际状态向期望状态收敛
- [[Idempotent Deployment幂等部署]]:同一操作可重复执行而结果不变的特性,是 GitOps CD 流程顺利运行的必要前提Kubernetes 是典型的幂等平台
- [[Pull Model]]GitOps 推荐部署模型——部署代理持续监控 Git 仓库和目标系统状态,检测到差异时自动从 Git 拉取变更并应用,天然提供额外安全层(系统状态不暴露给外部)
- [[Push Model]]CI/CD 管道主动推送变更到目标系统的部署模式,相比 Pull 模型安全性较低但实现更简单
- [[Declarative Configuration声明式配置]]:通过代码描述"系统应该是什么状态"而非"如何一步步到达该状态",是 GitOps 和 Infrastructure as Code 的核心原则
- [[Infrastructure as Code基础设施即代码]]:用代码管理基础设施的实践,与 GitOps 高度协同,共同构成自动化部署的基础
- [[GitOps Controller]]:运行在目标环境中的自动化代理,持续比对 Git 中声明的期望状态与系统实际状态,自动调和偏差,无需人工干预
## Key Entities
- [[Victor Etkin]]GitOps 入门视频主讲人,阐述 GitOps 四大原则及 Pull 模型优势
- [[Weaveworks]]GitOps 概念的提出者和早期推广者(视频背景知识)
- [[Kubernetes]]GitOps 最常用的部署目标平台,其声明式 API 和自修复机制与 GitOps 高度契合
- [[Atlantis]]:基于 Pull Request 的 Terraform IaC 自动化工具(参见 [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]]),属 GitOps 工具实践层
## Connections
- [[ctp-topic-2-git]] ← foundational_skill ← [[GitOps]]Git 版本控制是 GitOps 的基础工具)
- [[ctp-topic-9-ci-cd-with-gruntwork]] ← extends ← [[GitOps]]CI/CD 是 GitOps 的核心组件)
- [[ctp-topic-32-using-atlantis-cicd-for-infrastructure-deployments]] ← implements ← [[GitOps]]Atlantis 是 GitOps 工具实践)
- [[GitOps]] ← complements ← [[DevOps]]GitOps 是 DevOps 的逻辑演进)
- [[Amazon EKS]] ← platform ← [[GitOps]]K8s 是 GitOps 最常用目标平台)
- [[GitOps]] ← extends ← [[Infrastructure as Code]]GitOps 是 IaC 的部署编排层)
## Contradictions
- 与 [[ctp-topic-39-implementing-eks-in-the-aws-lab-landing-zone]] 存在实践约束差异:
- 冲突点Atlantis 当前不支持 EKS 部署
- 当前观点Topic 33Kubernetes 是 GitOps 的主要应用场景
- 对方观点Topic 39Atlantis 需通过 Jenkins + Terragrunt 替代方案处理 EKS 工作负载