What is a Bare Metal Server?
The standard definition is that it is a single-tenant server. In other words, it is a physical server-a distinct physical piece of hardware that is dedicated to a single client or tenant. Before the emergence of cloud computing, these servers were run in the corporate data center but, today, they are more typically run from colocation centers or rented on a subscription basis.
Bare Metal vs. Virtualized Servers
Bare metal servers are usually contrasted with virtualized servers which have become ubiquitous in recent years. Virtualized servers are machines with resources that are shared across multiple users. The physical machine is converted into multiple virtual machines, each running their own operating system. This is done by utilizing he hypervisor, which is software installed on top of the computer hardware and which creates the virtualization layer. The hypervisor manages the sharing of physical resources into virtual ones. Virtualization has been a wildly successful technology and virtual machines are running in a majority of global 2000 enterprise data centers today.
Pros and Cons
The big advantage of server virtualization is efficiency and utilization. Virtualization can increase resource utilization from the standard 15% to close to 80%. Virtual machines are also easier to maintain than physical servers. In the case of bare metal server failure, restoring it to its original state is more complex than just replacing a virtual machine with a previously-created virtual machine backup.
Server virtualization also wins in the realm of portability. It’s quite easy to move virtual machines from one physical server to another because they are isolated from one another and have their own virtual hardware. Moving physical server environments to another location is more complex as all the data has to be copied, and then re-installed on a new server. The server is effectively re-built from scratch.
Bare metal servers have one very important advantage though: Performance. Because there is no hypervisor layer to put a drain on resources, and the operating system is run directly on the server, bare-metal servers offer higher performance. Bare metal servers are the same as dedicated servers providing high-performance resources that are dedicated to one user. The difference is that they offer flexible, pay-as-you-use billing and no contracts.
How is Containerization different from Virtualization?
Containerization burst onto the computing scene in 2013 and has emerged as another highly successful technology. Containerization solves a slightly different problem to virtualization, but it shares many characteristics with virtualization which are worth exploring. Virtualization, as we have seen, is all about moving beyond the “one server, one application” model of the past, and improving resource utilization by running many different virtual machines on a single box. Containerization though is all about application portability. It solves the problem of how to get software to run reliably when moved from one computing environment to another.
The standard problems that arise when porting applications from one environment to another are that they might be different versions of application software, libraries, and even security policies in place. This can lead to anomalies and unexpected results
Containerization solves this problem by encapsulating an entire runtime environment: an application, plus all its dependencies, libraries and other binaries, and configuration files in a single package. By containerizing the application, developers can be sure that it will always run identically, no matter the environmental idiosyncrasies.
A Visual Comparison
The following visual contrasts the two approaches:
The primary difference, as this diagram makes clear, is that each virtual machine runs its own instance of the operating system including the binaries, libraries, and applications. Each virtual machine can run a different operating system if required. Containers, on the other hand, do not have multiple OS instantiations, but run a single operating system, with each container sharing the OS kernel with the other containers.
That means the containers are much more lightweight and use fewer resources than virtual machines.
What does this mean for Bare Metal Servers?
How does this have anything to do with bare metal servers? The answer is simple. The simplest and most efficient way to run containers is to run them on bare metal machines rather than virtualized machines. Containers can, of course, be run on virtualized servers and often are. There is controversy around whether bare metal will vanquish virtualized servers over the long term, and running containers on bare metal is still far from mainstream. However, deploying containers on top of an existing virtual environment effectively layers one form of virtualization on top of another. Also, completely different teams are likely to manage the virtualization and containerization deployments leading to inevitable communication problems, duplication of effort, and delays.
One big reason that containers on bare metal are not yet the default standard is that while all large cloud providers support containers, very few support containers on bare metal. The likely reason is that big vendors like AWS and Microsoft Azure are waiting to see where the market goes before figuring out how to provision affordable bare metal options.
It seems likely though that if containerization begins to replace virtualization, an eclipse of virtual servers in favor of bare metal will not be far behind.
Resources to learn more
Along with networking and storage, cloud servers are a major component of Infrastructure-as-a-Service (IaaS) platforms. IaaS buyers should educate themselves on the various product options available by reading reviews of IaaS platforms by actual users of these products on TrustRadius. Reviews of IBM bare metal servers are broken out separately. Additionally, reviews of Container Management platforms can also help make sense of this rapidly emerging technology.