I am not very familiar with the world of virtualization, but want to explore the opportunities.
Most of our developers currently develop on their local machines; I want to see if this can be made a bit more streamlined and give everyone a virtual machine to work on. Each VM should be an exact copy of a 'base' VM and I should be able to easily create new VMs.
Apart from knowing some of the brands out there - VMware and Virtualbox being the ones I am most familiar with - , I really don't know enough to make a solid choice.
Requirements:
- 3-5 VM's. Should be pretty easy to create additional ones
- Cheap / free: preferable choice would be to install the VM software on our existing Windows 2008 server so that we can experiment with it before actually deploying a dedicated server for it.
- VMs only need to run a LAMP stack, no GUI. No need for massive amounts of CPU/RAM.
Questions:
- What would be the best choice considering these requirements?
- What platform do I need to host this? Is it possible to use our current server for this?
I would recommend VirtualBox. It's capable on many levels, easy to use, and free. And yes, use your current servers until you run out of capacity, which will probably be farther down the road when you expect and you'll have a better idea of what you need to expand and grow.
If you're looking at setting up a dedicated server for your Devs to use I would recommend VMware's ESXi. It's free and fairly easy to setup but it does run on the bare metal so you would have to blow away your server or install VMware Server on your 2008 server to play with ESXi before hand.
VMware workstation, VMware Player and Virtual Box are all good choices if want to run the software on the developers local machine. This way they can run the same setup as the live server without walking over each others changes.
I actually use both ESXi and VMWare workstation in my test environment with Workstation on the local developers computer, ESXi running on a QA/internal server, and ESXi running the live site.
FWIW, here's some information regarding the "cheap/free" angle from a VMware perspective (based on some digging I did a while ago).
"Workstation class stuff" (my somewhat arbitrary distinction since this can run on a server):
VMWare Player: free, but per this "VMware Player is free for personal non-commercial use." So presumably you can't use it in a commercial environment.
This despite this link where under "Safest Way to Try New Software they suggest it can be used to "Run corporate virtual machines".
However, you can apply to distribute it. I'm not sure what would happen once you distributed it - could it then be used for commercial purposes by the recipients? Beats me, I never investigated any further.
VMWare Workstation: paid commercial version, has a few enhanced features that VMWare Player doesn't have.
"Server class stuff" (again, somewhat arbitrary distinction since the first can run on a workstation):
VMware Server: free, you can use it in a commercial environment, runs on an existing OS.
VMware vSphere Hypervisor (formerly called VMWare ESXi): free, you can use it in a commercial environment, bare metal equivalent of VMWare Server (no underlying OS required).
We use Proxmox : http://pve.proxmox.com/wiki/Main_Page and give each developer their own Linux sandbox as a KVM guest.
Proxmox is open source, has a great web-based admin interface and is easy to configure to have multiple hosts (each serving guests) all administrated within one cluster. If you store your images on a SAN or NAS appliance you can even do live transfer of guests from host-to-host.
Its bare-metal install is a stripped down Debian so can't help you on the Windows Server 2008 side of things, but it truly is a remarkable open source project.
Cheers
If you're already running server 2008 you should really just enable the hyper-v role and run that.
Pros's:
0 Cost Minimal labor to get up and running.
Here's another vote for VirtualBox. These days I do nearly all my development on it. The only thing I really don't like about it is the way VMs have to be exported and imported, rather than allow simple file copies to be made. Other than that I find it more impressive than VMware Workstation or Player as it does a better job of running multiple VMs simultaneously on the one host, at least for my particular setup.
Regardless of which VM system you use, take snapshots at appropriate times and you can simply restore back to those points, which is often a lot quicker than replacing the VM with a "base" copy.
If you only need LAMP use Xen or KVM for the best performance for Linux only virtual clients.
Virtualbox, Vmware and others are better for GUI virtual clients.