Managing virtual machines with Vagrant
While it's great to be able to deploy virtual machines in the cloud, running them on your own desktop is sometimes even more convenient, especially for testing. If every developer can have a clone of the production system in a VM on his/her own machine, he/she's less likely to run into problems when deploying for real. Similarly, if every sysadmin can test his/her configuration management changes on a private VM, it's a great way to catch issues before they affect customers.
For some years tools such as VirtualBox and VMware have been available to do this. However, desktop cloud has really taken off with the arrival of Vagrant, a tool for managing and provisioning VM environments automatically. Vagrant drives VirtualBox or another virtualization layer to automate the process of creating a VM, provisioning it with Chef or Puppet, setting up networking, port forwarding, and packaging running VMs into images for others to use.
You can use Vagrant to manage...