2022年5月24日
DevOps
あなたの組織に最適な GitOpsツールを選ぶために、最適なツールをリストアップしました。オープンソースと有償のツールを取り上げ、機能を比較しました。市場に ある GitOpsツールを公平に評価するためにお読みください。
GitOpsプロジェクトは、完全に宣言的なデプロイメントと生産性向上の魅力によって、ソフトウェアエンジニアリングチームを席巻しています。企業は、スケールの大きなGitOpsを簡素化し実現するためのツールを提供しようと躍起になっています。現在市場に出ているさまざまな GitOpsソリューションをすべて解析するのは難しいので、このブログでは、最適な GitOpsツールを探すための出発点となる情報を提供します。
GitOpsは、Gitリポジトリを中心としたデプロイメント手法で、Gitリポ ジトリにマージされた新しいコードは、リアルタイムで様々な環境やクラスタにデプロイされるきっかけとなります。Gitは開発者コミュニティで親しまれているツールなので、GitOpsは開発者中心のデプロイメント戦略として注目されています。
GitOpsは継続的デリバリーを実現する新しい方法ですが、過去数年にわたりインフラ管理で利用されてきました。運用チームは、新しい環境、クラスタなどの作成に費やすリソースを減らすために、クラウドインフラストラクチャのプロビジョニング要求を自動化する方法を必要としていたのです。提案されたソリューションは、コードとして保存された設定ファイル(infrastructure as code)を使用して、新しいデプロイメントに対してオンデマンドで異なる環境や新しいクラスターをスピンアップするものでした。インフラストラクチャーチームは、宣言型インフラストラクチャーを管理するための安全で再現可能な方法を確立するまで、このプロセスを繰り返し実行しました。
インフラストラクチャチームがGitOpsで成功したことを考えると、この手法がソフトウェアデリバリーのユースケースに適用されるのは時間の問題でした。GitOpsのデプロイメントを可能にするために、いくつかのツールが作成されました。これらのツールは、コードの変更に関する 単一の真実のソースとして、Gitリポジトリを使用します。そして、コードの変更を検出し、アプリケーションの状態をGitに格納されている状態に同期させます。パイプラインやステージ、承認を扱う代わりに、開発者は完全に宣言的でロータッチなプロセスを通じて、イメージや新機能をデプロイできるようになりました。
ベンダーは、GitOpsのデプロイメント市場のリーダーになるチャンスに飛びつきました。ベンダーは、基本的なGitOpsのアプローチを補完するために、エンタープライズ機能を追加し始めました。
このブログでは、GitOps市場で活躍している様々なベンダーについて、また、あなた自身のGitOpsの旅を始めるために評価すべきツールについて説明します。GitOps全般についてもっと知りたい方は、「GitOpsとは何か」ブログをご覧ください。
GitOpsソリューションを評価する際には、必須機能、使いやすさ、企業向け機能という 3つの主要なカテゴリーを考慮する必要があります。
すべてのGitOpsソリューションには、ドリフト検知やアプリケーションの同期といった機能が含まれているはずです。ソリューションによっては、必要不可欠な機能をよりよく提供できるものもあります。しかし、これらの必要不可欠な機能を持たないソリューションは、GitOps ツールとして実行可能かどうか疑問視されるでしょう。
ソフトウェアツールは、使いやすさがあってこそのものです。GitOpsはシンプルなデプロイメント手法ですが、セットアップや望ましい状態への拡張が難しい場合があります。このリストに掲載されたツールは、お客様の使い勝手や開発者の体験談を総合的に判断して評価されます。
GitOpsは単独で存在することはできません。ベロシティとスケーラビリティを実現するためには、GitOpsと一緒に働く一連の機能と製品が必要です。ここでは、GitOpsツールがもたらすエンタープライズ向けの追加機能について説明し、ユーザーが完全にコントロールできるようにします。
Argo CDは、市場で最も人気のあるオープンソースのKubernetes GitOpsツールです。セットアップが簡単で、素晴らしいGUIとダッシュボードを備えているため、開発者は「The best thing since sliced bread(スライスブレッド以来最高のもの)」と呼んでいます。Argo CDは、Kubernetesを使用する際の複雑さを抽象化します。コードをデプロイするためにKubernetesの博士号を持っている必要はなく、ユーザーはコードをGitにコミットするだけで、その変更が適切な環境に同期されるのを見ることができるのです。
Argoは、GitOpsの基本的な機能に秀でています。直感的に使えるツールで、セットアップにかかる時間も労力も少なくて済みます。しかし、あなたの組織にとって適切なツールでしょうか?Argoには、デプロイの安全性とコンプライアンスを維持するために必要なエンタープライズ機能が欠けています。監査証跡、インスタンスの集中管理、ロールベースアクセスコントロール(RBAC)などの機能は、Argoプラットフォームでは後回しにされているか、まったく存在しません。GitOpsはソフトウェアをすばやくデプロイするための方法ですが、さまざまな開発チームにまたがって GitOpsを拡張するつもりなら、こうしたエンタープライズ向けの機能が必要になるでしょう。
FluxもArgoと同時期に登場したオープンソースのソリューションである。Weaveworksによって作成され、現在CNCFのインキュベートプロジェクトとなっている。Fluxは、コマンドラインインターフェース(CLI)ファーストのアプローチをとっており、ユーザーインターフェースは後から追加することができるようになっている。このため、多くの開発者にとってネガティブな印象を与えている。ダッシュボードは手動で設定しなければならず、GitOpsの管理を難しくしています。とはいえ、Flux は GitOpsを使い始めるためのフレームワークを提供しますし、開発者のなかには無意味な CLI アプローチを好む人もいます。
Fluxでも基本的な GitOpsのワークフローは実現できますが、多くのユーザーは Flux の方がセットアップに時間がかかると言っています。Argoと同様、Fluxも企業向けに拡張できるような機能を追加する必要がある。セキュリティとガバナンスのコントロールは、カスタムスクリプトを作成するか、開発チームがコンプライアンス基準を満たすための非公式なプラクティスを作成しなければならないだろう。
CodeFreshは、Argoを利用した独立系の継続的デリバリー・ツールです。CodeFreshが作成したラップアラウンドソリューションは、新規および既存のArgoインスタンスを管理し、可視性とセキュリティを向上させる役割を果たします。これは、エンタープライズグレードのコントロールと可視性を強化したArgoCDを使用する方法をユーザーに提供します。CodeFreshは、セキュリティ、一元管理、およびコンプライアンスのための監査証跡を提供します。
CodeFreshは、ArgoCDのユーザビリティと機能性を提供すると同時に、GitOpsを拡張するために必要なエンタープライズ・ギャップを埋めることができます。CodeFreshを使うチームメンバーは、GitOpsの原則を実践しながら、GitOpsのプロセスをコンプライアンスに保つために必要なガードレールを作ることができるようになります。しかし、GitOpsはDevOpsの1つのサブセットに過ぎず、先に述べたように、単独では存在し得ないのです。CodefreshはCDパイプラインやフィーチャーフラグを提供しません。DevOpsチームが真のContinuous Deploymentを実現したいのであれば、これらのコンポーネントが必要になります。
ウィーブワークスは、オープンソースのFluxのためのラップアラウンドソリューションです。Weaveworksは現在、SaaS 製品を提供していない。その代わり、Weaveworksは顧客向けに Fluxソリューションを構築している。将来的には、独立した企業向け製品をリリースする予定です。
Weaveworksは、集中型ダッシュボードによって GitOpsデプロイメントの可視性を高めている。また、RBACや監査証跡などの高度なガバナンスコントロールも提供する。
Weaveworksを詳しく見てみると、Flux の基本的な機能であり、エンタープライズソリューションを作成するためには手動でスクリプトを作成する必要があることがわかります。短期的にはGitOpsの基本的なツールキットとして機能しますが、長期的にはプロセスを更新するたびにFluxを管理することになります。もちろん、これはWeaveworksがSaaSソリューションをリリースしたときに変更される可能性がある。CodeFreshと同様、Weaveworksはデリバリーパイプラインと、あなたの組織でソフトウェアデリバリーを成功させるために必要な追加の製品と機能を欠いています。
GitLabは、コアとなるオープンソース版と、購入可能な追加機能を含むアプリケーションデリバリープラットフォームを提供しています。GitLabは、GitOpsを含むCDツールのシングルソースになりたいと考えています。
GitLabは、ソースコード管理とCI/CDがプラットフォームの一部であるため、この分野では興味深 いプレイヤーです。つまり、GitLabのユーザーは、GitOpsとソフトウェアデリバリプロセス全体を管理するための単一のアプリケーションを持つことになる。
彼らのCI/CDプラットフォームは、GitOpsだけにフォーカスしたソリューションに代わる魅力的な選択肢のように見えます。しかし、GitLabをよく見てみると、真のGitOpsの機能が欠けていることがわかります。GitLabは、コードとしての環境、コラボレーションのためのプラットフォーム、CI/CDのための自動化されたプロセスを提供することでGitOpsを「可能に」します。評価基準で述べたように、真のGitOpsソリューションは、ドリフト検知とアプリケーションの同期を提供する必要があります。GitLabは、これらのいずれかを直接行う方法を持たないので、GitOpsという用語は彼らのプラットフォームには適用されないはずです。私たちは、別のアプローチを推奨します。
Harnessは、商用およびエンタープライズグレードのソフトウェアデリバリープラットフォームの第一人者です。Harness CDは、継続的デプロイメント・パイプライン・アプローチとGitOpsアプローチの2つの方法でソフトウェアをデプロイすることができます。Harness GitOpsは、セキュリティとコンプライアンスを確保するためのエンタープライズ機能を備えた、直感的なソリューションです。開発者に最も効率的なソフトウェアデプロイ方法を提供すると同時に、DevOpsチームに拡張に必要なコントロールを提供したいと考える組織のために構築されました。
Harnessは、GitOpsに不可欠なすべての機能を提供し、セットアップと使用も簡単です。インスタンスの一元管理、きめ細かいRBAC、詳細な監査証跡など、市場をリードするセキュリティとガバナンスを提供します。最も重要なことは、Harnessがコードをプロダクションに移行するために必要な追加ツールをすべて提供していることです。アーティファクトを生成するクラス最高のCIソリューション、パイプラインとGitOpsを利用するクラス最高のCDソリューション、そして機能を安全に顧客にリリースするクラス最高のFeature Flagソリューションです。また、Harnessは、組織の時間とコストを削減するための他の多くのツールを提供しています。
GitOpsは、インフラの自動化から、DevOpsコミュニティでソフトウェアをデプロイするための好ましい方法へと変化しました。比較的新しい分野であるため、企業はGitOpsに使われる唯一のツールになろうと躍起になっています。
GitOpsパイプラインの作成のみに焦点を当てたツールについて説明し、ソフトウェアデリバリープロセス全体に焦点を当てた他のツールについても説明しました。ツールを評価するときには、GitOpsがあなたの会社でどのようにスケールするかを検討することをおすすめします。
GitOpsは真空中では存在できません。長期的に成功させるためには、完全なプラットフォームのサポートが必要です。GitOpsのデプロイプロセスを組織で実装する方法の詳細については、GitOpsの最新ベストプラクティスに関するブログをご覧ください。同じように、ソフトウェアデリバリープロセスをより強固にするためのCI/CDのベストプラクティスに関するブログにも興味があるかもしれません。
Harness GitOpsは、GitOpsの機能とプラットフォーム機能の最高の組み合わせであると信じています。Harness GitOpsにご興味をお持ちの方は、今すぐサインアップして無料でお試しください。
この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。