With the release of UrbanCode Deploy 7.0 customers have the option to use Web agents instead of JMS agents. Web agents which are based on websockets, offer many advantages and are the future of UrbanCode Deploy. In our lab we conducted testing which shows significant improvements in stability, scalability and performance. Below is a summary of the results of that testing.
Our destructive testing included the injection of random potential failure events (PFE’s) into a UCD environment. Examples of PFEs include severed network connections, relay restarts and server restarts. An actual failure is defined as the inability of UCD to reach a stable state within a 20-minute period after experiencing a PFE. Our tests compared JMS agents with Web Agents in topologies consisting of 25,000, 50,000 and 100,000 agents. With JMS agents enabled, UCD was barely able to come online with 25,000 agents and injection of PFE’s resulted in immediate failures. With Web agents enabled test runs lasted for a 48 hour period and UCD endured thousands of PFE’s without a single failure regardless of the number of agents within the topology (25K,50K,100K)
Performance and Scalability
In order to test performance and scalability we compared JMS agents with Web agents in systems under moderate and heavy load. Moderate load testing included 600 component deployments per hour. We saw no significant difference between JMS and Web agents with the average component deployment time being approximately a minute in both cases. When we increased load to 12,000 component deployments per hour the results were drastically different. With JMS agents enabled the average component deployment time was about 100 minutes. Web agents however, maintained a one minute average component deployment time significantly outperforming JMS agents.
One other area in which we saw significant performance gains is within agent time to connect which is basically the time it takes all agents to connect to UCD after server reboot. With JMS agents enabled in a topology consisting of 25,000 agents, agent time to connect was about an hour. UCD was unable to reach a stable state at all in topologies with larger numbers of agents. For Web agents, we used a 40,000-agent topology and the agent time to connect was only 75 seconds. For customers that are sensitive to downtime during upgrades, this is a substantial improvement.
The results of our testing show that UCD with web agents is not only more stable and resilient, but it also performs better under heavy load and at scale. This is extremely important to customers for whom high availability, scalability and performance are important and we recommend that you choose a version of UCD that offers web agents when you are planning your next upgrade.