I've used similar techniques to Yaakov, with good results. The
combination of IaaS and server build automation (Chef/Puppet/etc) is
really powerful; recapitulation and data migration are often *far*
less difficult and worrisome than doing an in-instance
upgrade/rollback cycle. Doing recaps semi-regularly also reduces the
problem of cruft left over from previous solutions, making it easier
to reason logically about the current state of systems.
At Infochimps we're still feeling the pain of poor packaging, and are
currently leaning toward Artifactory to help address that. Keeping
versions together, however, is an essentially solved problem; we
version our cookbooks, manage versions with environments, and use
those cookbooks to manage versioning for everything else as necessary.
--
Nathaniel Eliot
T9 Productions