Jenkins on Windows Azure, the missing manual

When Geeks are talking about Jenkins, they may not mean Katherine Jenkins 


More likely, they are talking about Jenkins CI, a continuous integration technology which enables software projects to be complied and tested in a non-stopping fashion. Continuous integration avoids long and erroneous merging for large software projects. Jenkins can be installed on Windows, however, can it be run on Windows Azure? On stackoverflow, some people even doubt about the feasibility of this approach. Recently, I had the fun of playing with Jenkins on Windows Azure, it actually works! 

The benefits of running Jenkins on Windows Azure are costs and manageability. Installing Jenkins on Windows Azure avoids a permanent investment into a new hardware. Also, if the need for more Jenkins slave grows, you can easily clone more Jenkins Slaves on Windows Azure. When the job completes, those Jenkins slaves can simply be deleted. Comparing with going to store to purchase a bunch of real machine, this brings significant saving. 

The installation/configuration steps are largely the same as local machine, except for two steps.

 The first step is to try to put both master and slave into the same affinity group. Because master and slave need to maintain a persistent DCOM connection during the job run, if master and slave are separated too far away from each other, the job run will often be interrupted by the instability of the network between master and slave. 

The second one is the end point to expose Jenkins' user interface. Jenkins master expose a Web based UI via http protocol. By default, this HTTP endpoint is exposed at port 8080. Windows Azure provides additional protection for VMs, In order to visit this HTTP endpoint, we need to go to Windows Azure Portal to configure an 8080 end point for Jenkins master. 

Since I had played around for this for a while, please feel free to ask me anything about it. 

Follow me at twitter.