The CloudBees Jenkins Platform (CJP) combines CloudBees Jenkins Operations Center (CJOC) and CloudBees Jenkins Enterprise (CJE) components into a single product. The platform is made available to customers in two editions, targeting different deployment types: Enterprise Edition and Private SaaS Edition .
As organizations increase their Jenkins usage, a need arises to scale Jenkins horizontally by adding additional controllers. In the past, this posed significant challenges because each controller required its own separate plugins, security, and maintenance; upgrades had to be performed individually on multiple machines. CloudBees Jenkins Operations Center addresses these challenges by allowing users to manage and monitor all controllers from a single management tool.
This article targets existing CloudBees customers. We will review the reference architecture of the CloudBees Jenkins Platform with a focus on CloudBees Jenkins Operations Center and its management, monitoring, and scaling capabilities. Customers already using CloudBees Jenkins Operations Center should review the corresponding section to ensure their license is set up correctly. For customers not using CloudBees Jenkins Operations Center, references are provided for migrating from standalone CloudBees Jenkins Enterprise instances to the CloudBees Jenkins Platform.
CloudBees Jenkins Platform Reference Architecture
Client controllers
CloudBees Jenkins Operations Center sits a level above your existing CloudBees Jenkins Enterprise architecture and acts as a “controller of Jenkins controllers.” Any CloudBees Jenkins Enterprise instance connected to CloudBees Jenkins Operations Center is called a Client controller.
Analytics
CloudBees Jenkins Analytics captures meaningful performance and build data from Client controllers and includes several dashboards out of the box, while also providing the flexibility to build your own dashboards.
Shared agents
Most Jenkins architectures should already be leveraging distributed builds , or a “controller/agent” model where builds are run on separate compute nodes or containers (“agents”) rather than on the Jenkins controller itself. In a traditional architecture, agents must be configured on every controller and a peak load on one controller cannot borrow agents from another controller. With CloudBees Jenkins Operations Center, agents can be centrally pooled and leased out to client controllers on demand.
Custom Update Center
Maintaining plugin security and consistency can be difficult in a traditional Jenkins architecture. Custom Update Centers are an internally-hosted mirror to upstream plugin/core repositories. They allow administrators to manage which plugin and core versions are approved/available for the Client controller(s) that use the Update Center. Administrators should leverage their test environment before making approvals.
Cluster Operations
Cluster Operations orchestrate the execution of maintenance operations against Client controllers, for example: backup, restart, upgrade approved plugins, etc. Cluster Operations can also execute any Groovy script. They are especially useful for more customized housekeeping tasks, such as stale job clean-up.
Cluster-wide Job Triggers and Move/Copy/Promote
CloudBees Jenkins Operations Center allows users to trigger downstream jobs on remote controllers with an intuitive user interface. Jobs can also be moved, copied or promoted across controllers. Job promotion performs thorough validation steps to ensure the job is supported on the target controller.
Security/SSO
Authentication and authorization strategies configured in CloudBees Jenkins Operations Center are (optionally) synchronized with Client controllers. This offers administrators a single location to hook into the security realm (e.g. AD or LDAP) and also share authorities (groups and roles) across Client controllers. Single Sign-On (SSO) is set up automatically, so platform users only need to log in once.
For Customers not Using Operations Center Today
CloudBees Jenkins Operations Center is now included as a component of CloudBees Jenkins Platform. Installing and configuring CJOC requires planning and you should estimate a few man-days effort plus the necessary steps to change your current Jenkins environment (e.g.: maintenance window, communication plan, etc.), depending on the size and complexity of your current Jenkins environment.
The following references will help as you plan your effort:
Provision Hardware - See Hardware Recommendations and High Availability .
Installation Steps - See Installation Instructions .
License - Contact your CloudBees account team to ensure you have the appropriate license (see “For All Customers” section for details). Your account team will also provide you with the download location.
Configure Security - See Security .
Configure Network - See Network Requirements (note that Jenkins Operations Center has unique network requirements for Client controller connectivity).
Connect Client controllers - See Client controllers .
Configure Shared agents - See Shared agents .
Configure Analytics - See Analytics .
Configure an Update Center - See Update Center Plugin .
Contact your account team (or sales@cloudbees.com ) and reference this blog post if you have any questions or would like to see a walkthrough of the new CJP features.
The CloudBees Professional Services team is also available to assist for with migration / installation projects, if needed. Contact ps@cloudbees.com for more information.
For All Customers
Licensing has changed with the transition from standalone products to the combined CloudBees Jenkins Platform. If you’re currently using separate licenses for CloudBees Jenkins Operations Center and CloudBees Jenkins Enterprise, simply open a support case or contact your account team and ask for a CloudBees Jenkins Platform license.
With CloudBees Jenkins Platform, a single license is entered in CloudBees Jenkins Operations Center (Operations Center > Manage Jenkins > Manage License). The CloudBees Jenkins Platform license will activate CloudBees Jenkins Operations Center and automatically issue sub-licenses to connected Client controllers. You can check how many Client controller and Executor licenses are available by clicking the ‘Check Validity’ button on the CloudBees Jenkins Operations Center Manage License page:
Every Client controller connected to CloudBees Jenkins Operations Center must be configured with a licensing strategy to your requirement; see licensing documentation for more details.
The process for licensing new Client controllers is streamlined once you've enabled Operations Center to issue sub-licenses. The first boot of a new CloudBees Jenkins Enterprise instance (Client controller) will bring you to a new and improved licensing interface where there are several options available:
To take advantage of sub-licensing to activate the new instance, select the “Join a CloudBees Jenkins Operations Center controller” option and provide the connection details.