This is a no brainer post for the techies; it is not meant for the techies. This post is for novices who want to understand “What is Virtualization?”
What is Virtualization?
We all have computers and laptops with pretty high configurations……4GB RAM, 100+GB Hard Disk, multi-core GHz CPU. But did you know that we end up using only a small portion of this superlative configuration. You can verify this in your PC by opening the task manager and observing the utilization levels for the RAM and CPU. Prior to virtualization, if your computer application architecture needed different computer machines to function as distinct logical entities within your application then you would have to buy a different physical machine. Imagine the cost of the hardware, the cost of running these machines and the time and labor spent in maintaining each of these machines. And while you are spending a fortune for all these items, the actual utilization of each of these machine at any point in time is generally pretty low at a given point in time – e.g. CPU utilization is under 70% on an average, maximum RAM usage is 60% at any instant, hard disk is only 40% filled.
If somehow you could accumulate this unused capacity into a common resource pool and make it available to applications when they need it and only as much as they need it, the savings will be significant. These savings are not just capital savings on the purchase of new hardware. They also include savings in energy cost, real estate (space occupied by each machine) and ongoing maintenance / operating cost. This accumulation of resources is achieved through ‘Virtualization’.
In simple terms, virtualization is a software technology that collects all the physical resources of a computer machine (CPU, RAM, Storage) into a single large pool and creates multiple virtual machines within the single physical machine. Each virtual machine gets a customized slice of resources from the resource pool. So now, when you need additional machines for your application, you do not buy new hardware. You create new virtual machines (called “provisioning”) instantly through the virtualization software. Each virtual machine is a standalone computer system and runs programs and software just like any traditional computer machine. In other words, a virtual machine is a miniature clone of a physical machine, created and terminated by the virtualization software.
Do I hear you saying “Isn’t this dynamic resource pooling also called cloud computing?” Well, cloud computing and virtualization are 2 distinct sets of technologies with same underlying principle: pooling all the resources and allocating them as when needed. The virtualization is a software program that runs on top of your operating system. Cloud computing is a generic term that refers to a common pool of computing resources shared between users/applications over a network (internal network or internet). For simplicity: Virtualization – think many virtual machines within your desktop; Cloud Computing – think data center. However, it is important to state here that virtualization is an essential component of any cloud computing platform.
Some of the leading players in the virtualization space are : VMware(vSphere, VMware Workstation), Citrix (XenServer, XenDesktop) and Microsoft (Virtual PC, HyperV).
In my next posts I will get into the details of how virtualization works. Stay tuned!



