メインコンテンツへ
開発技術開発実践

GitOpsに関する説明として、最も適切なものはどれか。

ア.GitOpsはGitHubのIssueとPull Requestを使って本番オペレーション作業(DB操作・ネットワーク設定等)を承認する人事プロセスの呼称である。
イ.GitOpsはGit上のブランチ戦略(GitFlow・GitHub Flow等)を組み合わせてチームの開発フローを最適化するプロジェクト管理手法である。
ウ.GitOpsはGitリポジトリを「望ましい状態の唯一の真実(Single Source of Truth)」として、実際のシステム状態との差分を自動的に解消することでデプロイを宣言的に管理する運用手法である。正解
エ.GitOpsはgit opsコマンドの略称で、gitの高度なオペレーション(rebase・cherry-pick・bisect等)を効率化するGitのサブコマンド群である。

解説

GitOpsは「Gitを設計図の金庫として使う」運用哲学。金庫(Git)に「こうあるべき」を書いて、現実のシステムがそこからズレたら自動で直すロボット(ArgoCDなど)を走らせる。人間が「適用」ボタンを押す必要がなくなり、Gitの履歴が運用の全記録になる。

なぜ ウ が正解か

ウが正解。Weaveworks社が提唱した概念。ArgoCDやFluxが代表的なGitOpsコントローラ。Pull型デプロイ(クラスター内のエージェントがGitを監視して差分適用)が特徴。メリット:①全変更がGit履歴に残る(監査証跡)→②git revertで即ロールバック→③本番環境への直接kubectl実行が不要(セキュリティ向上)→④ドリフト検出と自動修復。

なぜ イ は間違いか

GitFlow・GitHub FlowはGitのブランチ管理戦略。GitOpsは「Gitでインフラ状態を宣言的管理する」デプロイ運用の概念であり、ブランチ戦略の話ではない。

なぜ ア は間違いか

人事プロセス・承認プロセスの話ではない。GitOpsはインフラ・アプリのデプロイ自動化の技術的手法。

なぜ エ は間違いか

git opsというサブコマンドは存在しない。GitOpsはGitを中心に据えたCI/CD運用パターンの概念名。

出典: AI生成問題(学習用)