Tuesday, October 28, 2008

Smoother cloud deployment

Jambool is growing fast and we'll soon need a much smoother way to manage our deployments.

As preparation for some of our code and deployment cleanup, I wrote a little plugin - capistrano-sdb that allows you to store your capistrano configuration in Amazon's SimpleDB.

Capistrano is a deployment automation tool that greatly simplifies the task of deploying code (especially ruby on rails code) to a bunch of servers. SimpleDB is, well, a simple db in the cloud.

My plugin allows you to use simpledb in one of two modes - either as a fallback for capistrano's config system, or as an override to it. Why would you ever want to do that?

Dynamic configuration can sometimes get out of hand - because it's hard to debug. However, dynamic configuration for deployment-related variables is a great idea. In today's world of cheap, throw-away hardware, servers are constantly being replaced. We're also iterating constantly on new services in our services-oriented-architecture, and information on where those services run needs to be up-to-date.

Using simpledb for deployment configuration is one building block towards an autonomic server environment. Stay tuned for more.