基礎建設即程式碼 中階
什麼是 GitOps?它與傳統 CI/CD 部署方式有什麼不同?
GitOps 核心理念
Git 是單一事實來源(Single Source of Truth)。系統的期望狀態完全由 Git 儲存庫定義,一切變更都透過 Git 操作(PR/merge)進行。
GitOps vs 傳統 CI/CD
| 面向 | 傳統 Push-based CI/CD | GitOps Pull-based |
|---|---|---|
| 部署觸發 | Pipeline 主動推送至叢集 | Agent 持續拉取 Git 狀態 |
| 叢集存取 | CI 系統需要叢集 credentials | 叢集只需要 Git 讀取權限 |
| 漂移偵測 | 無 | Agent 自動偵測並修復漂移 |
| 審計軌跡 | CI logs | Git commit history |
| 回滾方式 | 重跑舊 pipeline | git revert |
GitOps 工作流程
- 開發者修改 Kubernetes YAML 或 Helm values
- 提交 Pull Request,通過審查後 merge 至 main
- GitOps Agent(ArgoCD/Flux)偵測到 Git 變更
- Agent 比對 Git 期望狀態 vs 叢集當前狀態
- 自動將叢集同步至 Git 定義的狀態
主流工具
ArgoCD:UI 友善,適合可視化管理多叢集
Flux:更 Kubernetes-native,適合自動化程度高的環境
核心優勢
- 安全性更高:CI 系統不需要持有叢集 credentials
- 自我修復:手動修改叢集設定會被 Agent 自動還原
- 完整審計:所有變更都有 Git commit 記錄
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
