Server virtualization is sweeping the IT industry- that’s no secret. But what does it mean to the average person that’s not an IT admin? We deal heavily with various virtualization technologies every day as it’s a key enabler that underlies the JumpBox platform. I wanted to take a stab at breaking things down in benefits terms vs. feature terms so the people without pocket protectors can understand some of the implications of this stuff.
First off, my partner writes a blog on virtualization – if you’re tech-savvy you’ll find the synopsis here remedial. Head on over to VirtualizationDaily.com for the more in-depth discussion for IT admins and CIO/CTO’s. This is the big-picture overview that will attempt to explain the benefits to a non-tech user.
What is virtualization?
The useful definition in this context is: the ability to run an entire instance of a computer in software.
Judging from the surveys people complete when they download a JumpBox from our site, most people are currently using virtualization for testing and evaluation purposes. Usually when you think of installing an application like Quickbooks or Office on your desktop, you get an installer that’s specific to your operating system and go through a wizard that sets up the application and its dependencies into a directory on your computer. It runs in the context of your operating system and generally has access to do potentially destructive things to your computer like writing to the filesystem (or making a bunch of registry entries if you’re on a PC). When you run a virtual machine it’s different.
Virtual Machines (or VM’s) are complete instances of a computer with their own complete operating system. It’s a little Malkovich-malkovich to think about running one computer inside another but essentially that’s what you’re doing when you use virtualization. A quick distinction needs to be made here- emulation does not equal virtualization. People that got a bad taste from using programs like Virtual PC and then later switched to VMware will testify to the performance improvements of using a virtualized environment over an emulated one. The goal of abstracting away an OS from its underlying hardware is the same but the means for doing so is different – if you want to read more about the difference, go nuts. Back to VM’s though…
So that’s nice that this capability exists to run one computer inside another, but why on earth would someone want to do it?
Implications of virtualization
For server applications:
- Speed of setup – there is no more install process when using preconfigured VM’s for testing. You can download a virtual computer configured with an app and just turn it on and having working immediately without any setup. Setup processes that used to take anywhere from one hour to one day are now completely reduced to the time it takes to download a VM.
- Efficiency – the average server runs way under capacity, let’s say for the sake of argument- 8% CPU utlization. By virtualizing the server and running multiple VM’s on the same physical machine you squeeze more efficiency out of your existing hardware. That means less space requirements in your datacenter, less power usage, fewer servers to update and service. This is the reason that California’s largest power company announced a 50% rebate to any ISP’s who virtualize their infrastructure.
- Containment – let’s say your evaluating five open source software applications to see which most closely meets your needs. Traditionally you’d have to install them locally in your computer’s OS and risk hosing something and hope that 4/5 have a good uninstaller when you’re done so you don’t end up with a bunch of clutter on your system. VM’s run completely self-contained so you can try out an app and then throw it away and know that your system is still pristine.
- Known setup state – there’s no opportunity to screw up the setup since that portion is removed. You’re using a freeze-dried application that was presumably configured correctly the first time and then turned into a VM.
- Portability hence low entry cost – most people don’t want to purchase an expensive server up front on which to run an application. They’d rather serve it from a crappy box until they know it’s popular enough to merit purchasing more expensive hardware. Under the tradtional “bare-metal” install, you evaluate it on a test machine and then install the production version on the production machine. Any data you entered in the test version needs to be migrated into the production version or else it’s lost. Because VM’s however are agnostic of the underlying hardware, you can start off serving an application from your laptop and then picku it up at any time and move it to a fast server with no painful migration process or worry of driver or dependency conflicts.
- Support – have you ever hosed a system so badly that you had to send it to someone for repair? Think about using a virtual computer and the notion that you can put the entire computer on a DVD or up on an ftp server and have someone fix it and send you the disc without ever shipping the hardware?
For the desktop user (all the above plus…):
- Choice – you have the option of using a completely different OS as your desktop environment yet being able to run applications that only work in other OS’s. You could use Mac OS X or Ubuntu Linux and run WinXP virtually for those applications for which there are no acceptable substitutes in the alternative OS. Or continue to work in Windows and have access to run Linux apps.
- Productivity – when your virtual XP instance is crashing, you can still be productive working in your base desktop environment ;-)
- Protection – Using VM’s you can do the latest upgrades to applications without fear of nuking your OS because if everything breaks, you can just roll the VM back to an earlier version.
There are probably many others but these are the salient ones that come to mind. If you haven’t already tried running a virtual machine, it takes five minutes to do and will change how you think about a computer. For a Mac, get either the Parallels trial or the VMfusion beta. On PC, download the free VMware player. Then either visit VMware’s directory of free VM’s or (shameless plug) download one of the JumpBoxes from our site. We currently have a blog, a wiki, a CRM and a discussion forums JumpBox available. The way in which we’ve packaged our VM’s is specifically known as a “virtual appliance” since you don’t ever need to see the underlying OS or how the application works- everything is configurable via a web interface.
All kinds of interesting possiblities exist around new types of hosting opportunities and support services with applications that are packaged in this way. As you might guess, this is why we are so excited about JumpBox. Have fun with it and if you are heavily into virtualization, join the ongoing dialogue over on Virtualization Daily.