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

Comments (8)

  1. Magnus says:

    Hi! I like the post. Im having a project at school with finding a solution for test and build system and thinking about doing Jenkins on a Azure server. Do you know what the cost of it?

  2. The cost depends on the size of the virtual machine you have. For details, please see Windows Azure Pricing Calculator http://www.windowsazure.com/…/calculator

  3. Sean says:

    Is there a link to how you set this up?

  4. I have a document describing how to do it, what exactly are you looking for?

  5. Sean says:

    Nothing more than a step by step guide to get going.

    Is this explained in your document?

    "he 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. "

  6. Affinity group is a general Windows Azure concept, the configuration of it can be found here msdn.microsoft.com/…/jj156209.aspx

  7. DevMon says:

    Where can we get the step by step guide for this? Help please!

  8. Just published how to build master and slave respectively, however, since we use github to host code, those posts are geared towards github.

    blogs.msdn.com/…/jenkins-on-windows-azure-the-missing-manual-master.aspx

    blogs.msdn.com/…/jenkins-on-windows-azure-the-missing-manual-slave.aspx