To enhance performance and reduce maintenance, IBM UrbanCode Deploy can use agent relays to communicate with remote agents. Instead of each agent connecting directly to the server, agents connect to agent relays, which then connect directly to the server. Using agent relays in this way reduces load on the server because the server has fewer direct connections.
Agent relays also simplify communication across networks and firewalls. If multiple agents are in a remote network without an agent relay, each agent must connect to the server individually. In this case, each agent must have network permission to connect to the server, including firewall permissions. With an agent relay, the agents connect only to the relay, and the relay is the only system that contacts the server directly, such as with a VPN or tunnel.
Agent relays are often convenient when the agents are on cloud systems, because cloud systems are often separated from the IBM UrbanCode Deploy server by a firewall or require a VPN or tunnel to reach the server.
The following figure is a simple diagram of communication between agents, an agent relay, and the server across a firewall. The agents connect directly to the agent relay, and the agent relay is the only system that connects to the server through the firewall.
The agent relay communicates with the server and the agents by using the same combination of JMS, HTTP, and HTTPS communication protocols that the agents use. As long as there is at least a low-bandwidth WAN connection between the server and agent relay, the IBM UrbanCode Deploy server can send work to agents in other locations.
The server does not open connections to agents or agent relays.
The following diagram shows the main default ports that are involved in communication between agents, agent relays, and the server.
You can also cache artifacts on agent relays to improve system performance. See Caching artifacts on agent relays.
The following simple artifact move illustrates the mechanics of remote communications: