What Is CloudBees CD/RO?
CloudBees CD/RO, formerly Electric Cloud, is a product suite to automate, orchestrate, and deliver software. As a continuous delivery (CD) solution, it helps development and operations teams improve pace and quality, integrating with popular DevOps tools. The platform manages complex release pipelines and enables faster software releases.
Core functions of CloudBees CD/RO include automating software deployments and orchestrating release processes. It enables teams to eliminate manual processes and reduce deployment errors. CloudBees CD/RO can integrate with existing workflows, improving scalability while promoting consistent deployment.
Key Features and Capabilities of CloudBees CD/RO
Deployment Automation
CloudBees CD/RO offers deployment automation to manage software release processes. The platform minimizes manual intervention, providing consistency across deployments. It can interface with various environments, ensuring applications are deployed efficiently, regardless of the infrastructure.
Real-time feedback and deployment analytics allow teams to identify and resolve issues swiftly, improving productivity and reducing the risk of errors. Custom scripts and manual processes are replaced by automated workflows, improving reliability and decreasing time-to-deployment significantly.
Release Orchestration
Release orchestration enables structured coordination of multi-step deployment processes. It synchronizes activities and dependencies between different teams and systems, delivering a predictable release cadence. The platform’s orchestration capabilities eliminate bottlenecks in the release process.
The tool supports parallel execution of tasks, which boosts delivery timelines and resource optimization. Through pipeline visualization, it improves tracking capabilities, allowing stakeholders to have a clear view of progress and potential impediments.
Analytics and Insights
CloudBees CD/RO offers analytics and insights capabilities to monitor and optimize the software delivery process. By collecting and analyzing data across the release pipeline, it provides actionable intelligence. The insights gained enable data-driven decisions, increasing release success.
Reporting features allow for the identification of bottlenecks and waste, enabling continuous improvement and refinement of processes. The platform’s analytics capabilities ensure that stakeholders can assess performance gaps in real time, informing strategic adjustments.
Smart Quality Gates
Smart quality gates in CloudBees CD/RO offer automated policy enforcement at critical stages of the delivery pipeline. By embedding quality criteria within pipelines, it prevents unworthy code from progressing without timely intervention. This mechanism ensures only vetted releases advance, maintaining stability and quality.
Incorporating thresholds and dynamic conditions into quality gates allows for flexible management of the release process. These gates halt progression when quality standards aren’t met, relying on automated reminders to trigger necessary changes. This prioritizes quality assurance and minimizes faulty deployments entering production.
Dependency Management
Dependency management identifies and manages interdependencies across applications and services. By automatically detecting dependencies, it reduces the risk of deployment issues, ensuring applications function correctly post-deployment. This capability improves reliability in software delivery.
Managing dependencies involves visualizing and tracking interconnections, allowing teams to anticipate and resolve potential issues proactively. This feature ensures that updates to one service do not disrupt others, preserving system integrity. Dependency management leads to smoother, error-free deployments.
GitOps-Based Workflows
CloudBees CD/RO supports GitOps-based workflows, integrating with version-controlled repositories to automate and manage deployments. This brings infrastructure control into the development model, leveraging Git to track changes, enforce consistency, and simplify rollouts. GitOps improves both collaboration and versioning.
GitOps simplifies sync between environments, reducing discrepancies across stages of the deployment pipeline. Using Git enables auditability and change tracking, significantly reducing errors associated with manual updates.
CloudBees CD/RO Architecture
CloudBees CD/RO offers multiple deployment configurations to meet varying organizational needs, including local, remote, and clustered setups, with best practices for optimal performance and high availability.
Local Configuration
In a non-clustered, local configuration, all primary CloudBees CD/RO components—such as the server, web server, and repository server—can reside on a single machine. This setup is appropriate for testing or evaluation environments where high availability and fault tolerance are not required. In this configuration:
- The CloudBees CD/RO server manages resources, executes commands, and generates reports.
- An underlying database stores metadata and operational commands.
- Agents execute commands and monitor results in parallel, enabling rapid throughput across available resources.
A local configuration is relatively simple to set up but may not provide the redundancy or load distribution required for production-scale environments.
Source: CloudBees
Production Configuration
For production environments, CloudBees recommends installing the database on a separate machine to prevent potential performance bottlenecks. Separating the database allows the CloudBees CD/RO server to focus on orchestration tasks without competing for resources with database operations. This setup improves performance and stability in larger deployments.
Source: CloudBees
While a single machine can house multiple components during testing, in production it’s beneficial to separate the CloudBees analytics server from other CloudBees CD/RO components. This separation ensures that analytical operations do not impact the performance of deployment processes.
Clustered Configuration
For enterprise-grade deployments requiring horizontal scalability and high availability, CloudBees CD/RO supports clustered configurations. In a clustered setup, multiple CloudBees CD/RO servers and web servers can work together, with load balancing to distribute requests evenly and reduce downtime risks.
Quick Start: Install CloudBees CD/RO on Kubernetes
Installing CloudBees CD/RO in a Kubernetes environment involves setting up either a demo or production environment, depending on the deployment requirements. We’ll use Helm charts to automate installation. These instructions are adapted from the Cloudbees documentation.
Prerequisites
Before beginning, ensure:
- You have a Kubernetes cluster set up.
- Your Kubernetes version is supported by CloudBees CD/RO.
- Helm is installed on your system.
For testing, you can use lightweight Kubernetes solutions like Minikube. However, CloudBees advises using a full Kubernetes setup for production due to security and scalability considerations.
Step 1: Install the CloudBees CD/RO Demo Server
The demo server installation is suitable for non-production environments. It includes basic components for experimenting with CloudBees CD/RO features:
- Run the following commands to add the CloudBees Helm repository and update it:
helm repo add cloudbees https://public-charts.artifacts.cloudbees.com/repository/public/ helm repo update
2. Create a Kubernetes namespace for the demo server:
kubectl create ns <server-namespace>
3. Download the cloudbees-cd-demo.yaml configuration file from the CloudBees examples repository. Use it as the values file for the Helm installation command:
helm install <server-release-name> cloudbees/cloudbees-flow \ -f <path/to/cloudbees-cd-demo.yaml> \` --namespace <server-namespace> \ --timeout 10000s
Note: The installation may take a few minutes. Track progress in the Kubernetes dashboard by monitoring the flow-server-init-job log.
Step 2: Install the CloudBees CD/RO Production Server
For production environments, use a custom examplevalues.yaml file to specify configurations like external databases and persistent storage.v
- To prepare the configuration, download and edit a values.yaml file to create your own examplevalues.yaml for production. Update this file with project-specific configurations such as database connection details and CloudBees credentials.
# Sample snippet from examplevalues.yaml database: host: "your-database-host" port: 3306 name: "cdro_db" user: "cdro_user" password: "secure_password"
2. Create a dedicated namespace for the production environment:
kubectl create ns <prod-server-example-namespace>
3. Run the following Helm command, specifying your examplevalues.yaml file:
helm install <prod-server-release-name> cloudbees/cloudbees-flow \ -f <path/to/production-server-examplevalues.yaml> \ --namespace <prod-server-example-namespace> \ --timeout 10000s
Tip: Avoid using the –wait flag for production installations with an external database, as it may prevent initialization jobs from starting.
Step 3: Configuring CloudBees Analytics (Optional)
CloudBees analytics can provide performance insights, but it requires TLS configuration in multi-node deployments. The following snippet shows how to create and use certificates with CloudBees analytics:
- Use the cbflow-tools Docker image to create a key store:
docker run --rm cloudbees/cbflow-tools:<docker-tag> generate-certificates
2. The output is a base64-encoded key store. Add this to the examplevalues.yaml under analytics.certificates.bundle:
analytics: certificates: bundle: "<base64-encoded-key-store>"
3. Create a Kubernetes secret to store the certificate bundle:
kubectl create secret generic cbcd-analytics-certificates \ --from-literal=CBF_ANALYTICS_CRT_BUNDLE=$(docker run \ --rm cloudbees/cbflow-tools:<docker tag> generate-certificates)
4. Specify this secret in the examplevalues.yaml file under analytics.certificates.existingSecret.
Step 4: Updating CloudBees CD/RO Configurations
To update the CloudBees CD/RO settings, modify the project-specific values in the examplevalues.yaml and use the helm upgrade command:
helm upgrade <prod-server-release-name> cloudbees/cloudbees-flow \ -f <path/to/production-server-examplevalues.yaml> \ --namespace <prod-server-example-namespace> \ --timeout 3600s
CloudBees CD/RO Limitations
While CloudBees CD/RO is useful for managing complex release processes, it has some important limitations, as reported by users on the G2 platform:
- High cost: The platform’s pricing can be prohibitive for smaller organizations and startups, making it a better fit for larger enterprises with bigger budgets.
- Complexity: CloudBees CD/RO offers extensive features, which can make it overwhelming for small teams or users unfamiliar with CI/CD tools. The setup process and configuration requirements can also be time-consuming and complicated.
- Limited customization: Customizing certain aspects of CloudBees CD/RO, such as environment variables or plugins within procedures, can be more complex compared to tools like Jenkins or GitLab CI.
- Integration challenges: Integrating with some third-party applications or legacy systems may require additional configuration and can sometimes pose compatibility issues.
- Learning curve for new users: Advanced functionalities can be challenging for newcomers, especially those without prior experience with Jenkins, which CloudBees CD/RO builds upon.
- Inconsistent performance: Users have reported occasional performance inconsistencies and technical glitches, which can impact the overall experience and reliability of the platform.
Codefresh: A Modern Alternative to Jenkins
You can’t get to continuous delivery or deployment without first solving continuous integration. Codefresh automatically creates a Delivery Pipeline, which is a workflow along with the events that trigger it. We’ve added a pipeline creation wizard that will create all the component configurations so you can spend less time with YAML and more time getting work done.
At the end of the pipeline creation wizard, Codefresh commits the configuration to git and allows its built-in Argo CD instance to deploy them to Kubernetes.
The Delivery pipeline model also allows the creation of a single reusable pipeline that lets DevOps teams build once and use everywhere. Each step in a workflow operates in its own container and pod. This allows pipelines to take advantage of the distributed architecture of Kubernetes to easily scale both on the number of running workflows and within each workflow itself.
Teams that adopt Codefresh deploy more often, with greater confidence, and are able to resolve issues in production much more quickly. This is because we unlock the full potential of Argo to create a single cohesive software supply chain. For users of traditional CI/CD tooling, the fresh approach to software delivery is dramatically easier to adopt, more scalable, and much easier to manage with the unique hybrid model.
Learn more about Codefresh.
Deploy more and fail less with Codefresh and Argo