Cloud vs Virtualization: What is the real difference?
Cloud Computing is an umbrella term for a wide variety of different platforms, services, and systems that includes things as diverse as virtual private servers (VPS), web application and hosting platforms. On the other hand, virtualization is software that manipulates hardware resources (such as compute, storage, memory) to create various dedicated resources.
There are various different thoughts saying that cloud and virtualization is essentially the same thing. While another group of people say that both are different technologies with different perspective. To clearly understand, we will focus on the differences between these two technologies.
Cloud computing provides shared computing resources, software and/or data online that are accessed from web browsers. Where as the data and applications are stored on the servers. However, the interesting thing is that the applications or data that cloud users are accessing are pulled from a virtual machine somewhere utilized by the cloud servers. That’s where some of the confusion starts, I guess.
If we go by standard definition of NIST, then a cloud must have the following five characteristics:
- On-demand self-service
- Broad network access
- Resource pooling
- Rapid elasticity
- Measured service
Cloud computing is actually built on top of a virtualization that consists of compute, storage and network components. There are many different service models such as software-as-a-service (SaaS), infrastructure-as-a-service (IaaS), and platform-as-a-service (PaaS) as well as many characteristics that define scalability, fault-tolerance and on-demand delivery of service of a cloud.
Virtualization is a software that manipulates hardware to run multiple operating systems and applications on the same server at the same time. It reduces IT costs for businesses and increases the efficiency and utilization of computer hardware. Vartualization can be viewed as a layer above physical hardware to make servers, workstations and other systems that is independent of the physical hardware. This is enabled by hypervisors such as KVM, Xen, LXC, VMWare etc on top of the hardware layer, where the systems are then installed. So the bulk of the work is done by hypervisors to enable virtualization on any computer hardware.
There are several different types of virtualization softwares as mentioned above but all of them share one thing in common. That is the end result is a virtualized independent piece of a resource (or device). That means system administrators get a fully functional two or more segments of independent virtualized computing environment from a single computer hardware where they can install any operating system and any application. Each segment is independent and operates on its own.
Bottom line is that virtualization makes computing environments independent of physical hardware.
What's difference then?
The difference lies in the perspective in which these two technologies are used.
1. Virtualization is a technology while cloud computing is a service. Virtualization is the foundation for a cloud. Cloud cannot exist without virtualization.
2. Virtualization is a technology that existed even before the birth of cloud computing and can continue to exist without it.
3. And another very important difference is the features that includes self-service for users, broad network access, the ability to elastically scale resources, and the presence of measured service. If any server environment which lacks any of these features, then it's probably not cloud computing.