What is Vagrant?
In the simplest sense, Vagrant is a program that lets developers create lots of different virtual machines quickly and easily.
Back in the old days of web development, when a group of developers wanted to create a new application or service they would have to physically build a server to run everything on. They would have to go get some memory, a hard drive, a processor, a case, a power supply, and all the other stuff that is needed to make a computer. Then they’d put it all together, link it up to the network, and start developing their website or application on it.
The problem with this is that if the developers needed more hard drive space or another processor, then they’d have to turn the server off, put the new hardware in, test it to make sure everything worked, and then they could carry on with what they were developing in the first place. As you can imagine this took a lot of time away from actually developing their products.
Then along came virtual machines. Instead of building another physical computer, developers could tell their computer (the one they’re working on) to split itself up into chunks and build a virtual computer inside of itself. Virtual machines work exactly the same way as regular computers, only that they live inside another computer. This way the developers can change the size of the hard drive, increase the memory, and upgrade the processing power within seconds, without having to turn anything off or physically install anything.
Vagrant uses something called a VagrantFile to create it’s virtual machines. Inside this file is a list of things that the virtual machine must do when it is created, such as install applications and move folders around. That on it’s own isn’t very special until you realize that you can share this file around with anyone that needs it. If there were a bunch of developers in Bristol and another bunch in Manchester both working on the same project, they could share the VagrantFile and each of them would be able to run their own copy of the virtual machine. It’s a great way of making sure everyone is working on the same platform.
Developers also have a nasty habit of breaking things. With regular virtual machines, fixing things would require the developers to go into the virtual machine, find out what’s going on, install or uninstall something, move loads of stuff around, and hopefully fix the problem. With Vagrant all they have to do is restart the virtual machine, and Vagrant will install everything again, just like it was brand new.
In short, having Vagrant is like having a virtual reset button. And the best part is that Vagrant is free! Visit vagrantup.com to know more.)