Chapter 17. High Availability

Introduction

Jenkins Enterprise comes with the capability to run in a high-availability setup, where two or more JVMs form a so-called "HA singleton" cluster, to ensure that the Jenkins master is always running somewhere. This improves the availability of the service against unexpected problems in the Jenkins master JVM, the hardware that it runs on, etc. When a Jenkins master JVM becomes unavailable (for example, when it stops responding, or when it dies), other nodes in the cluster automatically take over the role of the master, thereby restoring service with minimum interruption.

It is also important for users to understand what this feature does not do in its current form. Namely, it is not a symmetric cluster, where participating nodes will share workloads together. At any given point only one of the nodes is performing the master role (hence "HA singleton"). Because of this, when a fail-over takes place, users will see a brief down time, comparable to someone rebooting a Jenkins master in a non-HA setup. Builds that were in progress would be lost, too (but see below).

With that said, care has been taken to simplify the deployment as much as possible without sacrificing the flexibility of the deployment, and we think we have built the right foundation to enable more sophisticated clustering down the road.