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

Power lines, trees, and stranded cars were unfortunately common this past week.

The Parts of DevOps That Have Nothing to Do With Code

When you hear about DevOps, you often hear about all of the ways it can help your code be better. That’s true. But there’s a whole host of other benefits. This week highlighted how a dev team can be stronger with a solid DevOps practice. The Storm Cloud Last Monday started normally. We did remote co-working, reviewed PRs, and chatted about what we did over the weekend. It seemed like a cloudy, but pleasant and normal start to the week.

Read More »
Transitioning from Bare Metal: Nordic SDK Build System

Transitioning from Bare Metal: Nordic SDK Build System

Intro As embedded systems complexity grows, firmware development needs more and more tools and build systems to handle it. One common reason to switch from bare metal to a more complex RTOS is when adding more communications, such as bluetooth, to an embedded system. Nordic is a very popular creator of bluetooth chips, and they support their hardware with their nordic nRF connect SDK, a collection of tools and the Zephyr RTOS all packaged up and included in custom VSCode

Read More »
When is Yocto Right for You?

When is Yocto Right for You?

Embedded systems are more complicated than they’ve ever been. Modern devices have multiple connectivity stacks; they run heterogeneous software written in many different languages written by third parties; they perform machine learning and send telemetry to the cloud and receive OTA updates. A single-threaded bare-metal OS won’t satisfy these complex requirements, but Linux will. The Yocto Project was created to manage the details of deploying Linux in modern embedded environments. What is Yocto? Yocto is a toolkit for creating platform-specific

Read More »