Virtualisation is to carve out physical servers using software and creating virtual servers. Actual hardware (also known as bare metal) comprising of compute, storage and network components are virtualised in their respective layers. Its main component is Hypervisor.
Hypervisor is a piece of software that runs above the physical server. There are two main types of hypervisors.
- Type 1 Hypervisor: It is installed directly on top of a physical server. Also called Bare Metal Hypervisors. Examples include VMWare ESXi or Microsoft HyperV or OpenSource KVM.
- Type 2 Hypervisor: There is a layer of host OS that sits in between Hypervisor and Physical Server. Also called Hosted Hypervisors. Mostly used for end user virtualisation. e.g. Oracle Virtual Box or VMWare Workstation.
We can install Virtual Machines (VMs) also called Virtual Server Instances (VSI) on top of Hypervisor. VMs are software-based computers and are completely independent of other virtual machines despite the fact that they are sharing resources of the same physical server and its various hardware components. Each VM has its own Operating System (OS). We can move a VM from one Hypervisor to another Hypervisor which is hosted on a different physical server hardware.
Key Benefits of Virtualisation:
- Cost savings: We can fully utilise hardware capacity to its full ensuring great returns on investment
- Agility and speed: We can spin up new environments in very less time.
- Low downtime: We can move VMs from faulty hardware to working hardware in very less time.
In VMWare (leading virtualisation company) world, compute layer is called vSphere; Storage layer is called vSAN and Network layer is called NSX. On top of these layers sit virtual servers and containers including OS and software. The software controller that controls all these layers and virtual containers is called vCenter.
vRealize suite makes running virtualisation much simpler. It consists of two main components.
- VRA – Virtual Realisation Automation: Automatically scales up and down the virtual containers, managing load balancers.
- VRO – Virtual Realisation Operations: Keep tracking of monitoring and operating such as logging, security, analytics etc.
Containers Vs VMs
For VMs, Virtualisation happen at a hardware level. Hypervisor controls the virtualisation of the hardware. Each virtual machine is a separate host/machine having its own OS. We have a lot of flexibility in terms of customising a VM (like allocating CPUs, RAM, Storage and Networking resources)
For Containers, Kernal sits on top of the hardware. On top of Kernal, sits Operating System (OS) which is called the host OS. On top of OS are containers. Therefore, for containers, virtualisation happens at Operating System level. Separation is not at hardware level but at process level. Although containers share same OS, each container is only confined to its own libraries and processes, and not at all interfering with other containers’ processes.
Kernal has two important components.
- Name Space: controls the separation of OS and resources for each container.
- C Groups: responsible for monitoring and metering our resources/containers.
For containers, portability is the key as the whole container’s configuration is defined in a single file called a Docker File. So, with Docker File, we can host our application on literally any hardware.
Bare Metal Vs Dedicated Host
In bare metal with hypervisor, all management (such as allocating same CPUs to multiple VMs) is done in-house / organisation.
While for Dedicated hosts, Hypervisor and underlying infrastructure (compute, storage, network) is managed by a cloud provider.