• I am using VMs all over for many things, especially development. I don't like installing a plug-in or add-on that might break my system, and VMs protect me. I would definitely divide the machine up into VMs. The one caveat to be careful of is the licensing issues you may run into.

    I use Hyper-V now because of work requirements. I have friends that love it, but they tend to be more experienced sysadmins. For me, it's cumbersome and I don't love the hypervisor. The tooling isn't well done, IMHO, but I haven't dug in to get more done than I need to.

    Personally I'd use VMWare as it's more user friendly. I might set up a VM as my "desktop" with the dev tools I need. Then I might use a separate VM for each client that has server side stuff, like SQL, IIS, Apache, whatever. Deploy to the VM from your client, maybe even have 2 VMs where you move stuff from one to the next.

    That way you have separate environments, and you practice moving code from one to the other. That's a valuable skill.

    One last note: Use snapshots often. They are great for resetting your environment after you've messed something up.