You've probably heard of Vagrant by now. It's the command-line tool that allows you to "create and configure lightweight, reproducible, and portable development environments."

So why is developing in a VM any better than developing on a local xAMP stack? Because it's not just about Drupal. Who hasn't developed a site locally, only to have it blow up once it's deployed to staging or (gasp!) production systems? By modeling those production systems in your local environment you significantly reduce the risks and time wasted.

Oh, and it helps with reproducing bugs locally, since you're not hacking on the live site, right? Right?!

While tremendously useful all on it's own, integration with Drush, and a robust templating system, adds all kinds of hotness. You're only ever a single command away from building (or rebuilding) a development environment perfectly suited to you, or a test environment nearly identical to your production systems. In fact, you can have several such environments going at once. Want to check that your module works behind a Varnish cache, under both Apache and Nginx? Yeah, it can do that.

Better yet, blueprints for building such environments are easy to share with the rest of your team. All the configuration is managed via Puppet (Chef support is planned), and versioned under Git by default. By sharing and using identical environments to collaborate on projects, you can all but eliminate the dreaded response "it works on my machine".

The blueprint for which this system was originally developed provides a full Aegir system in your VM, allowing for provisioning and cloning sites at the click of a button. In addition, with the liberal use of Aegir contrib modules, you can have a workflow that consists of:

Cloning your production environment locally;
Importing a copy of your live site into it;
Updating features with whatever changes are required;
Committing those changes into Git; and finally
Pulling those changes back onto your live server.
All via the Aegir UI interface! We're even working on a local (Jenkins-based) continuous integration server that can run your test suite regularly, behind the scenes, to ferret out any regressions recent changes may have made.

Anyway, be sure to checkout this session that'll cover all this and more!

Loading more stuff…

Hmm…it looks like things are taking a while to load. Try again?

Loading videos…