GitHub対JFrog: どちらがDevOpsのために仕事をしてくれるのか?

製品を選択し購入するのは仕事をするためです。DevOpsのために、2つの優れた候補から選択することは大きな賭けになります。その採用に企業の成否がかかっています。

最高の候補であるJFrogとGitHubの2つがあります。では、どちらが最適かを判断しましょう。競合する機能だけでなく、どちらが仕事を成功させるための最善の方法を提供してくれるのでしょうか?

候補: GitHubとJFrog

GitHubには素晴らしい経歴があります。ソースコード・コラボレーションツールの業界標準を打ち立て、GitHubのバージョン管理システム(VCS)はすでに開発パイプラインで重要な役割を果たしているかもしれません。現在ではMicrosoftの一部となったGitHubは開発者からの信頼を得ているだけでなく、最新のGitOpsプラクティスを通じて、運用側からも信頼されるようになってきています。

GitHubはCI/CDを実行するためのGitHub Actionsとローカルパッケージ型リポジトリGitHub Packagesに基づいて構築されています。また、マイクロソフトが買収したDependabotを統合し、OSSセキュリティの脆弱性監視を提供しています。

一方、JFrog DevOps PlatformArtifactoryを利用しています。Artifactoryは多くのモダンなDevOpsプラクティスのパイオニアである優れたバイナリリポジトリマネージャです。JFrog Platformはエンドツーエンドのソフトウェアデリバリのための統一されたシステムの下でソフトウェアを構築(JFrog Pipelines)、セキュア(JFrog Xray)、配布(JFrog Distribution)するのに役立つスケーラブルなソリューションで構成されています。

仕事: 責任と義務

DevOpsを成功させるためには選択したソリューションで重要事項をすべて満たせなくてはなりません。ここではGitHubとJFrogを比較し、それぞれが仕事をどの程度こなすことができるかを見てみましょう。

リリースの高速化

私たちの長年の経験が証明しているのは「DevOpsの達成はバイナリが全てである」ということです。

ソフトウェア開発の主役はコードであり、品質の良いコードはその書き方を知っている人たちに力を与えることで生まれます。

ソフトウェアデリバリの主役はバイナリであり、品質の良いビルドを作成し、顧客のデバイスに迅速に届けることです。高品質のバイナリはバイナリ管理と配布方法を知っているスマートなシステムから生まれます。

そのためには:

JFrog GitHub
Automation: Natively integrated CI/CD
Build Promotion for Release Staging X
Extended Metadata for Traceability X
Advanced Query Language X
Proxy Repository Caching X
Distribution Solution X
End-to-End DevOps Solution Limited

 

自動化とプロモーション

GitHub ActionsとJFrog Pipelinesはビルドを作成するCI/CDの自動化を提供しています。しかし開発、テスト、本番のSDLCステージを通してビルドを移動できるように設計されているのはJFrog Platformだけです。Pipelinesのネイティブステップにより、Artifactoryの連続したリポジトリを介して、メタデータを含む変更できないビルドを安全かつ迅速にリリースするための自動的なプロモーションを容易に実現できます。

拡張メタデータと拡張クエリ言語

自動化には情報とそれを上手く利用する能力が必要です。アーティファクトのメタデータが完全であればある程、ビルドを作成や安全にロールバックするための自動化がより洗練されたものになります。

GitHub Packagesは保存するアーティファクトの基本的なメタデータのプロパティを保持しています (例えば作成日、依存関係の数、ダウンロード状況など)。しかし、独自のカスタムプロパティでアーティファクトのメタデータを拡張する機能はありません。結果として、GitHub GraphQLクエリAPI は効果的なアーティファクト管理に必要な高度なクエリ機能を提供することができません。

Artifactoryは全てのアーティファクトの完全なクエリとトレーサビリティのための豊富な拡張メタデータを保持しており、全てのビルド、パッケージ、リリース・コンポーネントの完全な情報を保持し、再現を可能にします。Artifactoryのメタデータは拡張可能なため、DevOpsエコシステム内の他のツールでもカスタムプロパティを変更することができます。この堅牢なメタデータとクエリ言語はArtifactory内での使用状況とインパクト分析だけでなく、エクスポートも可能です。

プロキシによるリポジトリのキャッシング

GitHub Packagesはプライベートパッケージ型のリポジトリを維持できます。ただし、パブリックリポジトリへの外部接続に翻弄されることになります。Artifactoryのリモートリポジトリはオープンソースのパッケージをプロキシリポジトリにキャッシュできるため、ローカルリポジトリと同等のアクセス速度を提供し、接続できない状況を防止できます。

エンドツーエンドとディストリビューション

JFrog Platformはコードのビルドから本番環境への配信までを行う、完全なDevOpsソリューションです。HelmからKubernetesへのデプロイを可能にするだけでなく、JFrog PlatformはCDNピアツーピア・ディストリビューションをサポートしています。JFrog Distributionを使用することで署名済みリリースバンドルを作成し、大規模なデプロイメントのためにエッジノードに安全に配信することができます。

 あなたの環境とつながる

多目的に利用できるようにするにはDevOpsプラットフォームが開発チームで使用する全てのテクノロジーをサポートし、必要なツールとシームレスにインテグレーションできる必要があります。

JFrog GitHub
Package Types 29+ 5
Cloud Native Artifacts Limited
REST APIs and CLI
Out-of-the-Box Integrations X
Available integrations

パッケージタイプ

GitHub Packagesは4言語に対応した5つのパッケージタイプと現在パブリックベータ版として公開されているDockerリポジトリ管理をサポートしています。

Artifactoryは25種類以上のパッケージタイプとそれ以外のバイナリを保存するためのGenericリポジトリをサポートしています。GitHubのソースリポジトリをプロキシを通してキャッシュしたり、Artifactoryリポジトリを利用してGitラージファイルストレージを保存することもできます。

Artifactoryのユニバーサルパッケージ管理は全ての開発チームが現在利用している言語と依存しているものを利用して作業できることを保証するだけでなく、成長企業は新しいビジネスラインや買収から新しいチームが開発者業務へ容易に統合させることができます。

Language or OS JFrog Artifactory (partial) GitHub Packages (entire)
Javascript
Java
Java,C/C++,etc.
Javascript
Python
.NET
Golang
Docker
Helm
C/C++
iOS
PHP
Ruby
Linux, Yum
GNU Linux
npm/Yarn
Apache Maven
Gradle
Bower
pip/twine
Nuget
Go modules
Docker
Helm charts
Conan
CocoaPods
PHP Composer
RubyGems
RPM
Debian
npm/Yarn
Apache Maven
Gradle


Nuget

Docker (in beta)




RubyGems

クラウドネイティブなアーティファクト

GitHub PackagesソリューションはDockerイメージのプライベートなコンテナレジストリをサポートしています。この機能は比較的最近追加されたもので現在はパブリックベータ版として公開されています。公開されているイメージはGitHub Container Registryのベータ版で無料でホストすることができます。どちらのソリューションもまだOCIに準拠しておらず、またHelm chartリポジトリをホストすることもできません。

Artifactoryはパブリックとプライベート両方のDockerレジストリをホストでき、OCIに準拠しており、 Helm 2と3のリポジトリをサポートしています。豊富なビルド情報のメタデータを維持することでArtifactoryは完全なKubernetesレジストリとして機能し、クラスタにデプロイされたすべてのビルドに対して完全に追跡が可能となります。 

独自のコンテナリソースを安全にホスティングするだけでなく、ArtifactoryはDocker HubやGitHub Container Registryなどのパブリックレジストリをプロキシし、キャッシュすることが可能であり、スピードとそれらが利用できない場合の対策も提供します。またインテグレーションパートナーとしてDockerは全てのJFrogクラウドサブスクリプションにDocker HubとDocker正式イメージへの無制限で高パフォーマンスなアクセスを提供します。

APIとインテグレーション

GitHubとJFrogはインテグレーションを可能にするREST APICLIを提供しています。両方をレビューしてください —  JFrogが多機能な自動化のためのより包括的なセットを提供していることが分かると思います。

GitHub ActionsとPackagesはGitHubソースコントロール・リポジトリと密結合されています。JFrogプラットフォームはエンドツーエンドのDevOpsを提供しますがJenkins、CircleCI、GitHub ActionsなどのCI/CDツールと一緒にArtifactoryを使用することもできます。JFrogはいくつかのインテグレーションを提供していますが、テクノロジーパートナーとのインテグレーションの大規模環境から選択することもできます。

ビジネスの保護

強力なDevSecOpsを実践するということは最高のリスクデータを持ち、その結果を解釈して安全性とコンプライアンスを遵守できることを意味します。またソフトウェアの生産プロセスに沿って、全員がセキュリティを意識できるようにすることも意味します。

JFrog GitHub
DevSecOps Included Limited
Extended Vulnerability Database X
License Compliance X
Automated Enforcement Policies X
Impact Analysis X
IDE Integrations to Shift Left X

 

脆弱性、ライセンス、実施

GitHubのDependabotセキュリティは個々のリポジトリのマニフェストをGitHubの脆弱性データベースと照合してスキャンし、検出された全てのリスクを特定します。これにより、アプリケーションの各依存関係を最新の安全なバージョンに修正できます。

JFrog XrayはグローバルデータリーダーであるRisk Based SecurityのVulnDBによって拡張されたJFrogのデータベースに対して、監視する全てのArtifactoryリポジトリ内のバイナリに詳細な再帰的スキャンを実行します。またXrayはライセンスが組織のポリシーや規制基準に準拠していないオープンソース・パッケージの使用にもフラグを立てます。またリスクの深刻度やCVSSスコアに応じてビルドを失敗させるために、Xrayの詳細なルールやポリシーを設定できます。

インパクト分析

Dependabotは各リポジトリを個別に調査しますが、Xrayはポリシー違反の全範囲を示すインパクト図を通じて、バイナリーエコシステム全体へのリスクの影響を明らかにします。

シフトレフト

脆弱性の検出と解決が早ければ早いほど、プロダクションコストが下がり、リリースが迅速になります。一般的なIDE用のXrayプラグインを使用することで、開発者にセキュリティ意識をシフトレフトさせることができ、コードコミット前でもOSSの脆弱性にフラグを立て、修正することができます。

無限大へ拡張

ビジネスは立ち止まっている訳にはいきません。グローバルに成長するためには、あらゆるチャンスを掴むことができなければなりません。限界はなく、どこから始めようともツールが追従できなければなりません。クリティカルパスのオペレーションは現在のニーズにマッチしているだけでなく、将来のニーズに対応するためのビジネス・アジリティを中断することなく実現しなければなりません。

JFrog GitHub
Expandable High Availability Limited
Regional Geo-Replication
Multicloud Offering X
Hybrid Solution Limited
Scalable, Cloud Native CI/CD Limited
Unlimited number of users X

 

拡張可能な高可用性

GitHubとJFrog は複数の負荷分散されたインスタンスを使用した高可用性(HA、別名「クラスタ化」)デプロイメントをサポートしており、迅速なレスポンスタイムを保証しながら、アップグレードを実行する際にフェイルオーバー保護とゼロ・ダウンタイムを実現します。ただし、GitHubのHAサポートにはPackages、Action、Dependabotセキュリティは含まれていません。

 

マルチクラウドとハイブリッド

GitHubは全てのクラウド(SaaS)サービスレベルを単一の不特定多数のクラウドプラットフォーム上でホストしているため、マルチクラウドの冗長化は不可能です。セルフホスティングやオンプレミスではGitHub Enterprise Serverを利用でき、Enterprise Cloudアカウントと組み合わせてハイブリッドシステムを構築することができます。GitHub Connectを介して両者を結合することで、統一された検索とコントリビューションを実現します。

JFrog Cloud(SaaS)は全ての主要なクラウドプロバイダーでホスティング(AWS、GCP、Azure)が可能でクラウドプラットフォームを選択し、マルチクラウド戦略のために複数のクラウドプラットフォームを維持することができます。JFrog Platformのすべてのサブスクリプションレベル(Pro、Team、Enterprise、Enterprise+)はセルフホスティングまたはオンプレミスで利用でき、リポジトリの地理的レプリケーションを通じてハイブリッドシステムを構築するために、任意のJFrog Cloudアカウントと組み合わせることができます。

スケーラブルなクラウドネイティブCI/CD

GitHub ActionsはGitHubのソースコード管理と密接に結びついており、ワークフローを GitHubリポジトリと密接な連携やGitHubイベントをトリガーにしてワークフローを実行できるようになっています。開発者は標準アクションからワークフローの構築やリポジトリ内で使用するためのカスタムのプライベートアクションを作成することができます。

JFrog PipelinesはGitHubやGitLab、Bitbucketとすぐにインテグレーションでき、それぞれが任意のリポジトリのイベントでトリガーするように設定することができます。Pipelinesは任意のリソース変更でトリガーするように構成することもでき、複雑で複数の入力ワークフローを可能にし、ファンイン/ファンアウト操作のために他のワークフローをトリガーして “パイプラインのパイプライン“を作成することもできます。

Pipelinesワークフローは「ネイティブステップ」の共通ライブラリとチームや部門間で共有できる拡張ステップを使用して構築することができます。

無制限のユーザー数

ライセンス料がユーザーアカウントの数によって決定する場合、拡張や買収費用が大幅に増加することがあります。JFrogの無制限のユーザーライセンスでは、そのようなことを考える必要はありません。

メリット

DevOpsは既存の手順を少し改善しただけでは実現しません。DevOpsとは仕事のやり方を変えることです。適切に実行すればソフトウェア開発プロセスをデジタル化し、世界中のエンドユーザーに迅速かつ継続的で安全なアップデートを提供することができます。

今や職務内容は迅速なリリース、ユニバーサル接続、企業の保護、無限の拡張であることが明確になりました。JFrogがそれを可能にする最善の方法であることをご理解いただければ幸いです。これは当初から当社が専門家として取り組んできた分野です。

選択は排他的である必要はありません。JFrogのGitリポジトリへのインテグレーションとGitHub Actionsを含むほとんどのCI/CDツールとインテグレーションできる機能により、多機能なJFrogを利用することで自分に最適なツールで作業することができます。

JFrogでは以下のお手伝いをさせていただきます: 

抜本的な変化を必要とする場合には従来のものを追加するだけでは効果がありません。変革的なソリューション、特に他の場所で機能することが証明されているものを検討する必要があります。これがフォーチュン100社の75%がミッションクリティカルなアプリケーションのバイナリを管理するためにJFrogをご利用頂いている理由です。

こちらからクラウドを無償で始めましょう。