This plugin uses Gearman to support multiple Jenkins masters.
We on Openstack infrastructor team use Jenkins extensively. Our jenkins servers, at peak load, runs 4000+ jobs per day. At that load we are running up to the limit that a single Jenkins master can support. We wanted to balance the load across multiple masters, however Jenkins core does not support multiple masters. The gearman-plugin will provide some load balancing and redundancy to any Jenkins deployment.
Jenkins core does not support multiple masters. You can setup multiple Jenkins masters but there is no coordination between them.
One problem with scheduling builds on Jenkins master (“MasterA”) server is that MasterA only knows about its connected slaves. If all slaves on MasterA are busy then MasterA will just put the next scheduled build on its queue. Now MasterA needs to wait for an available slave to run the build. This will be very in-efficient if your builds take a long time to run. So.. what if there is another Jenkins master (“MasterB”) that has free slaves to service the next scheduled build? Your probably saying “Then slaves on MasterB should run the build” then I would say "good thought!". However MasterB will never service the builds on MasterA's queue. The client that schedules the builds must know about MasterB and then schedule builds on MasterB. This is what we mean by lack of coordination between masters. This gearman-plugin attempts to fill the gap.
This plugin integrates Gearman with Jenkins and will make it so that any Jenkins slave on any Jenkins master can service a job in the queue. It will essentially replace the Jenkins build queue with the Gearman job queue. The job will stay in the Gearman queue until there is a Jenkins node (master or slave) that can run that job.
This assumes some familiarity with Jenkins and Gearman
The Gearman plugin configuration should appear in the Jenkins global configuration page. Click on the help bubbles if you need help with the configuration. Clicking on the Launch Workers checkbox will start the gearman workers for the Jenkins server. You should test the connection to your Gearman Server before launching the workers.
Starting the Gearman workers:
Running a Jenkins build:
Stopping a Jenkins build: