Are Cloud and Virtualisation the same or not? If someone asks me this question, I will answer shortly - NOT.
Let's dive deep into the topic. First, we should try to answer the question of what Cloud and Virtualisation are.
The history of Virtualisation goes back to the 1960s, when IBM invested a lot of time and effort to find the answer to the question - how to share the usage of computer resources among a large group of users?
That was the time when computers and components were expensive, and each company would like to utilise their resources effectively. And basically, that is the very definition of Virtualisation - shared resources. We can run multiple virtual servers on one physical server. That solution provides us with many benefits like testing our applications on multiple environments (e.g., different OS platforms) without the need to buy additional computers.
How does it work?
For Virtualisation, we need something called a hypervisor. You may know some popular hypervisors such as Microsoft Hyper-V, VMware ESXi, or Xen, but did you know that Microsoft Virtual PC or Oracle VM VirtualBox are hypervisors too? Generally, we can say that all of them are doing the same thing, which allows us to run multiple operating systems on a single physical host. All hypervisors can be classified into two groups:
Those are hypervisors which are installed directly on the host hardware, and they control it. Within this group, you can find for example VMware ESXi or Microsoft Hyper-V. In this scenario, guest operating systems works on a separate level above the hypervisor.
In this group, the most popular tool is VirtualBox from Oracle. Those types of hypervisors were designed as software for a traditional operating system. Let's imagine that we are working on a laptop with Windows operating system, and our project needs to be tested on a Linux system. That is the place where VirtualBox will be the answer to our needs.
Does this mean that only operating systems can be virtualised? Of course not. We can build virtual networks, that are an abstraction of hardware components and functions which are working on hypervisors.
It is the answer for optimal usage of disk space. No matter if we are using a standalone disk array system or a disk installed directly on the host, all of them can be used as one big, shared storage. This allows us to allocate as much storage space as we need, and thus resize it at any time.
Cloud computing is another step in the evolution of virtualisation.
First what you must know is that all Cloud providers use virtualisation to host their services.
- AWS - Xen and Nitro Hypervisor (rebuilt by AWS for their needs KVM)
- Azure – Rebuilt by Azure Hyper-V
- GCP - KVM
So, as you can see, we cannot say that Virtualisation and Cloud Computing are the same thing. Cloud is a solution built on virtualisation.
A very good example of that evolution can be found in the history of AWS. In 2002, the company started a big transformation, they tried to understand what the biggest problem in the fast delivery of new products was. They had well-organised developer teams, but still they had delays in the software delivery process. Internal audits showed that the bottleneck was a hardware delivery procedure. Each project had its own budget for servers. They could order what they wanted and had to prepare an environment - physical installation in data centre, hypervisor installation etc. That took a lot of time. The gap in optimal utilisation of hardware was also a big problem. They overpaid for computer equipment. At the same moment, one project ordered a new server for their needs, and another one had free resources because they utilised their capacity only partially. In 2003, the revolution had begun in earnest; the internal IT Department in Amazon created a service catalogue with available servers in different flavours. Another step on their way to creating AWS in the form as we know it today was discovered that one of their strong points was fast and optimised delivery infrastructure.
Few years later the world got the first AWS public available service - it was S3.
Differences between Cloud and Virtualisation
That is the best place to start a conversation about the difference between cloud and virtualisation. S3 is a cloud service, in which we don't have to care about servers, network, storage etc. Cloud is not only virtual servers which we can create in a second and a few minutes later remove. It also gives us the opportunity not to worry about licenses, space in the server room, or even unused servers which we bought. We will pay only for what we use and when we use it.
In the cloud, we can find many services that are ready to use. We don't have to care about the underlying infrastructure. For example, if we would like to host a simple static web page, we can use for that AWS S3 bucket, if our website will be not just static content, AWS Elastic Beanstalk can be used. Of course, under the PaaS service, we will still find hardware and hypervisor systems, but responsibility for that part is on the cloud provider site. We can focus on our core business.
Is virtualisation something different from cloud computing? Yes and no. Cloud computing is another step in digital evolution, and a service built on virtualisation. Like our cars built on wheels which were invented in the 4th millennium BC.