Blue Prints‎ > ‎

Jenkins CI Extility plug-in

Automating the control of cloud infrastructure through Jenkins CI 
Elastic computing services allow us to scale the Jenkins build cluster to meet the requirements at the moment, it also assists in functional testing of software by making it possible to easily create systems configured to the appropriate state.

User Scenario

One aspect of cloud computing is the ability to spin up machines on demand. This allows easy procurement of processing power which can be used to maintain stable and consistent performance for operations that require variable amount of resources at different periods of time. 

When running a build cluster there might be times when it will be overloaded by the incoming build and test requests. In that instance the elastic computing services would allow acquisition of additional computers to mitigate the load that is being put on the cluster at the moment. Since the cloud provides us with the ability to requisition the needed amount of slave machines on demand we are able to minimize the in house build cluster size.

Another instance where the elastic computing approach can be helpful is for functional system testing. The aim is to create a server, configure it to a certain required state and use it for the needed tests, it would be terminated after gathering the results for evaluation.

The functionality needed for the two examples that I detailed can be partially achieved using the Amazon's EC2 Jenkins CI plugin. Our ambition is to create a similar plugin with extended capabilities for Extility a cloud infrastructure product developed by Flexiant, it powers the Danish IAAS platform Cloud.dk.

Design Proposal

The plugin would provide the same capabilities as the Amazon's EC2 plugin just for a different platform as well as integrate additional features for dynamic spawning of slave Jenkins CI servers. 
The configuration of the created slave machines would be predefined in the original master Jenkins node. 

Basically the goal is to implement the EC2 dynamic scaling features for the Extility platform and expand on the system configuration capabilities. 

Estimate

To accomplish this task students will have to have knowledge in these areas.
  • SOAP services
  • Working with web API's
  • Jenkins CI server
  • Plugin development for the Jenkins CI server
  • Linux 
  • Bash
Students would spend a full semester acquiring the knowledge needed to develop an application which spans so many various disciplines and platforms.

A professional implementation done by Praqma is estimated to 50 hrs.

Status

This assignment is not started - it's up for grabs.

References

There exist some partial notes on the subject here:

Contact

Call Lars on +45 30 87 25 30 or mail to him on lak@praqma.net if you are interested in this Blue Print.


Comments