Agents

An agent is a lightweight process that runs on a host computer and communicates with the Build server. Agents are the workers of the Build architecture. Agents complete the actual build activity, which distributes the load of concurrently running builds and provide scalability. After an agent is started, the agent opens a connection to the Build server. Communication between server and agents uses a JMS-based (Java Message Service) protocol and SSL, which can optionally enforce mutual authentication. This communication protocol is stateless and resilient to network outages.

Although an agent is characterized as a single process, technically an agent consists of a monitor process and a worker process. The monitor is a service that manages the worker process. It is responsible for starting and stopping the worker, handling restarts, and completing upgrades. If the worker fails for an unexpected reason, the monitor restarts it. The worker is a multi-threaded process that connects to the server and completes any work that the server sends to it. Agents do not have to be upgraded every time that the server is upgraded. The server maintains a minimum agent version property, which is the minimum version that is required to work with the server. When agents are updated, it is to take advantage of new features or fix bugs. Agents can be upgraded with the installation process on the host computer or remotely through the server web user interface. After an agent is installed and connected to the server, it is displayed in the web user interface where it can be activated and placed into agent pools. A newly installed agent does not receive work until you activate it.

Agent processes



Agents are an important part of Build scalability. By adding more agents, the throughput and capacity of the system increases and can scale to serve even the largest enterprise.