CloudBees Flow Architecture

CloudBees Flow was designed to support small, mid-range, or enterprise scale software production. Based on a three-tier architecture, CloudBees Flow scales to handle complex environments. The CloudBees Flow multi-threaded Java server provides efficient synchronization even under high job volume.

  • The CloudBees Flow server manages resources, issues commands, and generates reports.

  • An underlying database stores commands, metadata, and log files.

  • Agents execute commands, monitor status, and collect results in parallel across a cluster of servers for rapid throughput.

Simple Architectural Overview

This local configuration applies to all the use cases. The CloudBees Flow server, web server, artifact cache, Artifact Repository server, workspace, command-line tools, resources, agents, and job steps are all in the automation platform.

In this local configuration:

  • The CloudBees Flow server manages resources, issues commands, and generates reports.

  • Resources, agents, and databases are managed in the automation platform.

  • An underlying database stores commands, metadata, and log files.

  • Procedures, which include job steps, are defined in the automation platform.

  • Job steps are executed on resources in the defined environments.

  • Applications (which include processes), components, microservices (which also include processes), containers, and environments are defined for deployment automation.

  • Pipelines, stages, and tasks are defined for pipeline management.

For a production environment, CloudBees recommends that you install the database on a separate machine from the CloudBees Flow server to prevent performance issues. It is acceptable for the CloudBees Flow 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 Flow, the CloudBees Flow software, the database, the CloudBees Flow 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 Flow components (such as the CloudBees Flow 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 the “Running the DevOps Insight Server on a System with Other CloudBees Flow Components”, on this page Before You Install CloudBees Flow, for instructions.

Expanded Remote Configuration

CloudBees Flow is not limited by only the components shown in the previous configuration. This configuration applies to all the use cases.

The following shows a remote web server configuration and is an example for how you may set up a remote web server installation.

This type of remote web server configuration helps prevent network latency. If you have multiple sites, CloudBees Flow can be configured to help you work more efficiently.

Other Configurations

Go to Installing CloudBees Flow on Traditional Platforms for other architecture configurations:

  • Proxy (universal) resources

  • Remote database

  • Multiple remote web servers

  • Multiple remote repository servers

  • Clustered configuration for horizontal scalability and high availability

  • Configurations designed specifically for failover