

What is your VM workflow? - jklein11

VMs seem to be an elegant solution to a very stick problem. Getting every developer&#x27;s environment set up exactly the same can be a hassle, especially if you are working with Junior Devs. I&#x27;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.
======
stephenr
I assume you're talking about developer environments here.

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.

------
nitramnitram
Am I alone in thinking that emulating a physical machine, installing an
operating system on that virtual physical machine and so on and end up with
two operating systems running in parallel on the same physical machine which
needs to be patched and maintained is not an elegant solution? After a while,
every developer might have five machines which he need to keep patched and
maintained.

Personally I just have VMware Workstation for this at home and VMWare ESX
cluster at work.

------
icpmacdo
My primary Ubuntu virtual machine with vmware fusion is quite frustrating when
tabbing between it and other applications on the native OS. Hitting cmd+tab to
go from Ubuntu to chrome opens up a search menu on Ubuntu that requires you to
hit esc before getting back to work. Very annoying, anyone also run into this
issue?

~~~
cweagans
Why not just disable that keyboard shortcut in your Ubuntu VM?

------
penguinlinux
we use virtualbox and a bare template Ubuntu image. the workflow is like this.

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

