CloudBees Build Acceleration is a build and test acceleration platform for Make-based, Ninja-based, and Visual Studio build environments that intelligently and automatically parallelizes software tasks across clusters of physical or cloud CPUs to dramatically lower build and test cycle times.
CloudBees Build Acceleration reduces software build times by distributing the build over a large cluster of inexpensive servers. By using a dependency management system, CloudBees Build Acceleration identifies and fixes problems in real time that would break traditional parallel builds. CloudBees Build Acceleration seamlessly plugs into existing software development environments and includes web-based management and reporting tools.
CloudBees Build Acceleration consists of the following components:
The Cluster Manager machine is a server that contains two layers: a service layer to allocate agents to builds, collect build results, and monitor system activity, and a web server layer for the web interface.
The Cluster Manager also lets users view upcoming and past builds, view the status of agents in the cluster, and run reports.
As the user-level component running on the hosts, an Electric Agent ("agent") and EFS are inseparable—an agent is an intermediary between eMake and EFS. Depending on your system configuration, you might have one EFS/agent pair installed per core. (Or if your CPU supports hyper-threading, you might want to run slightly more agents per core; 1.25 or 1.5 per core is a good rule-of-thumb.) Agents run commands on behalf of eMake.
The Electric File System (EFS) is a special-purpose file system driver that monitors every file access and provides eMake with complete usage information. This driver collects dependency information, which lets eMake detect and correct out-of-order build steps automatically. Each EFS driver instance is paired with an agent. During installation, the agent and EFS are installed at the same time.
Electric Make (eMake), the main build application, is a new Make version invoked interactively or through build scripts. It reads makefiles in several different formats, including GNU Make and Microsoft NMAKE. eMake distributes commands to local agents for the cluster for remote execution and services file requests.
You can either use a cluster manager or only the agents on the local host. If neither is specified but eMake detects that agents are running on the host, eMake uses them as if you specified to use only the agents on the local host. The Cluster Manager prefers to allocate agents to eMake that are on the same host as eMake.
The Electrify component accelerates builds by parallelizing the build process and distributing build steps across clustered resources. You can use one of two methods to monitor your tools: a wrapper application or automatic process interception. For details about using Electrify, see Electrify.