GitOpsとは?
ぎっとおぷす
GitOpsとは、Gitリポジトリを「唯一の信頼できる情報源」として、インフラやアプリケーションの状態をコードで宣言し自動的に同期する運用手法です。
GitOpsとは、Gitのリポジトリをシステムの望ましい状態(desired state)の単一の信頼できる情報源(Single Source of Truth)として扱い、リポジトリへの変更をトリガーにインフラやアプリケーションの展開・更新を自動化するDevOps手法です。2017年にWeaveworksが提唱しました。
GitOpsの基本的な動作フローは次のとおりです。まず開発者がアプリケーションやインフラの構成変更をGitへプッシュ(またはPull Request経由でマージ)します。次にGitOpsエージェント(ArgoCDやFlux等)がリポジトリの変更を検知し、クラスター(多くはKubernetes)の実際の状態と比較します。差分がある場合は自動的に調整(Reconcile)してリポジトリの定義に収束させます。
GitOpsが従来のCI/CDと異なるポイントは以下のとおりです。
- Pullベースのデプロイ:外部からクラスターにアクセスする代わりに、クラスター内のエージェントがGitをポーリングして変更を取得
- 全変更のGit履歴:誰がいつ何を変更したかが完全に追跡可能
- ドリフト検知:手動操作などで実際の状態がGitと乖離した場合に自動で修正
- ロールバックの容易さ:Gitのrevertで以前の安全な状態に戻せる
Kubernetesとの親和性が高く、クラウドネイティブ開発においてArgoCDやFluxを用いたGitOpsは標準的な継続的デリバリーパターンとなっています。
使い方・例文
「本番環境のマニフェストをGitのmainブランチにマージすると、Argoが自動でKubernetesクラスターを更新する」という構成が、GitOpsの典型的な実装例です。
この用語をシェア
最終更新: