[1] http://sysadmincasts.com/episodes/4-vagrant
[2] http://sysadmincasts.com/episodes/5-create-a-vagrant-box-wit...
[3] http://sysadmincasts.com/episodes/8-learning-puppet-with-vag...
Topology specification, firewalling, resource constraints (bandwidth, IO speed/resilience... ie. RAID/backup persistence safety), service cohabitation or codependence, performance/capacity testing, cost, cloud provider abstraction, public DNS+SSL+sofware package distribution infrastructure dependencies, legal jurisdiction considerations, speed of instantiation, etc. are all realistic considerations (often requirements) for much modern infrastructure.
In short: this only gets you half-way, for relatively simple examples. But if your workload is within that space, by all means go for it.
(PS. Before anyone snaps 'you can manage multiple hosts with <tool>', sure. But the architecture of the tools begins to present issues.)
Vagrant allows you to specify groups of VMs that spin up together.
Your general point that it doesn't simulate production perfectly is correct. But this is one case where the perfect is the enemy of the good.
There has been a lot of discussions about which provisioner to use, but at the end of the day they all achieve the same goal. I would personally just use one that you feel comfortable with, in the sense of configuration system and structure.
Thank you for your work!
(Any chance it might work with Vagrant v2 soon?)
Ideally, I'd love to find some vagrant scripts and ansible playbooks to bring Amazon ec2 instances up and down and configure them with a standard set of packages.
If you're curious, here's the vagrantfile and bootstrap script:
https://github.com/opentusk/Opentusk/blob/master/Vagrantfile
https://github.com/opentusk/Opentusk/blob/master/install/vag...
On a Mac you can use Vagrant to bring up a host that runs docker, but i'm not sure how you would be able to just run docker on your mac.
That being said docker looks pretty awesome for certain sets of problems.
the old vps vs. container discussion.