Clustering with Bamboo Data Center
Bamboo Data Center allows you to run a cluster of multiple Bamboo nodes, providing disaster recovery. We’ll tell you about the benefits, and give you an overview of what you’ll need to run Bamboo in a clustered environment.
Benefits of clustering
Clustering is designed for enterprises with large or mission-critical Data Center deployments that require continuous uptime and disaster recovery.
Here are some of the benefits:
High availability and failover
If one node in your cluster goes down, the others take on the load, ensuring your users have shortly interrupted access to Bamboo.
A Bamboo Data Center cluster consists of:
Multiple identical application nodes running Bamboo Data Center.
A load balancer to distribute traffic to all of your application nodes.
A shared file system that stores build results, build logs, artefacts, and other shared files.
A database that all nodes read and write to.
Only one application node is active and process requests. Other nodes are in cold-stanby mode and ready to start if active node fails to run. A user will access the same Bamboo node for all requests until their session times out, they log out, or a node is removed from the cluster.
Infrastructure and requirements
The choice of hardware and infrastructure is up to you. Below are some areas to think about when planning your hardware and infrastructure requirements.
You should not run additional applications (other than core operating system services) on the same servers as Bamboo. Running Bamboo, Bitbucket, and Jira on a dedicated Atlassian software server works well for small installations but is discouraged when running at scale.
Bamboo Data Center can run successfully on virtual machines.
Each node does not need to be identical, but for consistent performance we recommend they are as close as possible. All cluster nodes must:
be a dedicated machine, physical or virtual
be located in the same data center, or region (for AWS and Azure)
be connected in a high speed LAN (that is, high bandwidth and low latency)
have the same OS, Java and application server version. See Supported platforms.
have the same memory configuration (both the JVM and the physical memory) (recommended)
be configured with the same time zone (and keep the current time synchronized). Using ntpd or a similar service is a good way to ensure this
You must ensure the clocks on your nodes don't diverge, as it can result in a range of problems with your cluster.
Your Data Center license does not restrict the number of nodes in your cluster. The right number of nodes depends on the size of your Bamboo instance, and the size of your nodes.
You should ensure your intended database is listed in the current Supported platforms. The load on an average cluster solution is higher than on a standalone installation, so it is crucial to use a supported database.
Additional requirements for database high availability
Running Bamboo Data Center in a cluster removes the application server as a single point of failure. You can also do this for the database through the following supported configurations:
Amazon RDS Multi-AZ: this database setup features a primary database that replicates to a standby in a different availability zone. If the primary goes down, the standby takes its place.
Amazon PostgreSQL-Compatible Aurora: this is a cluster featuring a database node replicating to one or more readers (preferably in a different availability zone). If the writer goes down, Aurora will promote one of the writers to take its place.
Bamboo Data Center requires a high performance shared file system such as a SAN, NAS, RAID server, or high-performance file server optimized for I/O e.g. NFS.
The shared file system must run on a dedicated machine.
The file system must be available to all cluster nodes via a high-speed LAN (it must be in the same physical data center).
You can use the load balancer of your choice. Bamboo Data Center does not bundle a load balancer.
Your load balancer should run on a dedicated machine.
Your load balancer must have a high-speed LAN connection to the Bamboo cluster nodes (that is, high bandwidth and low latency).
Your load balancer must support both HTTP mode (for web traffic) and TCP mode (for remote agents ActiveMQ traffic).
Terminating SSL (HTTPS) at your load balancer and running plain HTTP from the load balancer to Bamboo Server is highly recommended for performance.
Your load balancer should support "session affinity" (also known as "sticky sessions").
If you don't have a preference for your load balancer, we provide instructions for haproxy, a popular Open Source software load balancer.
Many load balancers require a URL to constantly check the health of their backends in order to automatically remove them from the pool. It's important to use a stable and fast URL for this, but lightweight enough to not consume unnecessary resources. The following URL returns Bamboo’s status and can be used for this purpose.
Expected HTTP status
HTTP status code
An error state
Application is starting
Application is stopping
Application is running for the first time and has not yet been configured
Application failed to start up in an unexpected way (the web application failed to deploy)
The process for installing Marketplace apps (also known as add-ons) in a Bamboo cluster is the same as for a standalone installation. You will not need to stop the cluster, or bring down any nodes to install or update an app.
The Atlassian Marketplace indicates apps that are compatible with Bamboo Data Center. Learn more about Data Center approved apps