Eras of Continuous Integration

November 3, 2008: updated to reflect some very good comments from some fine commentators.

Continuous Integration is a practice. You can do CI without any automation at all – the original Fowler paper says as much. James Shore wrote a good guide on this.

This post is about the eras automated Continuous Integration. The title wouldn’t seem so snappy if I put all that in there.

The First Era of Continuous Integration (1999 – 2006) is of course characterised by the dominant CruiseControl product and it’s variants. Although CruiseControl wasn’t the first automated CI server (that honour seems to go to Tinderbox), it became very popular. Many projects were won for ThoughtWorks as companies would attempt to install CruiseControl, fail, and then get a friendly ThoughtWorker in to do the install. Who would get two friends in. And so on. Also notable in this era were CruiseControl.net, DamageControl, Gump, Continuum, and a few others.

I like to think of this era as the equivalent of the original .com boom. Everybody knew it was going to be interesting. Exactly how things were going to work out was another thing. Hence it made sense to have a framework for CI, rather than a fixed product.

Also, XML and XSL were briefly cool during this time, and these technologies left their mark.

The present era belongs to no single company or group. For me it began the day Team City was introduced. That product changed the game by bringing a very functional user interface and some clever build engineering and integration together. Hudson deserves a smaller mention for things like the weather metaphor. I really hate the butler; perhaps someone will come up with a bartender patch.

Ultimately I think this era will give us more usable tools and a shift towards systems integration and deployment: Ant Hill Pro has had a story about that for a while, and the Cruise team seem to be sashayingin that direction as well.

One thing that begins to matter in an enterprise context is authorisation. Can anybody drop in and change configuration? Once you do that, how do you maintain the list of users to map rights to? Active Directory/LDAP integration seems to be the trend here. Step forward Team City, Hudson, Parabuild, and Pulse and others.

(image taken from debaird’s photostream)

Tagged

3 thoughts on “Eras of Continuous Integration

  1. Eric Minick says:

    Definitely an interesting take. Naturally we agree with you on the direction of the space.

    The 2006 cut off is quite astute if we were to mark out two eras. We saw a huge company vaguely enter the space with the BuildForge acquisition in May and October looks like it marked both the TeamCity release and AnthillPro’s shift from a single server build system to a more enterprise tool with the testing and deployment focus.

    I might argue that there are three eras. 1999-2001. 2001-2006. 2006+. It was really CruiseControl (and to some extent AnthillOS) that seemed to popularize the idea of CI servers and those popped up in 2001. Early 2002 saw the next wave of tools if memory serves.

    Also, keep in mind CI predates specialized tools designed to help it.

  2. If CruiseControl is the parent of the current CI servers then Tinderbox is the grandparent!

    When I found CC I was intending to write a Tinderbox equivalent for Java…

  3. You might want to add our Parabuild to the list of production-grade Continuous Integration systems. It came to be after Anthill (Parabuild’s first public release was in 2004) and long before TeamCity and Cruise.

Comments are closed.

%d bloggers like this: