The ease with which one can get a (virtual) machine up and running these days is quite simply staggering. As someone who started out in IT operations, where to provide a machine was an expensive and time consuming process, not forgetting the complexity involved in getting the new machine connected into the existing IT infrastructure (Novell et al), the latest breed of virtualization tools are a revelation.
I’ve spent a few months now working with the Oracle (Sun) Virtualbox type-2 Hypervisor as part of an investigation into the Vagrant platform. The latter of these two technologies allows virtual machines to be provisioned with only two commands – see up and running. The ability to have a large number of machines at ones disposal (for development, testing, automation, source/build, or whatever) is something that feeds the continuous delivery value chain, which I illustrate below:
The necessity to have automatic tests at every step of the chain requires machines that can be efficiently deployed to run these tests. Vagrant, with Virtualbox (or indeed any supported Hypervisor) allows any number of machines to be deployed (and destroyed – just as important to efficiently manage resources, especially where 3rd party providers are being used) “as code” as part of a continuous delivery build process.
I’ve also hooked virtual machines deployed in this manner into both Chef and Puppet scripts without any real problems. The real power of all of this lies in the ability to code the (test) machines themselves, as well as the test tools that run on these machines, along with the test assets (scripts, etc.) in an easily repeatable way so that there is no excuse not to run tests.
As you can see from the diagram above, testing, and confidence that tests are running, is essential to the continuous delivery value chain – and experience has shown that only by having evidence of testing across the early links in the chain will you convince anyone that deployment to live can actually become an automatic (not manual) step – the nirvana of continuous deployment.
CAP Project Services are a consulting business who specialize in “Enabling Continuous Delivery” within organizations by focusing on the business change involved in adopting DevOps, IaaS, virtualization and the like (for more information check out their website here). As a Director of this business its important to know enough about the technology (such as Vagrant) to help our clients understand the associated change impact. Vagrant, along with Chef and/or Puppet, looks a strong technology mix that could radically change the provisioning of machines within organizations and thus have a big impact on those organizations.
Addendum: There looks like a bright future for Vagrant so this may be a technology that can be built upon with some level of confidence….