Use a Binary Repository Manager and Keep Up With DevOps
You're better than that simple shared file system; update your DevOps practice with a binary repository manager to eliminate clutter and points of failure.
Join the DZone community and get the full member experience.
Join For FreeUsing Repository Managers [Refcard]Intended to help you design and configure a binary repository, optimize it for various workflows, and fit it smoothly into your software development lifecycle. |
Storing your artifacts, builds, libraries and other binaries in a dumb flat file-system is so 2010. A shared file system just doesn’t cut it anymore; you need to be smarter than that. To beat the pace of modern day business, your organization must be DevOps savvy. Your mantra must be, “Eat, live and breathe DevOps.” Your key to keeping up with DevOps is a Binary Repository Manager, and here are five reasons why.
1. A Binary Repository Manager Caters to a Wide Audience
A binary repository manager is much more than just a dependency manager, so your audience scope is broader than just developers. The diagram below shows JFrog’s Binary Repository Manager, Artifactory, interfacing with a wide range of tools and products for dependency management, build, CI, provisioning, security vulnerability analysis, distribution, and more.
Scope out your target audience, use cases and workflows very carefully and thoroughly. This will help you design your repositories and permission model so that each member of your audience gets what they need without impinging on someone else’s binaries.
2. Eliminate Remote Dependencies as Single-Points-of-Failure
Most of your dev teams will have some sort of dependency on a central repository such as Maven Central, the NPM public Registry, Nuget Gallery, Docker Hub, etc. However, the reliability of these repositories may not always be what you expect. You would have no control over things like downtime, maintenance, version lifetime, or deprecations; yet, being able to manage and control these binaries that you bring from central repositories is critical.
A binary repository manager solves the reliability issue by caching remote binaries locally. Not only does this eliminate the dependency on central repositories giving you total control over your binaries, but it also removes network latency since all binaries are now accessed locally on your internal network.
3. Fully Reproducible Builds in Your CI Pipeline
An average enterprise will have more than one continuous integration server, and then have multiple master/slave models over these integration servers, so it’s critical that your binary repository manager can work with all the CI servers in your organization (Jenkins, Hudson, TeamCity, Bamboo, Travis, TFS, etc.). As per the best practices, it is always recommended to promote your builds as they proceed further towards the different phases (dev, QA, staging, pre-prod, prod, etc.) of build lifecycle instead of reproducing the same build over and over again. Standardize the build promotion process and always avoid regenerating the same builds. Whether you’re running a simple Maven build or building a complex Docker image, the Bill of Materials (BoM) describing all the information related to the build is critical. This exhaustive build information including build output, dependencies, system properties, environment variables, and much more, is stored in your binary repository manager and is a single source of truth that lets you fully reproduce a build at any time later on.
4. Artifact Clutter Builds Up If Not Cleaned Up
Generating hundreds of thousands of artifacts is easy; managing them all is certainly not. We all know we should be implementing a cleanup regimen but tend to forget how important it is as we get busier with other high priority tasks. Deprecated artifacts and buggy snapshots accumulate, cluttering up your repositories and eating up your storage. A binary repository manager will clean up your repositories, both with automated background tasks that look for orphaned artifacts, as well as with cron-based or event triggered cleanup jobs for more specific use cases. Checksum-based storage with Artifactory already helps with storage optimization, as you are not occupying any redundant storage space for something that is not required, but cleanup is recommended. Some even have dedicated query languages that let you define any complex set of binaries using simple queries so you can clean up even the most obscure binaries that are cluttering up your system.
5. Automate While You “REST”
Automation is the key to any successful organization. You can’t grow your business and scale your operations unless you have a binary repository manager with a powerful REST API that will fully support the automation you need. Whether you’re managing dependencies, deploying builds, creating users, managing access control, replicating artifacts to your global instances, or managing disaster recovery instance, the right binary repository manager can automate and integrate all aspects of artifact management within your organization.
The DevOps revolution is here, and you now have several good reasons to look into adopting a binary repository manager for your organization. If you need more reasons, you can read about them from additional sources, but it’s clear that to join the revolution, your approach to binaries can never be the same again.
Using Repository Managers [Refcard]Intended to help you design and configure a binary repository, optimize it for various workflows, and fit it smoothly into your software development lifecycle. |
Opinions expressed by DZone contributors are their own.
Comments