この記事は以下のブログを翻訳したものです。
原文: https://cloudnativenow.com/features/the-4-levels-of-gitops-maturity/
GitOps成熟度4段階 (The 4 Levels of GitOps Maturity)
2021年8月30日 | コンテナ、GitOps、GitOps成熟度、Kubernetes 著者: Paul Fremantle
GitOpsは、Kubernetesアプリケーションとクラスターの運用およびデプロイにおいて、急速に「ゴールドスタンダード」としての地位を確立しています。GitOpsの成功を客観的に測る尺度は、主にDevOps関連の指標によって決定されます。これらのDevOps指標には、速度(velocity)、デプロイ頻度、復旧時間などが含まれます。これらの指標は、ビジネスの競争力と成功に密接に関連しています。つまり、ソフトウェアをより良く提供できる組織は、より優れた競争力を持つことになります。
これまで不足していたのは、チームが組織に合わせてGitOpsを効果的に使用する方法を理解するのに役立つアプローチでした。これは、GitOpsのベストプラクティスと運用効率がどの程度導入されているか、そして今後どれだけ導入する必要があるかを判断する基準となり得ます。この目的のために、最近作成された
GitOps成熟度モデル(GitOps Maturity Model)
は、組織がGitOpsを導入する際に通常経る4段階のアプローチを提示します。これは、単一のクラスターとアプリケーションの管理から始まり、数百または数千のクラスターにわたる大規模なデプロイ管理へと進むためのガイドとして活用できます。
Thoughtworksの著者であるマーティン・ファウラー(Martin Fowler)によると、成熟度モデルとは「個人やグループの現在の有効性を評価し、パフォーマンス向上に向けて次にどのような能力を習得すべきかを特定するのに役立つツール」です。この文脈において、GitOps成熟度モデルは、組織がGitOps導入プロセスのどの段階にあるかを判断できるシンプルなモデルです。このモデルは、最も基本的な段階(つまり、定義をGitに保存し、継続的な調整なしにCIシステムにプッシュする段階)から、最も高度な段階(数千のクラスターにわたるデプロイを拡張するためにGitOpsに依存できる能力)までを網羅しています。
段階的な向上 (Leveling Up)

GitOps成熟度モデルが示す進化の4段階と、組織が価値を得ながら進むプロセスは以下の通りです。
- レベル0 (Level 0): 組織がクラウドネイティブおよびコンテナ化されたインフラストラクチャに移行し、デプロイ構成をGitに保存しているものの、
継続的な調整(reconciliation)
が行われていない段階です。この段階のチームは、インフラストラクチャのプロビジョニング速度の向上、再現性、不変性(immutability)などのメリットを一部享受できます。 - レベル1 (Level 1): この段階では、GitOpsを使用してアプリケーションをデプロイし、
調整およびドリフト検出(drift detection)
を通じて、実行中のアプリケーションがGitに保存された意図された状態(desired state)と継続的に同期されるようにします。セキュリティが強化されたGitOpsデリバリーパイプラインを通じて自動化と標準化を実装することで、デプロイ頻度、運用可視性、監査可能性を大幅に高め、コストと平均復旧時間(MTTR)を削減できます。 - レベル2 (Level 2): 組織がクラスター作成および管理を含む全体環境にわたって、プロセス標準化、自動化、制御、セキュリティというGitOpsの概念を適用する段階です。これにより、インフラストラクチャ全体とアプリケーションにメリットがもたらされ、チームはより自律的に作業できるようになります。プラットフォーム運用チームは、ガバナンス、リスク、コンプライアンスプロトコルを遵守しながら、チーム人員を増やすことなくクラスター数を拡張できます。
- レベル3 (Level 3): 大規模環境で一貫性、明確なポリシー適用、速度を確保するために、GitOpsで
クラスターフリート(fleets of clusters)
を管理し始める段階です。この段階の組織は、クロスクラウドベンダーの選択肢、高度なポリシーモデル、大規模デプロイ、そして数千のクラスターに対する可視性と制御権限を持つことができます。
基本を超えて (Moving Beyond the Basics)
成熟度モデルは、組織がGitOpsの道のりのどこにいるかを評価するだけでなく、DORA指標を改善するための次のステップを決定するのに役立つツールでもあります。DORA指標は、ビジネス目標および競争力と密接な相関関係があることが証明されています。実際、多くの事例でGitOpsは、組織がDORA指標の「エリート(elite)」レベルに到達するのに役立つことが証明されています。このようにして、GitOpsの技術的メリットとビジネスパフォーマンスの間には明確なつながりが形成されます。
だからといって、すべての組織が同じ経路をたどるべきだという意味ではありません。一部の組織はすぐに高い段階に飛び越えたいと考えるかもしれませんし、他の組織は高い段階まで行く必要がないと判断するかもしれません。しかし、明らかなのは、GitOpsの真のメリットはレベル1から始まるということです。
開発チームは、オープンソースのGitOpsツールを使用してレベル1(「アプリケーションGitOps」)を簡単に達成できます。これにより、アプリケーション開発者とDevOps専門家は、アプリケーションを迅速に構成し、GitリポジトリからすべてのKubernetesクラスターに継続的にデプロイおよび調整できます。例えば、Weave GitOpsはFluxを使用してドリフト検出、イメージ自動化、調整を実装し、クラスターがGitの特定のブランチやフォルダーを正確に反映するように保証します。
大規模な組織の場合、プラットフォームチームはエンタープライズオープンソースツールを使用して、複数の地域、ゾーン、またはマルチクラウドにわたる多数のクラスターを作成および管理できます。これは、AWS、Azure、Google、VMwareなど、多くのクラウドプロバイダーがサポートするCluster API(CAPI)に依存します。クラスター構成の変更も、レベル1のアプリケーションと同様の方法で調整されます。各開発チームは、自身のワークロードをこれらのクラスターに継続的にデプロイおよび調整できます(つまり、レベル2はレベル1のすべてのメリットを含みます)。
ごく一部の大規模組織のみが次の段階に進み、同一の構成を持つ多数のクラスターを定義することで「フリート管理(Fleet management)」を実装しています。代表的な例として、ドイツテレコム(Deutsche Telekom)のDas Schiffプロジェクトがあります。これは、GitOpsを使用して数千のエッジクラスターに5Gワークロードを一貫して効果的に配信するように設計されています。ただし、すべての組織がレベル3のような要件を持つわけではありません。
まとめ (Bringing It All Together)
GitOpsは、GitリポジトリをCDパイプラインの動的なサポートのための「単一の真実の情報源(Single Source of Truth)」とする、高度に協調的なプロセスで構成されます。GitOpsのメリットは数多くあり、現在ではより広く理解され始めています。また、技術分野の主要ベンダーの間でKubernetes運用モデルの標準として台頭しています。Amazon、Codefresh、GitHub、Microsoft、Weaveworksなどは、CNCFのGitOpsワーキンググループ内でGitOpsの原則と技術的側面について協力し、その採用を支援しています。
GitOpsがこれほど注目される主な理由の1つは、それが人、プロセス、技術の交差点にあるためです。組織内の複数のチームとすでに効果的に機能しているよく知られたプロセスに基づいているため、組織およびチーム文化によく溶け込みます。
GitOps成熟度モデルは、GitOpsをサポートする次のステップと見なすことができます。つまり、組織がGitOpsを導入するためにより構造化されたアプローチを計画するのを助けるものです。あなたの組織がこの4段階とまったく同じ経路をたどるかどうかにかかわらず、一般的な発展過程を理解することは有用です。デプロイ方法がなぜこのような道のりを経て発展するのか、そしてGitOps成熟度を高めたときに得られるメリットが何であるかを理解できるからです。
コメントを残す