In last week’s post we looked at the concept of cloud computing, and some of the services cloud computing can provide. But what actually makes cloud computing work?
Cloud computing wouldn’t be possible without virtualization. Virtualization wouldn’t be possible without hypervisors. Virtualization and hypervisors therefore support the entire cloud computing ecosystem.
Virtualization
Virtualization software creates an abstraction layer on top of computer hardware. This allows the hardware elements of a single computer — processors, memory, storage, networking, etc. — to be divided into multiple virtual computers, called virtual machines (VMs). VMs operate independently of each other, even though they are running on the same physical hardware. Each VM provides the functionality of a separate stand-alone computer.
Each VM can run its own operating system (OS), called a guest operating system. The guest operating system can run any software as if it were running on a stand-alone physical computer. Each user is provided with a separate VM having its own memory space, virtual devices, storage, etc.
Some virtual machines are designed to emulate (or “virtually imitate”) different system architectures. These allow operating systems and applications written for another architecture or CPU to be run.
A mainframe can typically run hundreds or even thousands of virtual machine instances. In this way, virtualization uses computer hardware very efficiently. It is currently a standard practice in many enterprises. Higher returns on hardware investment can be achieved when using virtualization.
Virtualization and the Cloud
Virtualization is also the technology that drives cloud computing. Cloud providers can serve multiple clients using virtualization. Cloud users only have to buy the computing resources they need when they need it. As demand or workloads grow and shrink, users can cost-effectively scale resources up and down.
Hypervisors
The heart of the VM architecture is the hypervisor controlling program. It runs on the physical hardware and creates the virtual machine environment. It performs the system’s resource-sharing, including device and virtual storage management, and other standard operating system tasks.
Before hypervisors became popular, most computers could only run one operating system at a time. This made them very stable because the hardware only had to handle requests from that single operating system. Unfortunately the operating system couldn’t always use all of the computer’s power. This had the potential to waste computer resources.
Hypervisors solved that problem. A hypervisor is a relatively small software layer that allows a number of operating systems to run alongside each other on the same physical computer. These operating systems come as virtual machines — files that emulate an entire computing hardware environment in software.
The hypervisor manages these VMs as they run alongside each other. It assigns a slice of the underlying computing power, memory and storage to each VM. The hypervisor separates and isolates VMs, and prevents them from interfering with each other. If a VM crashes or is compromised in some way, the others survive. Hypervisors are also known as virtual machine monitors (VMM).
Modern hypervisors use hardware-assisted virtualization. The host CPU contains virtualization-specific instructions and hardware.
Virtualization vs. Containerization
As we’ve seen, virtualization divides the hardware elements of a single computer into multiple virtual computers, each of which then runs an entire OS. The OS runs one application. This is a lot more efficient than having no virtualization. However, it still creates duplicate and often unnecessary services for each application being run.
Containers take a different approach. They share an underlying OS kernel, and only run the application with its dependencies, such as environment variables and API libraries. This makes containers smaller with faster deployment and startup.
Next week we’ll have a look at containers.
Don’t forget to share your comments and experiences.