The launch of CloudFormation, Spiceweasel development Judd’s Swift
work and that of Eric Heydrick (not yet seen in the open) are all
testament to an accelerating interest in improving the integration of
server provisioning and configuration management. Which is no wonder,
because the possibility of automatically launching whole server
clusters that are then configured by Chef, all by issuing a single
command is not only exciting but useful.
The approach so far, however, has been at the tool level, with each
project going its own way.
I think that server provisioning should also be written in code. What
kind of servers an application needs is a valuable knowledge. How much
memory or computing power does this kind of server in your stack need?
“Ask the operations guy” is the current answer. That is wrong. Chef is
trying to take us to a better world, where server configuration is a
known quantity you store in code. Why treat server provisioning
That is why Grig Gheorghiu and I have started an Infrastructure
Deployment Specification initiative. LittleChef is going to implement
it using libcloud, but the hope is that all the projects centred
around Chef and provisioning agree on a common specification, similar
in syntax to Chef roles and recipes, and which you can use across
tools and clouds.
You can find a first draft (which is purposely simple) here:
Please join us in defining a useful specification that everyone can
use. We are of course specially interested in the input from projects
like Spiceweasel, and people like Judd Maltin and Eric Heydrick, who
are implementing similar functionality. But it is also a specification
that should feel right for Chef users, so every piece of feedback is