RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


Which Continuous Integration Tool Is Best for Hosted CI? : Page 2

The development team for the continuous integration platform FaZend.com installed, configured, and maintained leading continuous integration tools, including Hudson and CruiseControl. Find out what they learned about working with the top CI tools.


Continuum Continuous Integration

We started in 2009 with Continuum. It's an open source product being developed by the Apache Software Foundation, with a strong focus on Apache technologies. The biggest problem was access control configuration. In terms of user management, Continuum relies on Redback, which has two options for where to keep account information: database or LDAP. Thus, in order to inject our own user accounts details into Continuum we could either 1) make direct SQL updates to its database, or 2) install, configure, and maintain an LDAP server just for this purpose. We pursued the second option, since the idea of getting a direct SQL access to a third-party database looked very un-safe.

All other problems were related to the principles of information management implemented in Continuum. It keeps everything in an un-documented relational database, where it was almost impossible to add anything without breaking the internal rules of these data structures. In other words, the system looks like a very closed black-box, not oriented to integration with other products.

CruiseControl Continuous Integration

In November 2009 we decided to migrate to CruiseControl. The software was originally developed by ThoughtWorks, Inc. This system looked more open for us, since it keeps all (well, almost all) of its internal configuration data on disc, in XML files. Unfortunately, even this CI tool appeared to be rather closed, and we were not able to extend it for our needs. For example, there is no ability to define a custom schedule of build execution. You can't build both after every commit and every night.

These were minor configuration problems, which were solved or we just let them live in the system. A much bigger problem was a lack of documentation for server-side formats and principles of organization of files. Sometimes they are managed in a very strange way (not in XML, to say the least).

Hudson Continuous Integration

In August 2010 we migrated to Hudson. This open source product is developed by Oracle and looks very lightweight and extensible. To be honest, there is still a complete absence of documentation for server-side components, but their structure and organization is easy to understand after just a few hours of experimenting. Everything is configurable through just a few XML files, and there are a lot of plug-ins written by contributing developers.

Editor's Note: The primary developers of Hudson recently ported their own version of the project to GitHub and renamed it Jenkins.

This is a summary of our needs and software tools we have tested so far:

Simplicity of computer-driven configuration Bad Average Good
Access control maintainability Average Average Good
Integration with different SCMs Good Good Good
Business logic configurability Good Average Good

Hudson Comes Out on Top

At the moment we are happy with Hudson. There are many other tools in the market and each one of them is more suitable to a certain business case than the other. In our situation, with an unpredictable variety of SCM systems, build tools, and configuration requirements, Hudson proved to be the best choice.

Yegor Bugayenko is founder and CTO at FaZend. He is the author of a dozen academic papers on process improvement, quality assurance, and project management and the proud holder of PMP, OCUP, RUP, MCP, PRINCE2, and ZCE/ZFCE certificates. He also has authored 5 pending patent applications.
Email AuthorEmail Author
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date