What is your VM workflow?
VMs seem to be an elegant solution to a very stick problem. Getting every developer's environment set up exactly the same can be a hassle, especially if you are working with Junior Devs. I'm curious about your VM workflow, specifically which tools you use(i.e VMWare vs Virtualbox or Vagrant) and how you incorporate them into your workflow.
5 comments
[ 2.6 ms ] story [ 25.0 ms ] threadPersonally I just have VMware Workstation for this at home and VMWare ESX cluster at work.
If you use Vagrant, the actual virtualisation tool used can be up to the individual - i.e. I use Parallels but a lot of people may use VirtualBox because it's free (albeit has worse performance).
The key thing is to use the tools well - have your development environment match staging/prod as closely as possible - distro + version, stack components, etc. If its possible, re-use your setup scripts/config management system across all environments.
developer installs virtualbox and downloads the small image to this laptop. Then the developers does a git pull of our Ansible code, the Ansible code contains a subdirectory with shell scripts that can create headless virtualmachines for any of our application stacks. Then he does an ansible run against this new machine and Ansible will provision a full instance running our stack on this new dev environment
Python + MySQL Kafka/ Flume Mongodb Hadoop
basically the developer can have a full stack running on his machine and it is not slow. Most machines have 16Gigs of memory and lots of cpu power so we haven't had anyone complain that things are slow. Developers can create or destroy environments and they know they can rebuild them locally.
We tried doing this with docker and got it working but it was actually slower in docker and don't get me started using docker on the mac. the devs hated it and love ansible better