- How many times have I purchased a new computer only to then waste hours (or days) installing the operating system (OS) and my your favorite applications?
- How long did it take restore my backup when my hard-drive crashed last time (better yet, how long did it take me to find a recent backup)?
- How difficult was it is to move my application settings over to a different machine?
- When was the last time I installed an application on my system only to cause chaos for other existing applications or cause the system to crash completely?
- How long will it take me to setup 25 computers with a similar development environment for each member of our programming team?
- Oh no! Did I just get a Virus from that Word document a friend sent me?!!
- Finally: how many machines do I have to host all my favorite OS's and applications? Gee, I wonder why my electric bill is so high! :)
If you have yet to put VM technology to use, whether for your personal computing needs or for your business, you are really missing out on some incredible productivity and efficiency opportunities. VMs can save you some serious time, make better use of your computing hardware, and nearly eliminate the pain associated with setting up a new computer or computing environment. In more industry specific terms, VM technology enables:
- server / desktop consolidation;
- simplified development and testing environment setup;
- easier business continuity plan execution;
- simplified server / desktop environment management and security.
If you are still not following what the technology is, I suggest reading this article entitled "what is virtualization technology". And, better yet, just dive right in. How? Simple. Download and install the free VMWare Player. Next, get ready for something really exciting! There is a super simple way to see a VM in action. Just download a pre-configured VM! There are many pre-configured VMs available for download, referred to as Virtual Appliances, that feature all sorts of pre-configured applications and operating environments. VMWare hosts a directory of virtual appliances to help you quickly find one that fits your needs; currently over 50 choices exist, and there are more showing up every day! I recommend trying out one called "Damn Small Linux" for starters, since, as its name implies, it is a reasonably small download (55MB), and once you "unzip" the download into a directory of your choosing, simply double-click on the ".vmx" file and watch your VM start to run in a window of its own, as if it was a computer running on your computer (which, it is -- just a software-only computer!)
Now, if the lightbulb in your brain has gone on and you think: "now I get it!", that is great! And, perhaps you see how VM technology can make your life easier. But, just in case it is a mystery to you yet, why would you want this VM anyhow? That's simple. You can keep the host system installation and configuration to a bare minimum, and invest your time getting your VMs to contain the applications you need access to most. Then, you can easily move / copy that VM to another machine and run it from there on short notice. Because the "machine" is just a few files, copying it, backing it up, and moving it is quite simple. And, you can make "snapshots" of the VM at different points in time (and, using VMWare Workstation, you can easily manage these snapshots and roll-back to prior verions, and so forth).
By way of examples, perhaps I can further encourage thinking about how VMs can help you:
- Let's say I have 4 different PCs running web servers that each host their own web site. These PCs are rarely at or near capacity in terms of computing power utilization. In fact, they are at a fraction thereof. Wouldn't it be nice if I could have all of these web-sites remain completely independent of each other (since one uses PHP, another uses Python, one DotNet 1.1, another DotNet 2.0, and that is just the web-dev language!) but yet get rid of some machines? This is where the "server consolidation" side of VM technology is a perfect fit. Replace the four PCs with one box capable of running all the sites, and have each of what was a physical web-server now be a Virtual web-server. With ample NICs, each can even be bound to their own physical network connection.
- I have a complex developer-desktop configuration where each person in my team needs a Windows XP environment with Visual Studio, SQL-Server Client tools, OpenOffice, a few utilities, and so on. Well, this is a perfect time to create a VM with these required applications, and distribute the VM to each of the team members. When an update to Windows needs to be applied, or a Visual Studio Upgrade is ready for use, and so on, simply roll out the new developer-VM to the masses. Note: this implies that the VMs will not be altered by the team members lest their changes be lost when the new VM is put in place; I will discuss in the future ways to minimize issues with this approach.
- Ease movement and migration of entire systems;
- Simplify large-scale deployment of a common system configuration;
- Quickly restore to a particular state in the event of a system failure, program-installation chaos, or virus infection or other issue (notice: you still need to have a snapshot/copy of your VM stored somewhere safe, but it is as simple as copying a directory with a few files in it -- I burn DVDs with my VM images for safe keeping);
- Reduce the number of physical machines that are sitting in your home or office sucking electricity, taking up space, and producing excess heat.
- Easily test new programs and/or OS's, especially with pre-built "appliance" VMs and/or ISO-Images (see my prior post on Linux Live CDs that discusses running bootable-ISO images in VMWare).
Also, keep in mind that VMs do not get you out of proper licensing. I.e., if you distribute 25 copies of your development VM to 25 desktops, and that VM uses Windows XP or another commercial OS (plus any commercial applications you may have installed), you need to purchase as many copies of the appropriate licenses are you are using simultaneously. Consult with your software provider(s) for the specifics of how they treat licensing for VMs.
A final note: there are even ways to convert a physical machine into a virtual machine (P2V), and vice-versa. That is a bit out of scope for now, but it is possible, and lends even more flexibility to computer utilization scenarios.
Consider the possibilities for simplifying your computing life with VM / virtualization technology now, and act soon - you have nothing to lose, and much to gain!