UrbanCode Deploy

Boost performance with agent relay caching

At the enterprise scale, performance is a limiting factor. UrbanCode Deploy is designed for the enterprise, of course, and provides features that help you grow while remaining performant.

One feature that you can use to scale your installation is the agent relay. Relays manage agents outside the firewall. This feature scales well because a relay can handle any number of agents with a single point of communication to the server. “Any number” might be hyperbole, but each relay can reliably support 1,000 agents.

In addition to navigating firewall configurations, relays boost performance by lifting the burden of agent communication off the server. Instead of sending artifacts to every agent, the server only sends them to the relay, which, in turn, sends them to the agents.
Many customers use this topology, which is illustrated by the accompanying diagram.

If you use the native UrbanCode Deploy artifact repository CodeStation, another performance-increasing feature is agent relay caching. This feature decreases download times by storing artifact copies on the relay. The server doesn’t need to respond to every artifact request, and it allows multiple agents to download cached artifacts simultaneously.

You can preload artifacts by configuring the relay to automatically download items based on a particular status, such as ‘staging.’ Or you can use UrbanCode Deploy applications to load artifacts to the relay cache.

The performance benefit provided by this feature can be dramatic.

Recent enhancements to relay caching make this feature even more compelling. Now, when an application needs only a portion of a large file, or artifact, it can retrieve it directly without first downloading the entire file. Performance gains are significant especially when the required artifact is at the end of a large, say 10GB, file.

Finally, relays are more aggressive about keeping cache size in line with user expectations. Previously, due to cleanup intervals, it was possible for relay caches to exceed size limits briefly. Now, when configured properly, you should practically never see size limits exceeded.