リポジトリマネージャ機能比較:Artifactory 対 Nexus

Artifactory vs. Nexus
注)このブログ記事は2011年2月にJFrog CEOのShlomi Ben Haimによって執筆されたものですが、JFrogの最新技術を反映するために今回JFrog CPOのDror Bereznitskyによって更新されています。

 

この記事を読んでいる方はおそらく「Artifactory Nexus 比較」とGoogleで検索するなどして、どちらの製品を使うべきか評価したいのではないかと思います。そうであればこの記事は正解です。この記事はもともとArtifactoryとNexus(そしていくつかのバイナリリポジトリ利用の候補製品)を比較したずっと前に書かれたもので、サポートしているビルドツールやCI/CDサーバについての要約でした。その後リポジトリマネージャは広く利用されることになり、今日ではDevOpsにおける必須のツールとなっています。JFrogは自由な選択肢を提供してきたため現在では5,000社以上もの顧客に強く支持されています。しかしDevOpsが世界中でデファクトスタンダードになるにつれ、ArtifactoryとNexusを比較する際にはDevOpsの利用を前提にする方向に変わってきました。そのためこれら2製品を比較するときには以下の点を考慮する必要があります。

クラウド、オンプレミス、ハイブリッドのサポート

クラウドコンピューティングが話題になり始めたとき、私たちは自前のサーバはすべてクラウドに置き換わるかのように思えました。しかし間もなく「クラウド」は唯一の選択肢になるとは限らないことがわかりました。つまりリポジトリマネージャの使用を検討するときにはクラウド戦略をサポートしマルチクラウドとハイブリッドクラウド両方のソリューションを提供できる製品なのか見極めることが重要だということです。

特長ArtifactoryNexus
オンプレミスのサポートはいはい
クラウドのサポートはいいいえ
マルチクラウドのサポートはいいいえ
ハイブリッドクラウドのサポートはいいいえ

DevOpsのアーキテクチャ要件を満たすには、リポジトリマネージャはオンプレミス、クラウド、もしくは両方を使用するハイブリッドのうち、どれも選択できる必要があります。クリックしてツイート

DevOpsの自動化

自動化しなければ、それはもはやDevOpsではありません。リポジトリマネージャは完全に自動化されたDevOpsパイプラインの中心的な存在です。開発、品質保証(QA)や品質管理(QC)、継続的インテグレーション(CI)や継続的デリバリー(CD)、ディストリビューションおよびデプロイの各プロセスに必要なすべてのREST APIのエンドポイントが提供されていることがポイントになります。

特長ArtifactoryNexus
REST APIでほぼすべてのUI機能をサポートはいいいえ
REST APIが上位/下位互換性どちらもサポートはいいいえ

DevOpsの自動化を完全にサポートするためには広範囲かつ堅牢なREST APIを公開しているリポジトリマネージャが必要です。クリックしてツイート

メタデータが命

バイナリのアーティファクトが関連するビジネスロジックをサポートするには非常に多くのメタデータが必要になります。Artifactoryはキング・オブ・メタデータなのです。さまざまなパッケージ形式のバイナリに付属する標準メタデータに加えて、Artifactoryではさまざまなプロパティが追加され、さらにカスタムプロパティを追加することもできます。その上Artifactoryはホストするすべての詳細なビルド情報を格納し、この豊富なメタデータに基づいてアーティファクトを検索できるシンプルで柔軟性の高いArtifactory Query Language (AQL)を提供します。これほど広範囲なメタデータの使用を可能にするアーティファクトリポジトリは市場では他にありません。

特長ArtifactoryNexus
詳細なビルド情報はいいいえ
メタデータに基づいて検索できる非常に柔軟なクエリ言語はいいいえ

バイナリのアーティファクトが関連するビジネスロジックをサポートするにはリポジトリマネージャが詳細なメタデータとビルド情報を提供する必要があります。クリックしてツイート

どんなアーティファクトにもフィットする万能サイズのストレージは存在しない

他と同様にストレージの選択も自由です。リポジトリマネージャを選ぶときは特定のプロバイダに縛られない主要なクラウドベンダーをサポートしていることを確認してください。また、ビジネスの成長に合わせてシームレスに拡張でき、比類のない安定性と信頼性を提供する高度なストレージソリューションが必要な場合はファイルストアのシャーディングを考慮することも必要です。

特長ArtifactoryNexus
すべての主要クラウドベンダー(AWS, GCS, Azure Blob)をサポートはいいいえ
ファイルストアのシャーディングはいいいえ

 

タイムロスなく共同で作業できる複数のインスタンスが必要

DevOps環境にとってリポジトリマネージャがどれだけ重要なのか理解が深まると、単一のインスタンスではグローバルなDevOpsのニーズを満たすには十分ではないことがわかります。社内でバイナリを管理するためには複数のサイトにまたがるさまざまなグループを作る必要があります。しかしもっと重要なことは他のグループと共同で開発したバイナリをどうやって共有するのかということです。これはあるサイトから別のサイトへバイナリを積極的にコピーして展開しなければならないということを意味しています。各グループのさまざまなニーズと配置されている場所に応じてプッシュとプルでレプリケーションを行うのが一般的には最良の解決策でしょう。グローバルなDevOpsプロセスにおいて異なる複数サイトのトポロジをサポートするためにはリポジトリマネージャがさまざまなレプリケーションモードをサポートしている必要があります。

特長ArtifactoryNexus
リモートプロキシ経由のプル・レプリケーションはいはい
特定のサイトへのアクティブプッシュ・レプリケーションはいいいえ
複数サイトへの同時アクティブプッシュ・レプリケーションはいいいえ
イベントベースのプル・レプリケーションはいいいえ

リポジトリマネージャは異なる複数サイトのトポロジに合うさまざまなレプリケーションモードをサポートすべきです。クリックしてツイート

将来性のある対応

現在使用している開発ツールやDevOpsツールが何であれ、新しいテクノロジが受け入れられたと思うとあっという間に市場を支配してしまうペースは凄まじいものがあります。ほんの2、3年前にコンテナ業界の最先端だったDockerは現在では業界のスタンダートとなっています。今日ではKubernetes、Helm、Goが定着しつつあります。リポジトリマネージャは新しいDevOpsツールと一緒に使用することができ、 あらゆるパッケージ形式を柔軟にサポートしている必要があります。

特長ArtifactoryNexus
あらゆるリポジトリレイアウトをサポートし、あらゆるパッケージ形式にネイティブに対応はいいいえ

JFrog Artifactoryは未来のテクノロジに柔軟に対応します。あらゆるリポジトリレイアウトをサポートし、あらゆるパッケージ形式にネイティブに対応します。クリックしてツイート

もちろん他にも考慮しなければならない基準があります。まずは普遍性、つまり他のDevOpsツールと併用可能であらゆるパッケージ形式を完全にサポート可能であるか、次にエンタープライズ対応かどうか(高可用性、大規模に拡張可能なスケーラビリティ、あらゆるレベルのセキュリティ)が重要になります。しかし結局のところ同じカテゴリの競合製品をとことん評価するには業務レベルで実際に使用してみることがもっとも重要です。製品の評価を始める前に現在のニーズを把握することも重要なことですが、今後1〜2年、あるいは5年先に出てくるかもしれないニーズが何であるかを予想することも同じくらい大事です。リポジトリマネージャはDevOpsエコシステムの最前線で重要な役割を果たします。そしてビジネスが成長するにつれて変化していく全てのニーズを的確に満たすことができる製品を選ぶ必要があります。