本文へスキップ

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の典型的な実装例です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語