CloudBees CD supports enterprise-scale software production. Based on a three-tier architecture, CloudBees CD scales to handle large, complex environments. CloudBees CD’s multithreaded Java server provides efficient synchronization even under high job volume.
The following diagram shows a CloudBees CD architecture configuration at a single site.
In the local configuration:
The CloudBees CD server manages resources, issues commands, generates reports.
An underlying database stores commands and metadata.
Agents execute commands, monitor status, and collect results, in parallel across a cluster of servers for rapid throughput.
For a production environment, CloudBees recommends that you install the database on a separate machine from the CloudBees CD server to prevent performance issues. It is acceptable for the CloudBees CD server, web server, and repository server to reside on the same machine in a local configuration, but not required. If you are only evaluating CloudBees CD, CloudBees CD, the database, the CloudBees CD server, the web server, and the repository server can reside on the same machine.
For a production environment, CloudBees recommends that you install the DevOps Insight server on a system other than systems running other CloudBees CD components (such as the CloudBees CD server, web server, repository server, or agent). If you must install it on the same system (such as for testing or other nonproduction or trial-basis situations only), see Running on a system with CloudBees CD components for instructions.
The following diagram shows an example of a remote web server architecture configuration.
In this example remote web server configuration:
There are web servers at each site
The database and CloudBees CD server is located at your headquarters
Proxy resources exist at each site
A remote web server configuration helps prevent network latency. If you have multiple sites, CloudBees CD can be configured in numerous ways to help you work more efficiently.
You should consider installing multiple web servers for different locations in your organization to help handle user web traffic . CloudBees CD supports multiple workspaces, including those co-located on agents that use them. In this architecture, step log files are created locally so even the largest log files can be captured without a performance penalty.
You can view the step log files remotely from the web UI, but performance decreases if the files must be retrieved across the WAN. This means that remote users will experience the penalty when the web server retrieves the step log file contents and when the contents are sent back across the WAN to the browser.
To minimize these performance issues, install one central CloudBees CD server, and then install a CloudBees CD web server at each remote site. The remote web servers should be co-located with the remote agents and workspaces so remote users can log in through their local web server. Any operations initiated from the remote location, including running jobs, are completed by the central CloudBees CD server.
In this configuration, job data is retrieved from the central server when a remote user views the Job Details page. If the job is using a workspace at the remote user’s site, the links to all step log files will refer to local paths.
Also, in this configuration, the log files are accessed only by the remote web server’s agent and not the CloudBees CD server. This eliminates both trips across the WAN, which improves performance. The CloudBees CD web server reads the log file locally (via its local agent) and then displays the page to the user whose browser is also on the same side of the WAN.
For details about the remote web server prerequisites such as memory, agents, and centralized plugin directory access, see Remote Web Server Installation Prerequisites .
The following diagram shows a CloudBees CD clustered configuration.
You can also add horizontal scalability and high availability to your CloudBees CD environment by adding additional machines to create a clustered CloudBees CD configuration.
A clustered CloudBees CD configuration has the following benefits:
Add fault tolerance by re-routing jobs to running CloudBees CD servers
Increase the supported number of simultaneous jobs and corresponding API requests
Expand capacity over time by adding additional CloudBees CD servers
Distribute API requests across multiple CloudBees CD servers
Distribute CloudBees CD requests across multiple web servers
A clustered CloudBees CD configuration requires two additional software components:
A centralized service for maintaining and synchronizing group services in cluster
A load balancer for routing work to machines in the cluster
CloudBees strongly recommends that all server machines in a clustered server configuration be able to access a common plugins directory. This avoids the overhead of managing multiple plugins directories. For details, see Configuring Universal Access for a Network Location .
See Clustering for additional details and clustered configuration set up procedures.