On Ditching Vagrant

24 points by raymii


mitchellh

Wow, I haven't heard about Vagrant in a long time. But I'm happy it served you so well so long.

I think Vagrant is very long in the tooth (and has been for a long time), but this blog post is a really good example of why I created Vagrant in the first place and why there's still space for a tool so high level and relatively simple: look at all steps to move to libvirt+kvm!!

The idea behind Vagrant was always: (1) install hypervisor (one package) (2) install Vagrant (3) vagrant up for everyone but the person who sets up the Vagrantfile. I mean, I originally created Vagrant partially so that designers and non-technical managers could use it, and they did! A lot! VirtualBox/VMware was a packaged installer on almost all systems, Vagrant was a packaged installer, and then they just had to learn the bare minimum terminal stuff to run vagrant up. I saw this work in practice time and time and time again. I couldn't imagine trying to explain to them how to setup libvirt and kvm haha (although, on their own excellent tech ofc).

There's a reason the original domain for the project was "vagrantup.com". I wanted the domain to basically match the only thing most people ever needed to know about Vagrant. The rest didn't matter. The number of people deeply aware of and writing Vagrantfiles or boxes is nothing compared to the number of people that just ran up.

There's a lot of reasons I think Vagrant doesn't make sense in mainstream contemporary tech stacks today. But, I also believe that there's never been a true replacement that encapsulates the simplicity that Vagrant brought to a large cross-section of people.

Docker got really close. But I firmly believe that "nouns" matter and the problem with Docker to me is there a ton of stuff that is focused on deployment/runtime aspects and it meddles with the human flow. The fact that Vagrant was focused directly, exclusively on development was by design: the configuration, the CLI, etc. revolved around development-focused nouns, and I think that was a good thing.

(My top request over the years and years of Vagrant was always "I want to use Vagrant to deploy!" and I tried and failed a bunch of different ways but ultimately kind of came around to: nouns matter, and Vagrant can't deploy without sacrificing dev.)

If it isn't obvious, I started Vagrant. :)