Virtualization as a concept came into the mainstream with the advent of cloud computing. Yet computer engineers know that the concept itself isn’t new – it has been around since the early mainframe computers of the 1950s. Virtualization makes cloud computing possible today. But guess what? It’s also in your smartphone and laptop. Look at all the apps in your phone – the calculator, the music player, the note pad – these are virtualized versions of their physical counterparts that have been around for decades. In short, virtualization is the software equivalent of anything physical. Today physical computing components are all virtualized: servers, storage, networking hardware. So, what’s the big deal? Well, the obvious benefit is the huge cost savings because it enables the sharing of resources. It’s all managed by a service provider, so that takes away the headache of managing it, and we can go about focussing on our businesses. And then there’s scale – the ability to scale the infrastructure up or down on demand, without waiting for months, and without the need to invest in more hardware. Read on to find out more about Virtualization.
Hard disk virtualization
Before we go on, here is a popular example of virtualization. All of us have used a hard disk, because it is standard in desktops and notebooks. Well, look at the folder structure closely (in Windows File Explorer or Apple Finder), and you will see that the top of this structure has the letter ‘C’. That’s the secondary storage device (hard disk) labeled as the C-drive in your computer. What about ‘A’ and ‘B’? Well, the older PCs had removal storage called floppy disks. A desktop PC in the 1980s had two floppy drives labeled ‘A’ and ‘B’. The floppy has long gone the way of the dinosaur, and no one uses those anymore. So, if you add more hard disks in your PC they would be labeled as D, E, F, etc. But that would be a costly affair, as each hard drive could set you back by a few thousand bucks (in Indian rupee terms). So, what do we do if we want to have additional hard disks? We take one large hard disk and partition it into logical drives. These logical drives are labeled D, E, F. In Drive-C, you install the operating system (essential) and the apps. Store all your documents in Drive D. And perhaps, you could store your photos and videos in Drive E. It’s one large physical drive with logical partitions. We have effectively virtualized the storage resource to utilize it more efficiently. That’s virtualization.
Partitioning of computing resources
Now take this concept a bit further and extend it to the whole machine. A computing resource has compute (the processor), software (the operating system), main storage (RAM), secondary storage (hard disk or solid-state memory chips), and networking. Even your smartphone has all that, though not a hard disk. You could take one physical server (compute resource) and slice all these components using virtualization – and share all this with multiple users or apps or services. Sounds like big savings here! I do not need to buy additional servers when new employees are onboarded or when I introduce new services for my customers.
Virtual Machines
Today organizations typically have tens of thousands of VMs running on the cloud in different regions across the world. That’s a lot to manage. There is a company called VMware that takes care of the management of all the VMs. But that isn’t the only technology or tech company involved in this mega task. There are other components like load balancers, orchestrators, APIs, and middleware that are required to manage the whole set up.
I’ll tell you a little secret. VMs are not so efficient when it comes to running cloud-native applications (applications that can take full advantage of cloud features). VM is a decades-old technology. So there is another technology called Containers that will replace VMs in the future.
Look out for my article on Containers and Containerization, next week. Made dead-simple!
Huge cost savings!
Back to virtualization. The best part about virtualization (and cloud computing), is that I do not have to spend upfront on buying new hardware – I just rent the VMs from the cloud service provider and pay for what I use. No capital expenditure or CAPEX as they call it.
Sounds familiar?
Why buy a car when you can rent one? Pay for a Uber on a per Km or hourly basis – and you do not have to worry about the maintenance of the car, spares, fuel, the toll, or the driver’s salary. Taking this a bit further, you can share the Uber cab through carpooling – and that is what we call a “multi-tenant” environment in cloud computing terms.
Virtualization and cloud computing make the same thing possible for compute infrastructure. Organizations share the infrastructure with other organizations. They enjoy tremendous cost savings as they do not have to purchase new servers and storage when their business grows. They just rent it and ask for more from the cloud service provider. Like a top-up plan. And when business is down, they just give it back (de-provision) all the extra resources and stop paying for it. That’s great flexibility. Provisioning or de-provisioning VMs takes place instantaneously, offering great agility and speed. In the old days, it would take weeks or months to procure a new server – so compared to that, this is like moving in hyperdrive mode!
What’s more, you do not need to invest in real estate, air-conditioning systems, power, and backup systems in your data center for all those servers. That’s because they are in the service provider’s data center and you are just renting it. That means a reduced data center footprint and more cost savings!
Meet the Hypervisor
This all sounds too good to be true and almost like magic. What is it that makes virtualization possible? It’s a layer of software called the Hypervisor, which runs on top of the physical server. The hypervisor enables the virtual environment we just described and facilitates the sharing of physical compute resources among VMs and applications. It deploys and manages the VMs. In tech language, we say, “spin up a VM ” or “spin up a new instance” which means deploy a VM. VMs are also called virtual instances or instances.
Examples of Hypervisors are Microsoft Hyper-V, VMware ESXi, Oracle VM, QEMU, Parallels, Xen, and open-source KVM and oVirt. There are two types of hypervisors: Type-1 (also called Native/bare-metal hypervisor) and Type-2 or Hosted hypervisor.
Oh yes, there’s an article on Bare metal servers coming soon! Stay tuned for some heavy metal!
Conclusion
To wrap up, remember that virtualization is a concept that software enables a physical resource, allowing it to be shared or used more efficiently. It makes for huge cost savings since the resources are shared among users. The user is only renting the resource and paying for it based on exact consumption. It’s like paying for electricity based on metered units – you don’t have to own the whole power plant to have electricity in your home or office! The utility company owns and manages the power plant. Virtualization enables cloud computing, and that means you can enjoy the scaling ability of the cloud. Scale up or down as required. And because the cloud is multi-tenant, you are sharing resources – which makes for economies of scale. Infrastructure needs to be virtualized to be truly cloud-enabled.
Now, aren’t you glad someone invented virtualization in the 1950s?
Next article: Containers and Containerization
Want to correct us? How about some appreciation? Any topic suggestions? Write to us: info@digitalcreed.in