I recently have had a few clients ask me about virtualization. They wanted to know if it what it was, how they could use it and what it would take to get them on it.
Well, let me back up a little bit. I started using Virtual PC back in 2002 to run a windows 98 instance on my windows XP machine. I found it really interesting that I could actually do this and the main purpose at the time was to play a DOS game. Scroll forward 6 years and many test virtual PCs later(I had also played with Virtual Box), as a company we are rolling out VMWare 3.5 to host a new EHR platform for our companies transition to Electronic Health Records( formally EMR Electronic Medical Records ).
Anyhow, so now I find myself evangelical zing the different virtualization platforms to clients. While it drums up business for me, the benefits of it make me wonder why we did it any other way before. Yes, there is some upfront cost to virtualization, but the overall benefits and uses are only limited by hardware requirements.
Soo, let’s look at what I have found to be the key benefits:
Reliability: You are separating the physical hardware from the OS. This removes driver incompatibilities, vendor lock-in, makes the virtual servers portable, the OS being self-contained makes restoring from backup a cinch, no more bare metal restores which in turn reduces restore time from hours to minutes(mileage may vary, obviously depends on size of VM and hardware restoring).
Portability: As discussed above, the OS is self contained, so you can move it from host to faster new host(and back). Take a snapshot of it and move it to an off site location for safe keeping or hot site housing. Copy the whole environment to a test environment for testing and break/fix scenarios.
Development: if you are a small software company, you can keep several test virtual machines running all sorts of OS versions or software versions on one physical box. Snapshots allow you to quickly undo a software patch that broke a virtual machine and reapply it again after fixing the problem. I consider virtualization a critical component to software development and testing.
Enterprise uptime: With a slightly increased cost of having two hosts and shared storage array, you can run the OS so that if host machine dies, the virtual server is rebooted on another host with minimal and automatically adjusted downtime or you can run it in failover so if the host died the failover standby would be instantly online and ready to take over.
I think the last one is the key to successful adoption by midsize to small businesses with a large IT footprint. By having the ability to ensure enterprise uptime at minimal cost, many soft costs such as productivity loss, power, cooling and customer satisfaction become much more of a factor in the decision. Again, enterprise level issues at the mid to small size business.