Where are the Capistrano alternatives?

Is Capistrano the new CruiseControl?

I used to love CruiseControl, back when setting up a continuous integration build was a wonderful new thing, and you tolerated all its quirks and shortcomings and just made it work to get that build goodness going.  But time moved on, and the rate of updates seemed to stagnate, and well, other cool stuff happened along.  Now, despite Thoughtwork's rejuvenation efforts, its hard to sell CruiseControl to a dev group. We currently group use Hudson, but there are other more and less ornate options out there.

Has the same stagnation happened to Capistrano?

We're trying to pool some automated deployment goodness between a few teams. One team is just setting up, one has a Capistrano based setup, and the other started out with cap, but became frustrated and crafted their own ruby solution. Hmmm, what to do?

The Operations team we're all working with would prefer one flavour, their friendliness towards automated deployment is relatively new, and hard won. The dev teams should agree on a common set of tools and work with them.  I'm not so hot on developing our own as configuration management and deployment setups can get surprisingly complex and cumbersome to refactor.  It isn't as easy as it looks.

I'm inclined to push for Capistrano, regardless.  Sure, it hasn't been updated in almost a year, but then again, how much has the problem changed? (aargh, I remember saying the same thing about CruiseControl!).  Perhaps our frustrations with it are simply through not understanding it thoroughly enough.  We need to look deeper.

Or look elsewhere.

Cosimo Streppone has a good roundup of Capistrano alternatives making a distinction between configuration management and "last mile" deployment, which is fair enough.

configuration tools:
deployment tools:

In the end, he went with Puppet for config, and Fabric for the deployment.  His main reluctance was that Fabric does not support parallel processing.  I'm not sure if that is an option for us, as Fabric is Python.  We're having enough issues supporting Java + Ruby bilingualism without adding another dialect (if you say "Erlang" I'm going to have to strike you again, my friend).

This as good a list of options as I've been able to find, but there is a lot of overhead to adopting many of the configuration setups.  We may end up sticking with Capistrano just because of its simplicity, like a happy old car.

Printed from: http://slowbluecamera.com/2010/07/capistrano-alternatives/ .
© David Benjamin 2010.

Leave a Reply