Investigating the Possibility for an Active/Active Highly Available Jenkins

University essay from KTH/Skolan för informations- och kommunikationsteknik (ICT)

Author: Daniel Olausson; [2013]

Keywords: ;

Abstract: Jenkins can play an important role in software development. If Jenkins would be shut down because of failure, it would mean a halt in the development process. This thesis investigates the possibility of increasing the fault tolerance of Jenkins by running multiple instances of Jenkins in parallel and let them cooperate and share the load. In case failure occurs to one Jenkins, another Jenkins can take over. The major restriction was to not modify the source code of Jenkins. The results of the investigation are that Jenkins can be modified to achieve high availability in the form of an active/active solution. Events in Jenkins related to build jobs can be replicated, these include: creating, modifying and deleting build jobs, also replication of builds can be replicated. The data replication technique had to be done asynchronously which introduced problems such as data collisions and ping-ponging. No solutions were found that could avoid data collisions; however, they can be detected and resolved. A major issue is that other plugins in Jenkins could not be made aware of there being more than a single Jenkins. This issue and areas such as synchronization of user accounts, and the behavior of Jenkins slaves, needs to be further investigated.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)