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 include things as diverse as virtual private servers (VPS), web applications, 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 are essentially the same things. While another group of people says that both are different technologies with a 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. Whereas 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 the 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 virtualization that consists of computing, 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 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. Virtualization can be viewed as a layer above physical hardware to make servers, workstations, and other systems that are 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 software 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 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 the difference then?
The difference lies in the perspective in which these two technologies are used.
1. Virtualization is the 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 include self-service for users, broad network access, the ability to elastically scale resources, and the presence of measured service. If any server environment lacks any of these features, then it's probably not cloud computing.