Vagrant Love
Vagrant is awesome!
Given its much deserved popularity this won’t surprise many. This isn’t even new, I’ve used it daily for quite awhile. Recently while discussing use cases where Vagrant was an awesome fit I found myself wondering just why is it such a great tool?
The best tools are those that reflect a deep understanding of the use cases and paradigms they are made for. Vagrant is actually quite simple, roughly it just ties together some pre-built vms with the appropriate providers and configuration management tool. The key is that it does so cleanly without adding baggage to the process.
Another aspect that is important is that Vagrant chooses sane defaults but still allows configurability. The sane defaults combined with the clean design mean that more often than not Vagrant makes building vm based environments far easier than any other way. This is probably what I love most about Vagrant, I can turn around a clustered dev environment in under 5 minutes and even share it with my team with no extra work. This is orders of magnitude faster than other solutions.
Building Vagrant based environments that fast takes good docs and familiarity with Vagrant. Vagrant has great simple and clear docs and the familiarity largely comes because Vagrant is versatile. The configurability of Vagrant allows it to have quite a bit of depth for those less than standard use cases. This in turn means you come to know the tool and appreciate its simplicity and ease, which in turn makes it easier to use. All of this ultimately culminates in you writing a blog post about Vagrant love.