← 概念解説に戻る

Concept Fable

GitOps

先に結論:Git リポジトリをシステムの望ましい状態の唯一の信頼できる情報源とし、インフラとアプリケーション構成を宣言的ファイルで記述し、自動化コントローラが実際の環境を Git に記述された状態へ継続的に同期する。

GitOps · DevOps / operations

まず物語を読む。ここでは急いで定義を示さず、まず問題そのものを立ち上がらせる。

寓話

城壁は図面を基準とする

石南城の城壁は毎日誰かが修繕していた。東門は煉瓦が欠けると、衛兵が仮に補った。西門は灯りを増やすと、職人がそのまま取り付けた。夜に誰かが排水溝を変え、翌日には理由を誰も知らなかった。

城壁は一見ずっと誰かが保守しているように見えるが、今実際にどうあるべきかを説明できる人はいない。異なる職人が自分の習慣で修繕し、同じ城壁が次第にいくつもの流儀に変わっていった。

城主はまず毎日の変更報告を求めた。しかし報告には漏れがあり、口径も乱れていた。問題が起きると、現場でレンガ一つ一つを調べるしかなく、誰が変えたのか、なぜ変えたのかは、すぐにはっきりしなくなった。

新しい総工匠は宣言した:城壁はもはや現場の口頭命令ではなく、総図面庫を基準とする。城壁を変更したい者は、まず図面を変更し、図面は審査・捺印を経てから庫に入れる。

巡壁員は毎日、現場と図面を照合する。不一致を見つけると、現場を図面どおりに直すか、図面が確かに更新を要すると報告する。この方法は最初は回りくどく見えた。

ある誤った変更が西門の灯を壊すまで。総工程师は前の版の図面をめくり、巡壁員はどの灯を復旧すべきかすぐに分かった。石南城はついに認めた。安定は、皆が同じ望ましい状態を認め、現場を絶えずそれに近づけることから生まれる。

工匠は次第に気づいた。先に図面を直すことは余計な手間ではなく、共通の記憶を一つ増やすことである。各変更には理由、レビュー、版があり、後の者が城壁がなぜこうなったかを知ることができる。

現場は依然として風雨で損傷し、誰かが一時的に誤って変更することもある。しかし図面庫が共通に認められた目標でありさえすれば、巡回員は逸脱を引き戻せる。石南城が混乱した現場と期待状態を分けた後、保守は初めて本当に制御可能になった。 後に新人が入門するとき、老師匠はまず抽象的な名目を講じず、あの失敗を振り返らせた。もともとどこが直感に頼っていたか、最初の修繕がなぜ不十分だったか、新しい取り決めがどうリスクを検査可能な位置に留めるか。彼らがこれらの細部を説明でき、いつ沿用すべきか、いつアップグレードすべきかを指摘できて初めて、この方法を本当に理解したことになる。 後に彼らはこの方法を新人の演習にも引き継いだ。まず新人に旧方法で一度やらせ、誤りがどう現れるかを見る。次に新規則でやり直し、どの段階が事前に止められ、どの段階が証拠を残したかを見る。新人が名前を暗記するだけでは、似た場面で依然として乱用する。適用境界、代償、失敗後の補救を語れて初めて、独立して仕事を任される。

明らかにする

この物語が語るのは:GitOps

Git リポジトリをシステムの望ましい状態の唯一の信頼できる情報源とし、インフラとアプリケーション構成を宣言的ファイルで記述し、自動化コントローラが実際の環境を Git に記述された状態へ継続的に同期する。

GitOps の主要な仕組みには宣言的設定、Pull Request レビュー、自動同期、ドリフト検出、監査履歴、迅速なロールバックが含まれる。運用操作は人がサーバー上で即席にコマンドを打つのではなく、追跡可能な Git の状態を変更することでシステムの変化を駆動する。

メタファーのマッピング

  • 総設計図庫:Git リポジトリ、望ましい状態を保存
  • 図面は審査を経る:Pull Request とコードレビュー
  • 巡壁員が現場を照合する:GitOps コントローラが実際の状態を検出する
  • 図面どおりに自動で戻す:自動同期とドリフト修正
  • 前の版の図面に戻る:Git 履歴に基づくロールバック

Andy(任旭)判断

GitOps のビジネス価値は、デリバリー環境の不確実性を下げることです。Agent プラットフォームでは、設定、権限、ワークフロー、デプロイ状態がすべて監査可能・ロールバック可能・複製可能であるべきです。

IaCKubernetesArgo CDFluxdeclarative deploymentドリフト検出

関連する識別

この概念は隣接概念と混用されやすいので、対比ページを続けて見ることをおすすめする。

京ICP备2026014272号