読み方 : ギットオプス

GitOps

GitOpsとは?

情報システムの運用手法の一つで、システムの構成情報をバージョン管理システムGit」で管理し、その内容を基準として実行環境への反映を自動化する方式。変更履歴が明確になり、自動化ツールを通じて実際の環境へ安全かつ確実に反映できる。
GitOpsのイメージ画像

従来の運用では、担当者がコマンド操作や管理画面を通じてサーバの設定を直接変更するのが一般的であった。この方法は操作ミスが起きやすく、「誰がいつ何を変えたか」が記録に残りにくいため、障害発生時の原因究明や変更の取り消しに手間がかかる。

GitOpsでは、システムの設定や状態の「あるべき姿」を宣言的なコードとして記述し、Gitリポジトリに保管する。開発者や運用担当者は設定変更をGitコミットし、レビューや承認を経てマージする手順を踏む。運用の基準をリポジトリ上のコードに一本化する。

変更が取り込まれると、リポジトリを常時監視している自動化ツールがその差分を検知し、設定変更などの操作を行って実際のシステムへ反映させる。人手による直接操作を減らし、作業のばらつきを抑えることができる。変更履歴はすべてGitに残るため、問題発生時には過去の状態への切り戻しも容易である。手動で直接変更が加えられた場合も、リポジトリの内容を優先して修正する。

この手法はコンテナオーケストレーションツールの「Kubernetes」との相性がよく、コンテナ環境での採用が多い。Kubernetesでは「マニフェスト」と呼ばれる設定ファイルでリソースを定義するため、Gitによる管理になじみやすい。オープンソースのツールとして「Argo CD」や「FluxCD」がよく知られており、これらはリポジトリと実行環境の状態を継続的に同期させる役割を担う。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。