Last night I attended what is shamefully only my second Belfast Ruby meetup (for those interested you can read my awesome review of the first ever Belfast Ruby meetup). It was a talk by Barry Gordon about Vagrant.
Vagrant is something I had heard of and was marginally on my list of things I should really try and break my computer with one day, but I had never given it more than a cursory look when someone tweeted it. With this in mind I found Barry's talk incredibly enlightening.
Barry started off by discussing the disconnect between our development environments and our production environments, mainly that we treat our development environments like pets, we care for them, give them names and play favourites (everyone prefers their key-bindings, and good luck pair programming with a damned emacs user!), yet we treat our production environments like cattle - We don't get attached to a particular instance, and when a new instance is spun up we can't really tell it apart from the last one.
He then went on to say that perhaps we should be treating our development environments in much the same way, which is where Vagrant comes in.
Vagrant essentially lets you provision and spin up a development environment based on a set of instructions from things like chef cookbooks, puppet scripts, bash scripts, etc. This means you can share an environment that will be identical on every persons machine. This helps to avoid 'Works on my machine' style bugs and also stops you from continually forgetting that you need to install version 126.96.36.199.3.4.2 of some library instead of 188.8.131.52.3.4.3.
At the head of the talk Barry made sure to point out that this is something he wants to play more with and that this should very much be treated like an intro but his talk, and the sample scripts he talked through were more than complete for the general use cases and everything seemed simple enough (famous last words) and he was certainly able to answer any questions people had with authority.
All in all it was an excellent talk, it has opened my eyes to a new way of thinking about development machines and has certainly cemented playing about with Vagrant as something on my todo list!
I look forward to attending the next Belfast Ruby event.