This would a be a post in the forward looking my mind was wandering this morning category. So, take it as such.
Deployment and Configuration management in a cloud environment can be quite the chore. I have used Puppet and Capistrano both effectively in the past. Have you guys see Sprinkle yet? I just saw it last night but have been having some interesting conversations about it today. I haven't used it yet but will likely experiment with it soon. From the site:
"Sprinkle is a new prototype tool that you can use to provision your servers/slices. Its declarative policy/state based approach for specifying how a remote system should be provisioned with intelligent logic to support dependencies, multiple installer types and remote installation is really compelling."
I thought it was pretty clever. It's a prototype at this stage but seems promising. It reminds me of the idea of genetic expression in cells. I had to go back and find the paragraph in the book, "The Singularity is Near" by Ray Kurzweil to remember exactly what it was that was said there. I found it:
"This process is analogus to gene expression in biological systems. Although every cell has a every gene, only those genes relevant to a particular cell type are expressed."
So, Sprinkle remineded me of that phrase from that book only it's applied to the configuration and assembly of clusters of servers primarily in virtualized environements instead of an biological organism. So, we could re-write the quote above to be something like:
This process is analogus to gene expression in biological systems. Although every server has every configuration and component, only those components relevant to a particular cluster and role are expressed.
I loved how 37 Signals was using AWS EC2 Security Groups to "tell" an AWS server what role it should play; very Clever. Thanks to Todd Hoff, the other The Hoff, at HighScalability for the article that pointed me to this tool in the first place.
There are also some interesting forks on github floating around already as well that are worth a peek.
RubyForge - http://rubyforge.org/projects/sprinkle/
GitHub Clone - http://github.com/crafterm/sprinkle/tree/master