An artifact repository manages your end-to-end artifact lifecycle and supports different software package management systems while providing consistency to your CI/CD workflow. It’s a source for artifacts needed for a build and a target to which artifacts generated during a build process may be deployed.
Multiple developers from different sites regularly use artifacts and third-party components from different sources. This can cause testing problems to arise and, thereby, slow the pace of your releases. Layer onto this the complexity of handling dozens of different types of technologies and your software development process could well find itself being brought to a halt from time to time due to a lack of foresight and planning. That’s why a DevOps artifact repository is crucial for sensible, efficient software development.
DevOps 101: Introduction to Package Management
JFrog’s Artifactory is a universal artifact repository manager that supports all major package formats (20+ languages including Go and Helm). It’s also integrated with all major build tools and CI servers currently available.
There are three types of repositories:
- Local: A physical, locally-managed repository into which you can deploy artifacts
- Remote: A caching proxy for a repository, which is managed at a remote URL. Artifacts can be stored and updated in remote repositories according to various configuration parameters that control caching and proxying behavior. You can remove artifacts from a remote repository cache but you cannot actually deploy a new artifact into a remote repository.
- Virtual: An aggregated repository that combines both local and remote repositories under a common URL, which is used to create a controlled domain that facilitates searches and the resolution of artifacts.
Using Artifactory as your artifact repository allows you to:
- Create fully traceable builds: Deploy your build artifacts through your CI server along with exhaustive build environment information that’s captured during deployment, which thereby enables you to have fully reproducible builds.
- Search for artifacts: Artifactory’s search function provides true, real-time results that always reflect the current state of your repositories. Quick searches can be conducted according to the file name of an artifact, package format, artifacts within specific archives, or based on the names and values of properties assigned to given artifacts.
- Manipulate artifacts: To maintain repositories that are consistent and coherent with package clients, Artifactory allows you to move, copy, and delete artifacts, after which corresponding metadata descriptors (such as Maven, RubyGems, npm, and many more) are immediately and automatically updated to reflect these changes