Virtualization in the IT world is the creation of a software version of hardware compute resources like storage (hard drives), processors, memory (RAM), and main/mother boards. These software-defined resources are used with a virtualization platform that looks at this software code and puts it together to create a virtual machine (VM). This VM acts as a traditional hardware-defined workstation or server and they do not realize that they are not physical machines. As opposed to putting together these physical components to create a traditional workstation or server, we put together these software-defined hardware components and create a VM. Once this happens we can then boot to installation media and install an Operating System just the same. The interaction with is the same as a physical machine with some added benefits. Since we are abstracting the hardware layer and dynamically allocating these software-defined resources we can now pool all the physical back-end hardware into, what I would call, hardware silos or hardware resource pools.
A good analogy of this would be our brains. Growing up I was always told that we only use about 12% of our brains power. This can be likened to a physical, traditional workstation only leveraging a portion of its available hardware resources (things like memory, storage, processor, etc.). Our brains are also made up of various components like the frontal lobe, temporal lobe, spinal cord, cerebellum, etc. Just like a workstation or server each component performs and handles a different function but are all required to operate normally. With virtualization we can separate the hardware components and allocate them to the virtual machine based on their need making them much more efficient than a traditional hardware-defined workstation. Imagine if you were taking a test and needed more reasoning and problem solving ability ???????? if you were using a ???????software-defined brain???????? you could just increase the amount of frontal lobe and perform the task. Once it was no longer needed you would just give that extra back. This is the same for virtual machines and this borrowing and returning of resources happens automatically.
So now, instead of physical machines having all these various components many are now separated. This means that you might have a physical machine filled with processors and another filled with storage, and another filled with memory. The virtualization layer that sits above this hardware pools them into silos or hardware resource pools – this determines how much of each type of hardware resource each virtual machine gets. Since the Operating System and the machine are no longer tied to one single physical box this also means that our capabilities are increased as well. If a piece of hardware fails (like a hard drive fails), it no longer brings down the machine as the VM will just leverage the other hardware that is available to it giving us more ability in terms of flexibility, agility, up-time, and recover-ability.
To go a step further, since these virtual components are software based we are now able to deliver them through the internet from data-centers located across the world directly to the end-user ???????? public virtualization. This is the cloud.