Bare Metal vs Hypervisor: Which Is Right For Your Project?
The modern infrastructure hosting market offers no end of platforms and technologies for companies to choose from. But in spite of what seems like endless variation, it’s possible to categorize infrastructure hosting options into a small number of functional groups. The most fundamental division is between bare metal infrastructure and hypervisor-based infrastructure, which is more often referred to as cloud infrastructure.
In this article, I’d like to discuss the differences between bare metal and cloud infrastructure, with a focus on the benefits of each and how infrastructure hosting clients can choose the best platform for their projects and applications.
What Is A Bare Metal Server?
A bare metal server is the same thing as a dedicated server. The term “bare metal” was introduced to clarify that they don’t run on a hypervisor — the operating system and applications run on the “bare metal” and have access to the full resources of the physical server. The CPU, RAM, and storage aren’t accessed via a hypervisor, but directly via the kernel of the operating system.
Consequently, bare metal servers are single-tenant environments. Each physical server is controlled by a single client, although they may choose to run containerized or virtualized applications on the server.
Bare metal servers are available in a wide range of capabilities and specifications, ranging from low-powered machines equivalent to inexpensive virtual private servers and cloud servers to enormously powerful machines with dozens of processors and hundreds of gigabytes of RAM.
A bare metal server can be colocated or leased on contracts of varying lengths. Colocated bare metal servers are bought and owned by the client and installed in a data center, while leased bare metal servers are owned by the hosting provider. Both colocated and leased bare metal servers can be unmanaged or managed, depending on the needs of the client and the services offered by the vendor.
What Is A Hypervisor?
A hypervisor is the software that runs and manages virtual servers. A virtual server is the visible tip of an iceberg that rests on several layers of software and hardware that aren’t visible to the client. From top to bottom, the layers are:
- The virtual server’s operating system (the guest OS).
- The virtual server.
- The hypervisor.
- The bare metal server’s operating system (the host OS).
- The physical server.
Hypervisors are complex pieces of software, but, put simply, their job is to mediate communications between one or more virtual servers and the operating system of the bare metal server. The hypervisor presents each virtual server operating system with an interface that appears — to the guest OS — indistinguishable from a bare metal server. The guest operating system behaves as it would if it were installed on physical hardware, and it’s the job of the hypervisor to maintain that illusion.
When the virtual server wants to run a computation on the bare metal server’s processors or put some data in memory, it gives instructions to the hypervisor and the hypervisor passes those instructions on to the host operating system.
That capability allows us to run lots of virtual servers on a single physical server.
Because each virtual — or cloud — server is software, it can be moved to a different physical server, created instantly, destroyed instantly, given access to more or less of the physical server’s resources, and so on. All of this is made possible by the hypervisor.
From the perspective of a person using a virtual server running on a hypervisor, it appears identical to a physical server. Anything that’s possible with a bare metal server is possible with a virtual server too.
Virtualized environments are multi-tenant in the sense that the resources of each underlying bare metal server are consumed by many different virtual servers. The virtual servers might all be owned by the same organization, or they might be owned by many different organizations, which is the case with public cloud platforms.
What Are The Benefits Of Using A Hypervisor?
I’ve already outlined some of the technical benefits of using a hypervisor to create and manage virtual servers, but cloud users are more interested in what virtual servers allow them to do than how it’s done.
Cloud servers can be spun up and down, scaled up and down, and moved around freely. As you might imagine, you can’t magic a bare metal server into existence as quickly as you can virtual server — although instantly available dedicated servers are possible.
If you need five additional web servers to support a promotion you’re running on your eCommerce store, they can be deployed in seconds on a cloud platform. If you want to spin up a single server to test a new feature, it can be done instantly. Continuous testing of large apps is made possible because virtual servers can be automatically created, used to run software, and discarded.
Almost all the flexibility, agility, and automation capabilities of the cloud are made possible because of the hypervisor.
What Are The Benefits Of Bare Metal?
In a word, performance. Dollar-for-dollar, dedicated servers can move, process, and serve more data than any other hosting modality. This makes intuitive sense because with a bare metal server, all the server’s resources are being used to accomplish the goals of the client that owns or leases it.
Although this depends on the nature of application — a single threaded application might not shine no matter how many cores you throw at it — if data crunching or fast I/0 is your primary concern, it makes sense to opt for bare metal. Bare metal servers are also ideal for private cloud or container hosting, allowing users to benefit from the flexibility of cloud servers while maintaining complete control of their hosting environment.
Hypervisor vs Bare Metal
There is no “right answer” to the question of whether an organization should choose hypervisor-based cloud infrastructure hosting or bare metal dedicated server hosting. As I’ve discussed, each has strengths, and which is appropriate depends on the application. In fact, many projects use a combination of bare metal and cloud hosting to maximize flexibility and infrastructure ROI.
Ultimately, your approach shouldn’t be “bare metal vs hypervisor”, but one that considers the specific needs of your application and how the full range of available hosting options can be deployed to meet those needs.