Welcome to CloudBees Build Acceleration®
CloudBees Build Acceleration from CloudBees, Inc. is a software build accelerator that dramatically reduces build times by distributing builds over numerous inexpensive servers on a LAN or a public cloud such as Amazon EC2 or Google Cloud Platform. It uses CloudBees’ proven technology to speed up builds and manage build workload. The purpose of CloudBees Build Acceleration is to enable more-frequent build-test cycles and shorten the time to market.
CloudBees Build Acceleration provides optional JobCache functionality, which enables the reuse of build outputs from one build to the next to further accelerate builds. For details, see Job Caching.
CloudBees Build Acceleration uses a patented dependency management system to identify problems that break parallel builds and fix them in real time. Build speeds vary as source files grow and change—and CloudBees Build Acceleration continuously studies actual build and test dependencies and uses that information to reorder steps dynamically and optimally for subsequent builds.
CloudBees Build Acceleration plugs seamlessly into existing software development environments and includes web-based management and reporting tools. CloudBees Build Acceleration includes the following main components:
This document includes some basic terms and concepts as well as explanations of the relationships among the parts of CloudBees Build Acceleration. It also includes more information about the CloudBees Build Acceleration Cluster Manager web UI—a web-based dashboard for managing the pool of servers and viewing numerous types of build-related activity.
Integration with your existing environment
CloudBees Build Acceleration works well with a variety of build environments and tools such as:
-
Popular Windows and Linux operating systems as well as IDEs and test tools. CloudBees Build Acceleration plugs into your existing tools and scripts to allow push-button preflight and production builds and tests without modifying your development and test environment.
For Visual Studio users, the CloudBees Build Acceleration installer adds the ACCELERATOR menu to the Visual Studio menu bar to let you run builds directly from within Visual Studio at the click of a button. You do not need to convert your project or solution files.
-
Existing GNU Make (gmake), gcc, Microsoft NMAKE, Cygwin, and other build infrastructures. CloudBees Build Acceleration relies on eMake—a high-performance replacement for gmake. You invoke eMake interactively or through build scripts.
-
The Ninja build system. CloudBees Build Acceleration can emulate Ninja in addition to standard CloudBees Build Acceleration make-based builds such as gmake and NMAKE.
-
Popular static code analysis tools such as those from Klocwork, Parasoft, and Coverity as well as linting tasks or unit tests.
For best performance and results, your development and test environments should be identical across all participating servers.
eMake root
The "eMake root" identifies the parts of the eMake machine’s file system that will be accessible to CloudBees Build Acceleration. The --emake-root
option specifies the location of the Electric File System root directory (or directories). All files under the eMake root directory (or directories) are mirrored automatically on each agent.
You must specify the correct root directory (or directories), or the build might fail, because eMake cannot find the necessary files. (If the --emake-root
option is not identified explicitly, then eMake will use only the current directory.) The eMake root must include any files written by the build, should include any source files read by the build, and may include tools used by the build. For best results and performance, be sure to include:
-
All files written by the build
-
All source files
-
The location for build output files (such as object files and linker output)
-
Other files read by the build (such as third-party tools and system headers)
To specify more than one directory or subdirectory, separate them by using standard PATH
variable syntax (a colon for UNIX or a semicolon for Windows). For example, on UNIX:
--emake-root=/src/foo:/src/baz
This example streamlines the root path by excluding other /src
subdirectories not needed by the build.
Any files used by the build, but not included under an eMake root directory, must be preloaded onto all hosts and identical to corresponding files on the system running eMake. If these files are not identical, eMake could find and use the wrong files. This approach is appropriate for system compilers, libraries, header files, and other files that seldom change and are used for all builds.
An improperly set eMake root is the most common cause of unexplained build errors and broken builds. For more information about the eMake root, see Setting the eMake Root Directory.
Licensing
CloudBees Build Acceleration is licensed based on the number of agents in use, the entitled version, and, for most licenses, the number of builds that are running concurrently. You use the Cluster Manager web UI to import a license to enable licensing. For more information about licensing, see Logging In and Enabling Licensing.
Cluster Manager web UI
The Cluster Manager web UI is installed as part of the Cluster Manager. It is accessible at https://<server_hostname_or_IP>/
.
You use the Cluster Manager web UI to see the list of builds and other build information, reports about agents, and other statistics. The following sections describe some of the key functionality of the web UI.
Home tab
The Home tab provides information such as links to documentation and other assistance, instruction for novice users, and charts for agent usage and build durations during the past 24 hours.
For details about this tab, see The Home Page.
List of builds and other build information
The Builds tab displays a list of the running and completed builds and key information about each build such as the start time and duration, the hardware platform, and whether completed builds succeeded or failed.
For details about this tab, see Builds.
The Build Classes subtab lets you view and edit the classifications that you use to group builds by version or release, product type, development stage, platform, or other criteria to organize your build management process. For details about this subtab, see the Build Classes.
Details about agents
Click the Agents tab to see details about each agents in the cluster such as the agent host name and hardware platform, agent software version, and agent status (such as whether it is running, has a problem, or has failed).
For details about this tab, see Agents.
The Resources subtab lets you perform cluster resource management tasks such as creating, editing, or deleting cluster resources. For details, see Resources.
The Agent Policies subtab lets you manage a cluster by configuring agent allocation and the clock skew (out-of-sync) allowed between eMake clients and agents in the cluster. For details, see the Agent Policies.
Reports and build and agent statistics
Click the Reports tab to see reports using many types of analytics about your build cluster and several types of data visualization such as scatter plots and pie charts.
For example, the Build Duration report is a scatter plot that shows the durations of builds over a specified time period:
For details about the Reports tab, see Reports. For details about the Build Duration report, see Build Duration Report.
You can click a build to navigate to the Build Details page for that build:
For details about this page, see Build Details.
The Server Load subtab provides metrics such as the number of running builds and agent statistics such as agent shortages caused by high build demand or license limits. For details about this subtab, see Server Load.
The Realtime Server Metrics subtab provides metrics such as JVM free memory and the number of concurrent builds. This tab provides low-level performance metrics and is meant primarily for use by CloudBees Technical Support.
Cluster Manager messages
Click the Messages tab to see messages from the Cluster Manager, agents, and eMake. This tab provides message details such as the severity, time and date, message text, and the build or agent that reported the message.
For details about this tab, see Messages.
The Message Policies subtab lets you configure the minimum severity level for email notifications and whether to be notified when new messages are generated. For details about this subtab, see Message Policies.
Agent cloud bursting
Click the Cloud tab to see status for each Azure Services Platform, Amazon EC2, Google Cloud Platform, or Kubernetes instance that is active (that is, running a build). This tab provides details such as the instance ID, status (such as pending, running, or done), host name (internal DNS name), platform, and date and time the instance was launched.
For details about this tab, see Cloud Burst Status.
Cluster Manager administration
Click the Administration tab to view and edit details about the current logged-in user (such as the full name, email address, and assigned groups).
For details about this tab, see Administration.
The Permissions subtab lets you view and edit a variety of permissions for cluster users, groups, and the Cluster Manager administrator. You use this page to set or modify the permissions for using other tabs in the Cluster Manager web UI and for Cluster Manager server access, user impersonation, and eMake invocation.
For details about this subtab, see Permissions.
The Server Settings subtab displays Cluster Manager server preferences for message logging, notifications, transmission of anonymous usage statistics to CloudBees, and management of optional cloud providers such as Amazon EC2 or Kubernetes.
For details about this subtab, see Server Settings.
The Licenses subtab displays all license information known to the Cluster Manager and shows the usage to which you are entitled. The Cluster Manager reads this information from the current license file. This page typically displays a single license.
For details about this subtab, see Licenses.
The Users, Groups, and Database Configuration subtabs let you add, delete, or configure users and local user groups and configure the database connection (name, host name and port, login credentials, and database type such as MariaDB or Oracle). For details about these subtabs, see Users page, Groups page, and Database Configuration.