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

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

 

この記事を読んでいる方の多くは、おそらく「Artifactory Nexus」と検索してどちらの製品を使うべきか気になっていると思います。この記事はもともとArtifactoryとNexus(そしてバイナリリポジトリスペースで使用する他の候補)とを比較したときに書き直されたものです。その後リポジトリマネージャは主流になり、今日ではすべてのDevOpsツールで不可欠な部分になりました。当時、私たちは多くの選択肢を提供していたため、現在では5000社以上もの顧客に支持されることになりました。しかし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エコシステムの最前線で重要な役割を果たします。そしてビジネスが成長するにつれて、変化していくすべてのニーズを的確に満たすことができる製品を選んでください。