Using Artifactory for Efficient Artifact Storage

Using Artifactory for Efficient Artifact Storage

Introduction

Managing software artifacts efficiently is a critical challenge for software development teams. Whether you are dealing with versioning issues, dependency management, or maintaining previous builds for rollback and debugging, an inefficient artifact storage solution can slow down development cycles and introduce errors. Below is a list of questions to consider artifact management in your CI/CD processes:

  • Are the number of binaries for your projects growing and struggling with tracking and retrieving different versions of your software builds, making debugging and rollbacks difficult?
  • Are your CI/CD pipelines frequently downloading dependencies instead of using cached versions, slowing down builds?
  • Do multiple teams in your organization need reliable, centralized access to binaries and dependencies?
  • Is managing software artifacts at scale becoming increasingly complex as your project and teams grow?
  • Do you need better visibility into artifact metadata, including version history and usage statistics?

If any of these questions resonate with you, Artifactory might be a solution for you. This blog post explores what Artifactory is, how it optimizes artifact storage, when to use it and how it could be integrated into an embedded project.

Book a Call with Dojo Five Embedded Experts

What is Artifactory?

Artifactory is a universal binary repository manager developed by JFrog. It provides a single source of truth for managing all software artifacts, including:

  • Binaries and compiled code (executables, libraries, DLLs, JARs, etc.)
  • Dependencies (third-party libraries, open-source packages)
  • Container images (Docker images, OCI images)
  • ML models
  • Build artifacts generated by CI/CD pipelines

Artifactory integrates with over 27 package managers (e.g., Maven, npm, PyPI, Conan, Docker) and CI/CD systems (e.g., Jenkins, GitHub Actions, GitLab CI/CD). It also offers checksum-based storage, proxying of remote repositories, and advanced automation capabilities.

How Does Artifactory Work?

Artifactory functions as a centralized repository for all types of software artifacts, ensuring they are efficiently stored, retrieved and distributed.

Artifactory allows you to create and manage three types of repositories: Local, Remote and Virtual repositories.These repos can be hosted on-premise, cloud-hosted or hybrid approach. Local repositories store artifacts produced internally. Remote repositories provide a proxy to cache external dependences (e.g., from Maven Central, PyPI, npm). Virtual repositories aggregate multiple repositories (local and remote) under a single URL for simplified client access and dependency resolution. Each repository can be highly customizable as necessary to specify package type, technology used, public/private descriptions, blackout options, replication into other repos, etc.

Once Artifactory repos are created, they can be integrated with any popular CI/CD server supported. Any time a build executes on your CI server, this would push the build artifacts into the corresponding Artifactory repos. Bidirectional links between build and artifact facilitate sharing of build information (BuildInfo) describing all builds, build environment, etc. Once the artifacts are stored in Artifactory, they can be directly consumed or deployed. There is also release history and promotion capabilities to move artifacts from environments.

Full metadata integration is also provided to maximize artifact context for managing or debugging. Some types of metadata include inception, production readiness and statistical metadata. Inception meta data describes dependencies utilized, system and environment variables, build names and numbers, etc. Production Readiness metadata include any specific property that users have tagged the artifact with (maturity, integration, system and performance testing status, etc). Statistical metadata includes total number of downloads, uploaded by, date added and modified, etc.

Artifactory also provides a number of methods for automation to provide flexibility in integration. Some of these methods include REST APIs, Command Line Interface (CLI) for Artifactory, CI Server plugins, Artifactory Query Language (AQL) and User plugins. 

To better visualize how Artifactory works, the following is an architecture diagram of a DevOps workflow implementing Artifactory:

DevOps workflow implementing Artifactory

How does Artifactory enable Efficient Artifact Storage?

Artifactory streamlines software development across multiple teams and environments, ensuring efficiency, reliability and scalability. The following is a list of important aspects related to its benefits.

Optimized Artifact Storage with Checksum-Based Deduplication

Artifactory stores artifacts using hash-based deduplication, meaning that identical files are stored only once. Each artifact is assigned a checksum (SHA-1, MD5, SHA-256), significantly reducing storage redundancy and improving performance.

Faster Dependency Management and Resolution

Artifactory acts as a proxy/cache for remote repositories (e.g., Maven Central, PyPI, npm), reducing the need to download dependencies repeatedly. Local caching means dependencies remain available even if the original source goes offline, ensuring stability in CI/CD pipelines.

Streamlining CI/CD Pipelines

Artifactory integrates with Jenkins, GitHub Actions, GitLab CI/CD and other CI/CD tools to automate artifact storage and retrieval. It ensures that every pipeline uses the same artifact versions, preventing inconsistencies and reducing build failures.

Improved Version Control and Traceability

It also tracks and stores all builds, allowing easy rollback to previous versions if needed. It helps debug issues by providing full artifact history, metadata, and download statistics. The metadata in particular is used to manage binaries and better understand maturity levels, the context of creation like build flags, etc.

Scalable and Secure Storage

Artifactory provides role-based access control (RBAC), allowing different teams (developers, testers, release managers) to manage permissions. It works with JFrog Xray for security scanning and compliance management, ensuring that only approved dependencies and binaries are used and in a correct manner. It particularly scales efficiently as projects and teams grow, making artifact management seamless.

Simplified Cross-Team Collaboration

Developers can share prebuilt binaries instead of compiling from source every time. Testers and deployment engineers can retrieve the latest stable builds easily from a single source of truth. Virtual repositories allow aggregation of multiple repositories under a single URL, simplifying access.

Conclusion

Artifactory is a powerful solution for managing software artifacts efficiently. Whether you are dealing with dependencies, CI/CD pipelines, storage or team collaboration, Artifactory provides a streamlined and scalable approach to artifact management. 

Modernize your DevOps workflows with Dojo Five

If you are in need of additional assistance with CI/CD workflows, artifact management or have something else you would like to discuss, please feel free to reach out! Dojo Five is dedicated to helping you or your team learn, and would love to ensure your current and future projects are a success. You can book a call with us to get the conversation started. Or if you’re into DevOps, you can sign up for our EmbedOps platform. We look forward to hearing from you!

Discover why Dojo Five EmbedOps is the embedded enterprise choice for build tool and test management.

Sign up to receive a free account to the EmbedOps platform and start building with confidence..

  • Connect a repo
  • Use Dev Containers with your Continuous Integration (CI) provider
  • Analyze memory usage
  • Integrate and visualize static analysis results
  • Perform Hardware-in-the-Loop (HIL) tests
  • Install the Command Line Interface for a developer-friendly experience

Subscribe to our Monthly Newsletter

Subscribe to our monthly newsletter for development insights delivered straight to your inbox.

Interested in learning more?

Best-in-class embedded firmware content, resources and best practices

Laptop with some code on screen

I want to write my first embedded program. Where do I start?

The boom in the Internet of Things (IoT) commercial devices and hobbyist platforms like the Raspberry Pi and Arduino have created a lot of options, offering inexpensive platforms with easy to use development tools for creating embedded projects. You have a lot of options to choose from. An embedded development platform is typically a microcontroller chip mounted on a circuit board designed to show off its features. There are typically two types out there: there are inexpensive versions, sometimes called

Read More »
Medical device monitoring vitals

IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part 1

IEC-62304 Software Lifecycle requires a lot of self-reflection to scrutinize and document your development processes. There is an endless pursuit of perfection when it comes to heavily regulated industries. How can you guarantee something will have zero defects? That’s a pretty hefty task. The regulatory approach for the medical device industry is process control. The concept essentially states that if you document how every step must be completed, and provide checks to show every step has been completed properly, you

Read More »
Operating room filled with medical devices

IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part II

Part I provides some background to IEC-62304. Part II provides a slightly more in-depth look at some of the specifics. The IEC 62304 Medical Device Software – Software Lifecycle Processes looks into your development processes for creating and maintaining your software. The standard is available for purchase here. So what activities does the standard look at? Here are some of the major topics. For any given topic, there will be a lot more specifics. This will look at a few

Read More »