Virtualization Techniques in Cloud Computing
I‘m sure 99% of the people reading this article will be familiar with the term virtualization. For the benefit of the 1% who are not, here is a popular definition from Wikipedia that is thrown around the internet like corn in a chicken hutch:
‘Virtualization‘ is defined as the act of “creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, storage devices, and computer network resources” – Wikipedia.
Believe it or not, there is a great deal of confusion as to exactly what the different types of virtualization are. The reason for this is that in many cases their function and operation processes are very similar. What spurred me into action to write this was reading a recent question on a forum where an IT university student confessed to being a little confused by the subject and was asking for help on the matter.
In this article, I aim to examine some of the main virtualization techniques in cloud computing in order to provide some clarity on this topic. Along the way, I will reference a number of great articles on the topic, which I certainly recommend reading should you wish to delve into this topic in a deeper way.
The cloud and virtualization
Why we need virtualization?
What types of virtualization are there?
Other types of Virtualization
My final thoughts
The cloud and virtualization
Cloud computing certainly comes under the umbrella of virtualization. I have no desire to enter a battle regarding terminology, so I won‘t state that the cloud in itself is an entirely virtual entity, but rather for the sake of this article, suggest that it functions as a complex ’Virtual Machine‘.
This virtual machine allows the creation of an environment that is not logically tied to the underlying hardware. The cloud is essentially a virtual environment that arises from the combination of multiple virtual machines into one powerful entity. Therefore, the process of virtualization is a key element in the creation of cloud platforms and infrastructure.
Why do we need virtualization?
There are a number of huge benefits to virtualization that include the following:
- Long term cost reduction
- The ability to safely test OS, software/applications, kernels etc.
- Running applications not supported by host
- Disaster recovery
What types of virtualization are there?
This is the process of making available the resources of physical servers to remote users. It’s possible to do it by installing virtual machine software onto the server which then allows it to act as multiple servers on demand. This kind of virtualization is incredibly popular as it frees users from having to manage complex server systems.
Server virtualization is one of the fastest-growing areas of the cloud. It is used to provide immense resources to businesses that need the processing power but don‘t necessarily have the capital to invest in the appropriate server resources. AWS is a leading example within the industry, offering an extremely flexible and powerful infrastructure that allows its customers access to a range of data processing services at a very reasonable cost.
The main types of server virtualization:
- Operating System (OS) Virtualization – Virtualization software allows for the creation of multiple virtual machines (VM‘s) that are run as separate operating systems. The potential uses of this kind of architecture are enormous, such as allowing the software to be tested on different operating systems, applications to be tried out, etc.
- Full Virtualization – This is essentially the complete cloning of the test hardware into the virtual environment. It allows for extremely accurate simulations to test software and applications, while also having the enormous benefit of allowing multiple users to share the environment at once.
- Para-virtualization – This is very similar to the hypervisor principle because a hypervisor is installed on the server which then allows for a guest OS to be set up. It allows the software to run on virtual machines where the hardware is different to the underlying hardware. It differs from Full Virtualization in that the various guest servers are aware of one another.
The three kinds of data storage:
- Direct Attached Storage (DAS) – Storage devices are directly attached to hosts server(s)
- Network Attached Storage (NAS) – Shared storage connected via the network
- Storage Area Network (SAN) – A single storage device that is utilized by multiple servers
Storage virtualization allows the combination of multiple physical storage devices to create a much larger, single storage area. These physical storage devices can be located either together in one location or in multiple locations at once. Storage virtualization is achieved by using specialist virtualization software that creates the illusion of a single storage device. This type of storage is utilized by cloud providers to mask their physical storage systems and to make it easier for customers to use.
The most common use of remote data storage is obviously to backup data, be it to allow for archiving or data recovery. Storage virtualization is certainly the most straightforward type of cloud utilization, where applications such as DropBox allow users to add and remove files to a virtual hard disk that appears alongside their computer‘s own hardware.
Desktop or Client Virtualization
Desktop as Virtualization was a concept that was popular long before cloud use went mainstream. It literally referrers to the act of creating a virtual desktop that is separate from the computer or server hardware. This allows the creation of a desktop environment that can then be accessed remotely, similar to the SAAS model of cloud computing. These are known as ’Cloud-Hosted Virtual Desktops‘ and are divided into 2 categories, Managed VDI‘s and Desktop as a service or (DaaS). To learn more about this type of virtualization you can do so by clicking this link.
At first, it might seem like desktop virtualization might be a hard thing to get people to pay to use. After all, we have all already invested in our computers which contain most, if not all, of the applications we require as part of our desktop. When purchasing a new laptop that runs Windows 10 and has the Office package pre-installed, quite a significant amount of the total cost goes towards the software license. The idea of paying yet more money to access programs such as word processors, database software and spreadsheet software that we already have on our computers might seems crazy, but increasingly people are beginning to realize the enormous benefits of desktop virtualization. I have to admit that when the Chromebook (which relies heavily on virtualization) was first released, I was among the doubters who thought that even if it would be viable sometime in the future, there was no way it would fly at the time. But recent data seems to suggest that Chromebooks are now leading the field when it comes to PC sales, actually outselling MAC‘s for the first time in 2016.
Other types of virtualization:
Application Virtualization – Also known as application service virtualization, it allows applications to be either partially or entirely run in a virtual environment where the user is separated from the OS where the application is hosted. This approach helps the users overcome problems such as an application‘s incompatibility with their existing hardware and faults such as bugs etc.
Network Virtualization – Network resources are combined into parts by effectively splitting up the network‘s bandwidth into separate channels. For more information on the advantages of each of the different types of virtualization as well as the challenges that cloud computing in general faces then read this interesting paper.
My Final Thoughts
Virtualization is a fascinating field. Its development has been enormously assisted by the cloud which is increasingly becoming accepted as a better alternative to local application and data hosting. Due to the changing way that we use computers, virtualization is evolving too. As a result, it now has an enormously diverse range of uses that are expanding by the day.
There are a number of benefits and indeed some drawbacks to virtualization, but overall, I would say that these technologies would not have continued to develop and become increasingly popular were it not for their overriding benefits. I would argue that though businesses might be happy to plod along with existing IT solutions, despite them having a number of disadvantages, they cannot ignore the main benefit of virtualization, namely its ability to cut costs by allowing access to far greater resources than conventional systems can offer.
Even at its most basic level, virtualization in cloud computing is becoming an indispensable tool. A recent event that highlighted this point to me occurred while I was on holiday. I was working away when the infamous ’blue screen of death‘ flashed up on my screen. Yes, you guessed it, my hard disk had gone the way of the Dodo. Even if this had happened at home and I was able to recover part of the data on the hard disk (which in part I later managed), it still would have been a massive inconvenience in terms of time and effort. As it was, being away from home, it was nothing much short of a catastrophe. I won‘t repeat here the expletives I kept on uttering for the next few days, but will only say that there were many of them.
Had I been working in a virtual environment then I could simply have found some other computer and continued working as though nothing had happened. As it was I returned from vacation with a huge mess to sort out. Even in remote corners of the world such as these, the main tourist areas have sufficient broadband capability to allow reliable access to allow for the utilization of tools like desktop virtualization.
As our needs grow, the number of different types of virtualization in cloud computing and the underlying virtualization techniques that allow these to exist will grow too. It is indeed a fascinating time to see the emergence and evolution of such technologies, though exactly where this development will take us in the future is anyone‘s guess.