Thursday, June 2, 2011

Vagrant for repeatable development environments

"Vagrant is a tool for building and distributing virtualized development environments."

I stumbled upon Vagrant last night while looking at buildbot and Jenkins.

Vagrant leverages Sun's Oracle's VirtualBox as well as Opscode's Chef or Puppet Lab's Puppet to give you the ability to easily create and provision Virtual Machines.

I ran through their Getting Started with Vagrant documentation, and everything worked beautifully. I'm looking forward to poking at it some more.

I think that Vagrant gives developers and ops two huge advantages:

1) Getting a new environment up and running for onboarding new developers is now a snap.

2) By deploying a development environment in the same way as other (sand, staging, prod) environments are deployed, you minimize (or eliminate) differences between environments, and therefore keep the wall between development and ops obliterated. No "oh, but it works in my dev environment" finger-pointing allowed!