Architecture

4 minute read

This section contains architecture diagrams for different configurations of CloudBees CD/RO and CloudBees Analytics. CloudBees CD/RO has a secure, scalable, and robust architecture that supports enterprise-scale software delivery and release orchestration.

Local configuration

The following diagram shows a non-clustered CloudBees CD/RO architecture configuration at a single site. Use a CloudBees CD/RO clustered deployment for horizontal scalability and high availability. You can use a non-clustered deployment when high availability is not required.

Local deployment
Figure 1. Local deployment

It is acceptable for the CloudBees CD/RO server, web server, and repository server to reside on the same machine in a local configuration.

In the local configuration:

  • The CloudBees CD/RO 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.

Remote database configuration

For a production environment, CloudBees recommends that you install the database on a separate machine from the CloudBees CD/RO server to prevent performance issues. It is acceptable for the CloudBees CD/RO 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/RO, CloudBees CD/RO, the database, the CloudBees CD/RO server, the web server, and the repository server can reside on the same machine.

Remote CloudBees Analytics server configuration

For a production environment, CloudBees recommends that you install the CloudBees Analytics server on a system other than systems running other CloudBees CD/RO components (such as the CloudBees CD/RO server, web server, repository server, or agent). If you must install it on the same system (such as for testing or other non-production or trial-basis situations only), refer to Running on a system with CloudBees CD/RO components for instructions.

Clustered configuration

The following diagram shows a CloudBees CD/RO clustered configuration.

Clustered configuration example
Figure 2. Clustered configuration

You can also add horizontal scalability and high availability to your CloudBees CD/RO environment by adding additional machines to create a clustered CloudBees CD/RO configuration.

A clustered CloudBees CD/RO configuration has the following benefits:

  • Add fault tolerance by re-routing jobs to running CloudBees CD/RO servers.

  • Increase the supported number of simultaneous jobs and corresponding API requests.

  • Expand capacity over time by adding additional CloudBees CD/RO servers.

  • Distribute API requests across multiple CloudBees CD/RO servers.

  • Distribute CloudBees CD/RO requests across multiple web servers.

Refer to Horizontal scalability for additional details and clustered configuration set up procedures.

Required additional software components for clustered machines

A clustered CloudBees CD/RO configuration requires two additional software components:

  • A centralized service for maintaining and synchronizing group services in the cluster.

  • A load balancer for routing work to machines in the cluster.

CloudBees 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, refer to Configuring Universal Access for a Network Location.

Refer to Clustering for additional details and clustered configuration set up procedures.

Shared file system requirement for plugins

CloudBees recommends that all server machines, CloudBees CD/RO servers and web servers, in a clustered server configuration be able to access a common plugins directory. This avoids the overhead of managing multiple plugin directories. For details, refer to Universal Access to the plugins directory.

CloudBees Analytics architecture

With CloudBees Analytics, you can track your workload changes and visualize how efficient, clean, and secure your setup is. Through CloudBees Analytics dashboards, enterprises have the ability to detect:

  • Which CloudBees CI controllers are unhealthy or idle.

  • Where CloudBees CI plugins are used, and their support level.

  • Builds in progress that are deteriorating the quality of the service, and more.

While CloudBees Analytics provides several built-in dashboards and report templates, you can create custom reports and dashboards to visualize your own custom data or to export this data using APIs.

CloudBees Analytics architecture for CloudBees CD/RO

The architecture for CloudBees Analytics with the CloudBees CD/RO capability is as follows:

CloudBees Analytics architecture for CloudBees CD/RO
Figure 3. CloudBees Analytics architecture for CloudBees CD/RO
Where:

1

The CloudBees Analytics server collects data from the following sources:

  • Backend: The CloudBees CD/RO server backend collects build, deployment, pipeline, and release data.

  • Plugin: The set of plugins bundled with CloudBees CD/RO integrates with third-party DevOps tools to collect defect, feature, incident, and quality data.

  • API: The sendReportingData API allows you to inject your own custom data into the Elasticsearch database.

Refer to Sending data from an external source for further information.

2

Collected data is stored in the Elasticsearch database. Refer to Elasticsearch basics for information on accessing the Elasticsearch database directly.

3, 4

The report object definition, together with dashboard filters, defines the data set to extract from the Elasticsearch database. Refer to Report object type reference for available report object definitions bundled with CloudBees CD/RO.

5

The report engine sends the processed data the dashboard widget for rendering. Several report definitions are provided to support built-in dashboards. Additionally, refer to Creating a Report and Custom dashboards to create custom reports and dashboards.

CloudBees Analytics architecture for CI data

The architecture for CloudBees Analytics for CloudBees CI data is as follows:

CloudBees Analytics architecture for CI data
Figure 4. CloudBees Analytics architecture for CI data
Where:

1

CloudBees CI sends build and other data to the CloudBees Software Delivery Automation server. In turn, it is stored into the CloudBees Analytics server Elasticsearch database where it becomes available for ingestion by reports and dashboards. Refer to Sending data from an external source for further information.

2

Collected data is stored in the Elasticsearch database. Refer to Elasticsearch basics for information on accessing the Elasticsearch database directly.

3, 4

The report object definition, together with dashboard filters, defines the data set to extract from the Elasticsearch database. Refer to Report object type reference for available report object definitions bundled with CloudBees CD/RO.

Glossary

  • Dashboard: Top-level, multi-widget view with related visualizations of interest. Several built-in dashboards are included. Refer to Built-in dashboards for a list of pre-configured dashboards bundled with CloudBees CD/RO.

  • Widget: A dashboard tile for UI visualization of report metrics. Refer to Managing widgets for further information.

  • Visualization: Specification of data to display in the UI.

  • Report: The definition of the set of results from which a widget is built. Contains the ElasticSearch report definition. Refer to Elasticsearch basics for further information.

  • Reporting object type: The type of object on which to report. CloudBees CD/RO provides several built-in report object types. Refer to Understanding the CloudBees Analytics data model for available report object definitions.

  • Reporting object attribute: Specific metadata to report on and visualize.