Vagrant greatly simplifies development
November 30, 2016

Vagrant greatly simplifies development

Andrew Shell | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with Vagrant

Originally our company would do development on remote machines. I'd SSH into a development box and do my work. I found that this was less than ideal because it was a lot of work to set up different boxes for any additional developers.
When we started work on our second application Taskle, I decided to try using Vagrant for our development environment. I had seen a presentation about it at a local user group and thought it would make development easier.
Initially we used Vagrant with Chef, but eventually, I found Ansible and have really liked using it.
Since Vagrant is a tool for development environments, it's only used by our developers. We currently have several freelance developers working on our applications in addition to myself and we all use Vagrant boxes for development.
  • Vagrant allows me to do development locally. That means that as long as I have my computer I can work on our product. This has been helpful when our internet has gone down, or even just if the internet has been slow. I've also been able to work in the car or when I'm camping and don't have wi-fi.
  • Vagrant has allowed me to set up a consistent development environment for all of our developers. I know they are using the correct version of the servers and of the code.
  • Vagrant allows me to easily.
  • Vagrant also allows me to experiment with alternate configurations. I can test our for instance if upgrading the OS or version of PHP is going to break anything.
  • Because Vagrant is a low-level tool with many ways to configure it, there is a steep learning curve. You don't just have to learn (or install) Vagrant, but also Virtualbox, Ansible and possibly some Vagrant plugins to keep boxes up to date.
  • Support on Windows doesn't seem great. I'm a Mac guy, so it's been very difficult getting things to work as expected when a developer wants to work on Windows.
  • Perhaps I didn't configure it correctly, but the default shared folders are not the best for performance. There are also frequently weird issues regarding file permissions.
  • It has streamlined our development processes allowing me to get more development done in a shorter amount of time.
  • It has made developer onboarding quicker. Instead of spending a whole lot of time helping a developer getting our application to run on their unique environment, I know that everything is correct.
  • Doing development locally means that we don't have to have one or more development servers running in the cloud that we'd be paying for otherwise.
  • VirtualBox
By default Vagrant uses VirtualBox but compared to using VirtualBox directly, I've found using Vagrant makes things easier. For one, you can commit your Vagrant configuration to GitHub and manage changes that way. I'm not sure how you'd handle updated virtual machines to all your developers otherwise. You would probably have to distribute binaries which would make it difficult to know if you're running the latest box.

If you're writing software, particularly software that depends on other services (web servers or databases for example) then Vagrant is great. I know some people skip Vagrant and just set up virtual machines on their own, but I've found that Vagrant streamlines the process nicely and makes it easy to update or swap out versions.

If you're a web developer (which I am) it's amazing. I can have several boxes configured for my different projects and I just spin them up or down based on what I'm working on.

One scenario where this might not be ideal is if you're running Vagrant on a computer that has limited resources. Since you're running a virtual machine with its own operating system and such you'll want a host computer with enough RAM, hard drive space and CPU to run the virtual machine properly without killing the performance of the host.

The virtual disks can also take up a lot of space if you're not careful so if you have many virtual machines provisioned and don't clean up the old ones that you're not using, you may find that your hard drive is full. Each of my Linux servers take up about 10GB of disk space.