とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

これだけは知っておきたいDevOpsシリーズ - GitOps

GitOpsは、宣言的インフラストラクチャとソフトウェアの管理を行うための手法です。

GitOpsという用語は2017年にWeaveworksによって提唱されました。

バージョン管理システムであるGitを、宣言的インフラストラクチャとソフトウェアの信頼できる唯一の情報源(Single Source of Truth)として使用することで機能します。システム全体がGitで管理されているため、変更の追跡や、ロールバックが容易になります。開発者はプルリクエストを作成し、レビューや構成の承認を得ます。マージされるとソフトウェアのデプロイや運用タスクが自動で適用されていきます。デプロイや運用タスクの自動化は、属人性を排すのに効果的です。

現在利用可能なほとんどのCI/CDツールはPush型で動作します。Push型とは、CIを起点にKubernetesクラスターや、クラウドネイティブツールに変更をPushしていきます。Pushするためには、人やサービスなど、クラスター外に強い権限を必要とします。一方でGitOpsはPull型です。クラスターにインストールされたオペレーターがGitリポジトリをポーリングし、変更を検知すると、オペレーターが変更を適用していきます。人や外部サービスに権限を持たせる必要がありません。