GitOpsの原則を説明するものとして最も正しいものはどれですか?
GitOpsはIaC(Infrastructure as Code:インフラ構成をコードとして管理する手法)をGitリポジトリで一元管理し、PRのマージやコミットをトリガーに自動的にインフラの状態をGitの内容に同期させる手法です。Argo CDやFluxなどのツールがKubernetes環境で広く使われ、変更はすべてGitを通じて行われるため監査証跡が完備され、ロールバックもGitのrevertで実施できます。 選択肢Aは、「Gitコミットをトリガーとして手動でインフラを更新する」とありますが、「手動更新」の時点でGitOpsの自動化原則に反します。GitOpsではリポジトリの変更が自動的にインフラへ反映されます。 選択肢Bが正解です。Gitリポジトリを唯一の真実の源泉(Source of Truth)とし、リポジトリの状態とインフラの状態を常に自動同期させることがGitOpsの核心的な定義です。 選択肢Cは、Gitブランチをそれぞれの環境に対応させる命名規則の話であり、インフラ状態とGitリポジトリを自動同期させるというGitOpsの本質的な概念を含みません。 選択肢Dは、Gitでデータベースのスキーマ変更を管理する手法の説明であり、インフラ全体の宣言的管理と自動同期というGitOpsの原則とは異なります。