🗂

OpenGitOpsとはなにか?

2023/07/04に公開

2017年にWeaveworksがGitOpsという概念を発表してから、ArgoCDやFluxCDをはじめとしたプロジェクトの広がりとともにGitOpsという開発手法が広まってきています。

そこで今回はGitOpsの定義やベストプラクティスを策定しているOpenGitOpsについて説明したいと思います。

OpenGitOpsとは

OpenGitOpsのウェブサイトにはこう書かれています。

OpenGitOps is a set of open-source standards, best practices, and community-focused education to help organizations adopt a structured, standardized approach to implementing GitOps.
OpenGitOpsは、オープンソースの標準、ベストプラクティス、組織がGitOpsを実装するための構造化・標準化されたアプローチを採用するのを支援するコミュニティを中心とした教育のセットです。

と書いてあります。簡単に説明するとGitOpsの定義やベストプラクティスを集めたものです。

OpenGitOpsはどのように作られているのか

OpenGitOpsはCNCF Sandboxになっており、CNCF App Delivery SIGのGitOps WGという期間限定のワーキンググループが中心に作成しています。GitOps Working GroupはAmazon, Codefresh, GitHub, Microsoft, and Weaveworksが2020年11月に発表したとされています。WGの目的は、GitOpsのベンダー中立、原理原則に基づいた意味を明確に定義することです。これにより、ツール間の相互運用性、コンプライアンス、認証のための基盤が確立されます。持続可能なプログラム、ドキュメント、コードは、OpenGitOpsプロジェクト内に作成することになっています。
当ワーキングには憲章も存在しており、目標や成果物、そしてWGが目標としないものが書いてあります。

目標は

  • オープンガバナンス
  • プロジェクト/ベンダー中立
  • 教育資料を作成し、イベントを企画し、コミュニティ全体で実践者をサポートすることにより、GitOps の用語とアプローチの認識と理解を促進します。
  • GitOps 原則に従って実装するためのドキュメントとガイドラインを作成する
  • GitOps とそのさまざまなアプローチの長所と短所の公平な分析
  • GitOps プロジェクト/製品およびソリューションのベンダー中立的な状況を維持する

目標としないもの

  • 特定のプロジェクト、ベンダー、または GitOps へのアプローチを推奨/承認する
  • 特定のプロジェクト、ベンダー、または GitOps へのアプローチを除外/非推奨にする
  • 他のパラダイムや方法論よりも GitOps を推進する (つまり、擁護やブランディングを行わない)
  • GitOpsは、Kubernetesクラスターを管理するための方法です。GitOpsでは、Kubernetesの構成はGitリポジトリに保存され、変更はGitリポジトリにプッシュされます。その後、変更はKubernetesクラスターに自動的にデプロイされます。

成果物

  • GitOps の定義と用語のドキュメント: 草稿
  • GitOps の方法論とアプローチに関するドキュメント
  • GitOps ランドスケープ ドキュメント
  • GitOps コミュニティ イベント (GitOpsCon など)
  • 始めるための実用的な例
  • OpenGitOps プロジェクト Web サイト

この憲章に従い、さまざまなドキュメント、ベストプラクティスが作成されています。
また、GitOpsCon, ArgoConなどが随時開催されています。

まとめ

ここ数年のGoogleトレンドを見ると世界的にはGitOpsは絶え間なく広がっていることがわかります。日本は横ばいでした。
GitOpsは今やDevOpsの1つの手法として立場を確立したように感じます。

サイバーエージェント Developer Productivity室

Discussion