How can you compare one technology or tool to its competitors? Usually, there is no objective comparison available. So how do you know which is better? Eclipse or IntelliJ IDEA? Java EE or Spring? C# or Java? All you can usually find is a holy war and biased comparisons on vendor sites.
But luckily, sometimes, you can find a fair comparison. How does this come to be? By having it co-authored by the stakeholders. The binary repository comparison matrix is one of those rare resources. It is edited by JFrog, Sonatype and Archiva committers to provide you with an objective picture; every vendor adds new features and watches the others to make sure everyone plays fair.
The title refers to Maven, and indeed, all three are great Maven repositories. But this is where paths begin to part. Two repository managers still provide “first-class support” for Maven only. One goes beyond. Now, there’s nothing wrong with focusing on Maven (we place a lot of focus on Maven too), but when it comes to technology, lagging behind is a sure-fire recipe for failure.
Let’s enter the matrix…
Look beyond Maven
Which repository manager gives you full support for .NET, npm, Python, Ruby, Yum, Debian and Docker (yes, including browsing, searching and metadata)?
Did someone say “metadata”?
Metadata is how you think
Which repository manager has a whole query language to search for artifacts based on this metadata, because that’s how you think about your artifacts? (e.g. You want the latest file that works on the target platform and passed all the quality gates).
Which repository manager supports your DevOps culture? The one that both developers and operations, trust and use together. The one that supports both development related artifacts, like jars and gems and operations related artifacts like debs, rpms and Docker images.
CI and CD are mission-critical
Whether it’s your VCS, CI server or repository manager, when one of the tools in your delivery pipeline is down, the whole organisation can’t build. Which repository manager provides a true Active/Active high availability architecture?
Remote teams can use the same repositories, but oh, the latency. Which repository manager supports any network and firewall topology, with full push, pull and event-driven replication?
You call the shots
What about all the scenarios that the product creators could never imagine? You need a repository manager that supports your organisational CI/CD flows, not one with a “my way, or the highway” approach. Which repository manager is easily extendable with user plugins which are easy to write and to deploy?
Hopefully, you got the picture by now
The other day I encountered the following statement: “A good reason to migrate to “our thing” is because it’s the most widely used”. Even assuming that the claim of “most widely used” is correct (and we can’t assume that), since when does being most popular == being better? I vividly remember the days when EJB 2 was much more popular than Spring framework. Even today, COBOL is more popular than Groovy, not to mention Scala or other cool languages (talking about antiques!). And the funny part is that based on this very claim Sonatype is urging organizations to convert from Artifactory to Nexus!
Back to a dumb filesystem locked to Maven2, no CI server integrations and incredibly limited support for anything beyond maven (support for npm, for example, is even worse than .NET in the linked blog post). Back to setups that don’t support HA, and limited replication. Look, they specifically instruct you to exclude the metadata! “Go ahead, delete this important information,” they say! Well, how about NO!
As we say here in JFrog, once you leap forward, you won’t go back. Enterprises like Oracle, Credit Suisse, Deutsche Bank, CA and dozens of other Nexus refugees, as well as over 1,000 customers and our 95% retention rate prove it.
P.S. Want to learn about Nexus roadmap? No special effort needed. Just take a look of what Artifactory released half a year ago. It’s amazing how accurate this forecast works over the last years.