February 13, 2025
4 min read time

Why are CI/CD builds slow, and how do you speed them up?

A blog post about how Varnish Virtual Registry can speed up CI/CD builds by caching dependencies closer to users and runners.

Slow CI/CD builds are often caused not by your code or tests, but by artifact retrieval. Pipelines re-download the same dependencies and images from remote registries on every build, which adds network latency, overloads repositories like Artifactory and Nexus, and runs up egress costs. The fix is artifact caching: put a registry-aware caching proxy close to your build runners, so repeat downloads are served locally instead of from the remote registry.

You’ve optimized your code. You’ve automated your tests. You’re using the latest CI/CD tools. So why are your builds still slow? Every time your pipeline fetches dependencies from remote repositories (e.g., Maven, npm, PyPI) or distributes software artifacts across teams and environments, it can introduce unnecessary latency, variability and infrastructure costs.

Every developer has been there: waiting for builds to finish, watching dependencies download, frustrated by slow pipelines. It’s easy to dismiss these delays as a minor inconvenience, but they add up fast. For example:

  • A 5-minute delay per build with 10 builds per day means 50 minutes wasted daily per developer.
  • With 100 developers, that means 83 hours lost per day, equating to nearly $1M/year in lost productivity (assuming a $100K average salary).

That’s real money, lost to something as basic as slow artifact retrieval and inefficient software distribution.

How do slow builds hurt DevOps productivity?

These performance issues typically arise from a combination of factors:

  • Redundant downloads. CI/CD pipelines fetch the same artifacts from remote repositories on every build, even when they haven’t changed. This wastes bandwidth and introduces unnecessary delays.

  • Cloud latency and network delays. Every time an artifact is retrieved from a remote package repository (e.g., Maven Central, npm, PyPI or Docker Hub), network latency adds unpredictable delays. This problem worsens when builds are distributed across multiple regions.

  • Inefficient caching. Caches that don’t persist across builds, jobs or teams can force redundant downloads.

  • Overloaded artifact repositories. When multiple builds request the same files simultaneously, perhaps during peak hours or large-scale releases, artifact repositories (e.g., Artifactory, Nexus or AWS S3) experience contention, leading to increased response times and higher failure rates.

  • Cloud egress costs and delays. Frequent external artifact downloads result in higher cloud egress fees, increasing costs while slowing down artifact retrieval due to rate limits and throttling.

What is artifact caching?

Artifact caching is the practice of storing and reusing previously downloaded software dependencies and artifacts to avoid redundant network requests. By caching artifacts closer to where they are needed, DevOps teams can reduce build times, lower cloud costs and improve software distribution efficiency. This is particularly important for large-scale DevOps workflows, where software needs to be distributed across multiple teams, regions and cloud environments.

Why traditional caching methods fall short

Many teams rely on outdated or insufficient caching methods that fail to scale with DevOps demands:

  • Built-in package manager caches. These only work per machine and are frequently cleared, making them unreliable for distributed teams.

  • CDNs. Effective for static content, but they struggle with software artifacts and dynamic builds that require rapid updates.

  • DIY caching proxies. Solutions like Squid or NGINX can cache artifacts, but they require extensive manual tuning and lack registry-aware handling of package metadata, manifests and authentication.

Because software distribution involves pushing artifacts across multiple environments, relying on inefficient caching means developers in different locations experience inconsistent performance, long download times and higher cloud fees.

How a virtual registry fixes this

Varnish Virtual Registry (formerly Varnish Orca) is a caching proxy that sits between your CI/CD pipeline and your artifact repositories, so repeat downloads are served from cache instead of the remote registry.

Virtual Registry lets DevOps teams:

  • Cache dependencies and software artifacts, with no need to repeatedly download the same files.
  • Speed up software distribution across regions, reducing latency for global DevOps teams.
  • Handle CI/CD traffic spikes, keeping performance steady at peak demand.
  • Reduce software distribution costs by minimizing redundant downloads.

Unlike traditional caching solutions, Virtual Registry is designed for DevOps workflows, offering:

  • Cloud-native caching. Deploy in AWS, Azure, Google Cloud and on-prem environments.
  • Custom cache locations. Place caches close to developers and CI runners to cut latency.
  • Simple configuration. One config.yaml file, with caching rules applied automatically for each package type.
  • Cache persistence. Efficient, persistent caching of large volumes of data, optimized for both very large and small objects.
  • Tooling integration. Deploy with Docker, Kubernetes and Helm, or DEB and RPM packages, and connect it to your existing CI/CD tools.
  • Security & compliance. Authorization-aware caching ensures only authenticated users can access cached artifacts.

Customer results

  • One streaming service optimized its DevOps workflows with Varnish Virtual Registry, achieving 85% lower artifact retrieval latency and reducing install times from 5 minutes to 1 minute.
  • A major SaaS company using Artifactory cut artifact retrieval time by 85% and reduced CI/CD failures by 30% after deploying Varnish Virtual Registry.

Next steps

For a deeper look at how Varnish accelerates artifact retrieval and optimizes software distribution, watch our on-demand webinar. Varnish Technical Evangelist Thijs Feryn breaks down real-world caching strategies, shows performance benchmarks and demonstrates how Varnish fits into CI/CD pipelines to deliver faster, more reliable builds.

If your team is pulling the same dependencies from the cloud on every build, or struggling with slow software distribution, it’s time to cache smarter. To see how this works with JFrog Artifactory, read how to reduce load on Artifactory without adding nodes.