【ぎっとおぷす】
GitOps とは?
最終更新:
💡 Gitに置いた望ましい状態へ、実環境を合わせる
Gitなどで版管理した宣言的な望ましい状態を、ソフトウェアのエージェントが取得し、実環境との差を継続的に調整する運用手法。変更のレビューや履歴管理と、環境への反映を結び付ける。
📌 このページのポイント
- 望ましい状態を宣言的に記述し、版と変更履歴を管理する
- エージェントが定義を取得し、実環境との差を継続的に確認する
- CIによるビルドやテストと組み合わせて利用できる
- 自動反映・不要な資源の削除・差分修復はツールの設定も確認する
普通のCI/CDと何が違うの?
CI/CDはビルド・テスト・配布などを自動化する広い考え方だよ。GitOpsでは「アプリを3個動かす」のような望ましい状態を版管理し、エージェントがその定義を取得して実環境との差を調整する。CIとGitOpsを組み合わせることもできるんだ。
Gitの履歴にはどんな利点があるの?
git revertだけで元に戻せる?
望ましい状態の定義を以前の内容に戻し、環境へ反映する方法にはなるよ。ただしデータベースのデータや、変更済みの外部サービスまで自動的に戻るわけではない。反映結果と、戻せる範囲を確認する必要があるんだ。
導入するときは何を決めるの?
まず何を宣言的に管理するか、どの版を反映するか、誰が変更を承認するかを決めるよ。KubernetesではArgo CDやFluxなどを使える。反映先への権限、秘密情報の管理、同期失敗時の確認方法も用意し、小さな対象から反映を確かめると進めやすいね。
📖 おまけ:英語の意味
「GitOps」 = Git + Operations
💬 Weaveworksが2017年に提唱。DevOpsの実践をGitワークフローに統合する考え方だよ