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.
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.
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 Configure 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:
Where: | |
---|---|
1 |
The CloudBees Analytics server collects data from the following sources:
Refer to Sending data from an external source for further information. |
2 |
Collected data is stored in the CloudBees Analytics database. Refer to OpenSearch basics for information on accessing the CloudBees Analytics database directly. |
3, 4 |
The report object definition, together with dashboard filters, defines the data set to extract from the CloudBees Analytics 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 Create a report and Create a customized CloudBees Analytics dashboard to create custom reports and dashboards. |
For more information on installing CloudBees Analytics with CloudBees CD/RO, refer to CloudBees CD/RO on traditional platforms + CloudBees Analytics.
CloudBees Analytics architecture for CloudBees CI data
The architecture for CloudBees Analytics for CloudBees CI data is as follows:
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 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 CloudBees Analytics database. Refer to OpenSearch basics for information on accessing the CloudBees Analytics database directly. |
3, 4 |
The report object definition, together with dashboard filters, defines the data set to extract from the CloudBees Analytics database. Refer to Report object type reference for available report object definitions bundled with CloudBees CD/RO. |
For more information on installing CloudBees Analytics with CloudBees CD/RO and CloudBees CI, refer to CloudBees CD/RO and CloudBees CI on traditional platforms + CloudBees Analytics.
Glossary
-
Dashboard: Top-level, multi-widget view with related visualizations of interest. Several built-in dashboards are included. Refer to CloudBees Analytics 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 Manage 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 CloudBees Analytics report definition. Refer to OpenSearch 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.