Vagrant vs Docker, what are some points to note when evaluating which to use?
It depends on what you want to do. Vagrant's main use case is to automate setting up development environments, whereas I see Docker as more a way of distributing software and its dependencies to production systems.
A key distinction is that since Docker is built on Linux containers (lightweight Linux systems), it expects to share its host's kernel, and must thus be executed on a Linux system.
Vagrant creator here. What a pleasant surprise to see this pop up on HN this morning (it was unexpected, to be sure). I just want to shamelessly say that if you're more of a book person, the Vagrant O'Reilly book I wrote was just released this week, and it is a great way to get started: http://shop.oreilly.com/product/0636920026358.do Thanks! (And, hopefully as you know, as an author I make barely any royalties on an…
What is the best way to toss you a few dollars to show appreciation and help you keep the lights on?
Vagrant creator here. What a pleasant surprise to see this pop up on HN this morning (it was unexpected, to be sure). I just want to shamelessly say that if you're more of a book person, the Vagrant O'Reilly book I wrote was just released this week, and it is a great way to get started: http://shop.oreilly.com/product/0636920026358.do Thanks! (And, hopefully as you know, as an author I make barely any royalties on an…
What is the best way to toss you a few dollars to show appreciation and help you keep the lights on?
If you want to, there are a few options:
* Buy a VMware provider ($79). 98% of the money comes to me.
We switched from hand-configured boxes and a long, "full stack local" setup document to chef + vagrant at my current company ( http://parse.ly ). Though it caused some kicking & screaming on the development team, the end result is that every developer has the same development environment, which pretty much matches our deployment environment (in Rackspace Cloud). I also just kicked off our summer intern class, and the…
How are you reloading your Python application on code changes? Are you just working inside the VM? I've tried VirtualBox shared folders and NFS, and never had any luck getting file change events to propagate from my host to the VM.
Django automatic code reloading is working fine on my environment (osx host, Ubuntu vm). Are you working on windows host?
Vagrant is absolutely fantastic. But I have an issue with the default precise64 box. If the vm is shut down abnormally (manual power off from virtualbox, unexpected power outage, etc), next time I run `vagrant up`, the vm would be stuck on grub. It appear to be a problem with ubuntu and I need to start the vm in gui mode (as opposed to vagrant's default headless mode) to resolve this (changed timeout=-1 to timeout=0…
Which exact precise64 box are you using? Ubuntu now publishes regularly updated Vagrant images, do you have this problem with this box? - http://cloud-images.ubuntu.com/vagrant/precise/current/
Thanks for the info. I was using the default precise64 box from fresh vagrant init. I'll try that box see if the problem persist.
We switched from hand-configured boxes and a long, "full stack local" setup document to chef + vagrant at my current company ( http://parse.ly ). Though it caused some kicking & screaming on the development team, the end result is that every developer has the same development environment, which pretty much matches our deployment environment (in Rackspace Cloud). I also just kicked off our summer intern class, and the…
How are you reloading your Python application on code changes? Are you just working inside the VM? I've tried VirtualBox shared folders and NFS, and never had any luck getting file change events to propagate from my host to the VM.
I, too, have had problems. In my case it's an OSX host, Ubuntu client.
Most of my python work isn't webdev so I've never had an issue with it in python but other daemons that do this sort of thing -- Brunch for example -- have given me intermittent trouble. I never did figure it out.
Vagrant creator here. What a pleasant surprise to see this pop up on HN this morning (it was unexpected, to be sure). I just want to shamelessly say that if you're more of a book person, the Vagrant O'Reilly book I wrote was just released this week, and it is a great way to get started: http://shop.oreilly.com/product/0636920026358.do Thanks! (And, hopefully as you know, as an author I make barely any royalties on an…
I'm curious, why the focus on development environments? How does it tie into production and staging environments?
You can already use vagrant with some cloud providers, like Rackspace.
Vagrant is nice because your environment becomes disposable and version controlled. If you mess up your db config while performance tuning, for example, just call vagrant destroy and vagrant up.
The version control aspect is really great. It's really nice to be able branch, commit, merge, go back, whatever with your installed infrastructure. This gets even better if you use puppet or chef (or even the shell) for provisioning of infrastructure in concert with vagrant. Doing the same thing with snapshots and VM clones with VirtualBox alone is similar to zipping your project periodically as a backup strategy. Y…
Huh, so can you "branch" a VM with vagrant? Like say I want to make some incompatible/lossy changes to my database schema, can I fork my dev environment, do my migrations to the new schema, and then go back if I don't like it?
How have you found Chef to be and what alternatives did you consider? We are evaluating Chef and Ansible right now.
I'm not the OP, but: These systems are broadly the same. If you're writing your configuration from scratch, they're all fairly pleasant, and it's mostly a matter of preference. They share most of the same concepts (although the terminology differs) and features. In my experience, their differences are primarily in feel and community. For feel: Chef gives you Ruby pretending to be declarative. Puppet and Ansible give…
Chef and Puppet are quite different, in my opinion.
Based on my exposure, Chef ultimately boils down to being a complex remote execution framework. Puppet makes detect-and-correct more central to its model.