[Camps-users] Integration with related projects
jon at endpoint.com
Tue Dec 9 19:26:22 UTC 2008
Lately I've been doing work for a client with Puppet and ControlTier, and
have found them to be a good complement to their Camps system. Each of the
pieces fills a different need, roughly:
Kickstart: Initially provisioning Red Hat Enterprise Linux servers the
same way each time. Basic stuff.
Puppet: System configuration management across the various tiers of the
application, and enforcing uniform access, configuration, and package sets
ControlTier: Application packaging, deployment, rollback, etc. It has the
nicest management interface of the bunch, with a pretty GUI that helps
non-technical people see what's going on. It can also do job scheduling.
It's fairly Java focused and is the least natural fit among the tools, and
perhaps for the typical Camps user, Capistrano would be a better choice
Camps: Development environment management including handling the split
between version-controlled code and databases, a multi-developer and
multi-project scenario, and making development work accessible to business
people at all stages.
The results of integrating Camps, ControlTier, and Puppet are so far
encouraging, and it's led me to consider whether this is a natural fit we
should document and have a recommended integration recipe for.
I'm interested in any comments you all have on that.
For small sites running on a single server, Capistrano or ControlTier feel
like overkill when I'm already deploying code directly from Git. But they
do help plan for a more complex future with a large non-versioned HTML
docroot, or multiple app servers, or automatically applying DDL changes to
the database, etc.
On another note, since Puppet and Capistrano are both written in Ruby, and
we've been contemplating rewriting Camps for version 4 anyway, I've been
thinking about whether it might make sense to write it in Ruby instead of
Perl. That would let us leverage any Puppet or Capistrano libraries that
would be useful, but it would also settle the question of which add-on
object system to use in Perl (standard blessed hashes? Moose? Coat?) since
Ruby's built-in object system would suffice and thus greatly reduce
external dependencies. (We'd see the same advantage with Python.)
End Point Corporation
More information about the Camps-users