Server virtualisation: proven tech, future boon?
While server virtualisation has helped contain server sprawl, it can also better utilise compute power, reduce energy bills, and improve DC agility and flexibilityPrint
12 July 2018 | 0
What if, instead of running one operating system instance and one application per server, you could add a layer of software, known as a hypervisor, that enables you to run multiple operating system instances and associated workloads on a single physical server?
That is the idea behind server virtualisation, and the idea dates back to IBM mainframes in the 1960s and was popularised by VMware, which introduced virtualisation software for x86 servers in the early 2000s. Since then, other vendors have developed their own server-virtualisation platforms and the industry as a whole has created advanced management, automation and orchestration tools that make deploying, moving and managing virtual machine (VM) workloads a breeze.
Prior to server virtualisation, enterprises dealt with server sprawl, with underutilised compute power, with soaring energy bills, with manual processes and with general inefficiency and inflexibility in their data-centre environments.
Server virtualisation changed all that and has been widely adopted. In fact, it is hard to find an enterprise today that is not already running most of its workloads in a VM environment. But, as we know, no technology is immune to being knocked off its perch by the next big thing. In the case of server virtualisation, the next big thing is going small.
Server virtualisation took a physical device and sliced it up, allowing multiple operating systems and multiple full-blown applications to draw on the underlying compute power.
In the next wave of computing, developers are slicing applications into smaller microservices which run in lightweight containers, and also experimenting with serverless computing (also known as function-as-a-service (FaaS)). In both of these scenarios, the VM is bypassed altogether and code runs on bare metal.
Benefits of server virtualisation
The benefits of server virtualisation are many, starting with basic server consolidation. Multiple applications can be combined on a single piece of hardware, thereby reducing the total number of servers required in the data centre. Fewer servers, fewer racks, less networking gear; it all translates into money savings on everything from physical space to maintenance costs to air conditioning.
Server virtualisation reduces the need for capital expenditures on new hardware, getting you off that hardware refresh merry-go-round. And the suddenly freed-up servers can be re-deployed elsewhere.
Remember when data-centre admins had to provision servers by hand? With server virtualisation comes advances in automation that allow you to spin up a VM in seconds and to move multiple workloads at the touch of a button in response to changing business needs.
Server virtualisation also delivers the high availability, failover, speed, scalability, agility, performance and flexibility that today’s web-based, highly connected businesses require. And server virtualisation is the underlying technology that enables cloud computing vendors to offer their services. When a customer orders up infrastructure-as-a-service (IaaS) from a cloud service provider, they start with VMs and add on the associated storage, management and security features required to accomplish the task at hand.
Types of server virtualisation
In the server virtualisation world, the physical server is referred to as the host and runs a host operating system. Each VM is a guest and runs a guest operating system. Guests are partitioned from each other.
With standard hypervisor-based virtualisation, the hypervisor or virtual machine monitor (VMM) sits between the host OS and the underlying hardware layer, providing the necessary resources to the guest OSs.
Para virtualisation and full virtualisation modify the guest operating system before installation into the virtual machine. This enhances performance as the modified guest operating system communicates directly with the hypervisor, eliminating emulation overhead.
Hardware-assisted virtualisation also attempts to reduce hypervisor overhead, but does so through hardware extensions, rather than software modifications.
With kernel-level virtualisation, instead of using a hypervisor, you run a separate version of the Linux kernel. This makes it easy to run multiple virtual machines on a single host, with a device driver used for communication between the main Linux kernel and the virtual machines.
Finally, with system level or OS virtualisation you can run multiple but logically distinct environments on a single instance of the operating system kernel. With system level virtualisation, all VMs must share the same copy of the operating system, while server virtualisation allows different VMs to have different operating systems.
Virtual machines vs. containers
The two major enablers of the containerisation movement are Docker, a popular tool for spinning up containers, and Google’s Kubernetes, which helps manage multiple containers. Containers are self-contained code-execution environments that share the kernel of the host OS.
Containers are more streamlined and lightweight than VMs because they bypass the redundant guest OSs and the associated start-up overhead. Developers can run as many as six to eight times as many containers as VMs on the same hardware.
Containers do have their downsides. As a relatively new approach, they do not have the wealth of managements tools that a mature technology would have, so there is much set-up and maintenance work required. There are also concerns about security.
With VMs, you can easily move workloads between hosts using guest images, but bare metal machines are more difficult to upgrade or move. With bare metal servers, rolling back a machine state is a challenging task.
Virtual machines vs. serverless computing
In a traditional IaaS cloud environment, customers first provision VMs, storage, databases and associated security and management tools, then they load applications onto the VMs.
With serverless computing, developers write code and the cloud service provider handles everything else. The developer never has to think about servers, operating systems, provisioning or managing. Of course, there is a physical server that runs the code, but that’s the cloud service provider’s responsibility.
Instead of a monolithic application, code is broken down into specific functions. When an event happens that triggers that function, the serverless service, for example Amazon’s Lambda, runs it. Serverless providers charge customers by the function.
As with the microservice/container scenario, serverless computing bypasses the virtual machine layer and functions run on bare metal. At this point, serverless computing is relatively immature and use cases are limited.
Future of server virtualisation
While containers are hot and interest in serverless computing is growing, the reality is that server virtualisation is a rock-solid technology that powers the vast majority of enterprise applications, with some estimates putting VM saturation as high as 90%.
It is difficult to envision an enterprise moving mission critical applications running smoothly on VMs to either containers or a serverless platform. Users with heterogeneous environments will likely still use VMs because containers need to run all on the same OS and cannot be mixed between Linux and Windows.
But for new applications that are being built with the latest DevOps and agile methodologies, developers now have options. Going forward, developers will make case-by-case decisions on whether to run new workloads in a traditional VM, a container or a serverless environment.
IDG News Service