【ぎっとおぷす】

GitOps とは?

💡 「Gitにpushしたら自動デプロイ」
📌 このページのポイント
GitOpsワークフロー Gitリポジトリ 宣言的マニフェスト (YAML / HCL) Single Source of Truth PR / Merge レビュー&承認 → mainへマージ GitOpsオペレータ ArgoCD / FluxCD 変更を自動検知 差分を計算 K8sクラスタ Desired State に同期 自動デプロイ Sync モニタリング&フィードバックループ 実行状態を監視 → ドリフト検知 → 自動修復 or アラート 差分通知 開発者 Git操作のみで管理 原則: 宣言的設定 | Git = 信頼の源 | 自動同期 | 継続的リコンシリエーション | kubectl不要
GitOpsのワークフロー
ひよこ ひよこ

普通のCI/CDと何が違うの?

ペンギン先生 ペンギン先生

従来のCI/CDはパイプラインがkubectl applyでクラスタに直接デプロイする(Push型)。GitOpsはGitリポジトリの状態とクラスタの状態を常に同期させる(Pull型)。Argo CDGitの変更を検知してクラスタを自動更新する。「あるべき状態」がGitに宣言されていて、実環境が自動で追従するイメージだよ

ひよこ ひよこ

メリットは?

ペンギン先生 ペンギン先生

監査証跡Gitログで自然に残る、②ロールバックはgit revertでOK、③PRレビューでインフラ変更もコードレビューの対象に、④クラスタへの直接アクセス権限が不要(Argo CDだけがデプロイ権限を持つ)。セキュリティと運用効率が同時に向上するんだよ

ひよこ ひよこ

Argo CDとFluxの違いは?

ペンギン先生 ペンギン先生

どちらもCNCFプロジェクトのGitOpsツール。Argo CDはWebUI(ダッシュボード)が充実していて視覚的に管理しやすい。FluxはCLI中心でシンプル、Helmコントローラーとの統合が密。Argo CDの方がシェアが大きく情報も多い。初めてならArgo CDから始めるのがおすすめだよ

ひよこ ひよこ

GitOps導入のステップは?

ペンギン先生 ペンギン先生

①まずKubernetesマニフェストをGitリポジトリで管理、②Argo CDをクラスタにインストール、③ApplicationリソースGitリポジトリとクラスタの同期を設定、④PRベースの変更フローを確立。アプリコードのリポジトリとマニフェストのリポジトリを分ける構成が推奨だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「GitOps」って出てきたら「Gitを中心にインフラとデプロイを管理する手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「GitOps」 = Git + Operations
💬 Weaveworksが2017年に提唱。DevOpsの実践をGitワークフローに統合する考え方だよ
← 用語集にもどる