Virtualization and containerization are the go-to methods for enterprise hosting, but there are times when only bare metal servers will do. Does that mean you have to reconcile yourself to unresponsive, slow provisioning cycles, high costs, and risk of failure?
A new generation of bare metal server provisioning tools proves that you don’t. You can have the advantages of bare metal with rapid provisioning, with automation, and even with automated workflows that make scaling fast, safe, and efficient.
In this post, we’ll look at why some companies need bare metal servers and what the alternatives are for provisioning. First, what is bare metal provisioning?
What is bare metal provisioning?
Bare metal provisioning means installing and running operating systems and applications directly onto physical servers, rather than using virtualization. It works differently from other methods of provisioning and thus offers distinct advantages.
On a bare metal server, each user has their own physical machine and only they use it: the server is isolated. You’re alone on your servers, and the only firmware and software that’s running on that hardware is your OS and applications.
That matters for several reasons. First, it’s a security issue. If you’re the only user on your physical server, that can be more secure than if you’re sharing it with untold others. When an application has to be maximally secure, or maximally compliant with stringent regulations, this can be a critical consideration.
Second is performance. The ‘noisy neighbor’ problem (one tenant’s performance is adversely affected because of the actions of another tenant sharing the same hardware) is obviated. And some applications rely on direct access to high-performance hardware like GPUs. Additional layers of software mean additional computation, so a bare metal server will always have the potential to be more responsive, all other things being equal. Whether it meets that potential is in large part down to how it’s set up and managed.
The downside of bare metal is that it can be complex, expensive, and hard to manage and scale: new server space has to be bought as hardware, installed, set up, and integrated. Of course, many projects simply don’t have the computational requirements to call for a whole server all to themselves. Virtual machines or containers are a better choice for them. Bare metal is a choice for specialist requirements and usually requires expert help to get the best out of it. Historically it’s also been difficult to deploy to the cloud, for obvious reasons, leaving businesses to an either/or choice where both options may be unsatisfactory. It’s no longer necessary to make that choice, and bare metal in the cloud is not an oxymoron. It also doesn’t have to be managed ‘by hand’ — there are automation tools available, which we’ll look at further down this post.
OpenStack bare metal provisioning
OpenStack is an open source solution that lets users combine bare metal provisioning with the advantages of cloud — while avoiding the public cloud entirely. It provides the components required to provision and manage individual physical servers for end users, using:
- OpenStack Identity (keystone), which authenticates requests and assists in locating other OpenStack services
- OpenStack Image service (glance), which manages images and image metadata for the boot discs used to boot the bare metal machines themselves
- OpenStack Networking (neutron), which provides DHCP (Dynamic Host Configuration Protocol) and network configuration for the bare metal provisioning networks
Bare metal provisioning can, in a sense, be done via virtualization, using a tool called a bare metal hypervisor. A hypervisor manages all the virtual machines installed on a server, usually by sitting on top of the primary OS layer. But it’s possible to have a hypervisor sitting on top of the bare metal server, then everything else sitting on top of that. RedHat uses the KVM hypervisor for this; fittingly, OpenStack uses its own hypervisor-and-APIs kit called Ironic.
This can leave you with many of the advantages of bare metal provisioning, such as guaranteed access to specific hardware components, because that access is managed by the hypervisor. Yet it can simultaneously deliver advantages such as increased efficiency, raising resource utilization from around 15% to 80% or more through dynamic load rebalancing using the hypervisor.
Containerization and bare metal provisioning
Containerization is increasingly popular for its ease of implementation and use. It’s fast to scale and offers predictable, yet responsive costs that rise and fall smoothly with usage. It’s also less involved and computationally resource-intensive than virtual machine implementations. But it also offers a larger attack surface than bare metal, and may not provide the kind of access to specific hardware or functionality required for some applications.
Typically, containerization is done in virtualized environments, but it’s also possible to do it on bare metal — and it’s an increasingly popular option. Kubernetes and Docker can be used on bare metal servers, allowing you to set up directly onto the server, improving use of computation; resources and putting control back into your hands. (Of course this also puts responsibility back into your hands; it’s not a good choice unless you have the skills in-house or partner with a company that does.)
Rapid provisioning architecture
You can also think of rapid provisioning as ‘just-in-time’ or ‘responsive provisioning.’ When a user decides they want to scale up their operation, they opt for more server space — but is it available and ready to go? Imagine a company facing a week-long sales blip that nets them an extra $7 million; a day’s delay in server provisioning costs that company $1 million. A week’s delay means they miss out on the blip but end up paying for additional server space anyway. (This is exaggerated to make the point.) Rapid provisioning has direct business benefits for end users.
It’s easy to see how it can be done in virtualized environments, but how can bare metal servers be provisioned rapidly?
The obstacles include running the hundreds or thousands of scripts necessary to boot and install OSs on servers; not much has to go wrong to complicate the process. One solution is to use disk images, kept pre-installed on hardware and simply decanted onto servers as needed, to accelerate the process. Getting a working OS onto a server is simply a data transfer problem. Bootable images that are already known to be valid for the hardware can be used, slashing the amount of manual attention required and reducing scope for error.
Automated bare metal server provisioning
There are proprietary tools to do this, such as Tinkerbell. It’s also possible to do it through OpenStack; one method is to use Bifrost, which is increasingly popular as it doesn’t involve using additional OpenStack components.
However it’s done, it depends on a methodology that reduces variety at the edge as much as possible. That doesn’t mean all edge devices should be identical, but it does mean creating a taxonomy of device archetypes and provisioning to those archetypes to reduce system variety and accelerate processes. Installing dependencies and other required customizations to the disk images means you only need to boot — not install, configure, and customize each time.
Zero-Touch Provisioning (ZTP) for bare metal servers
ZTP makes using bare metal servers nearly as simple as virtualization. Without it, skilled technicians need to manually configure servers. Racking, connecting to the network and booting to factory default are the beginning of a laborious process that includes significant risk of failure. The alternatives we’ve looked at in this post represent efforts to shorten this process, improve its outcomes, and standardize and automate as much of it as possible. Automated, rapid bare metal provisioning is possible and it is an improvement on a purely manual approach. It’s far from the last word on the subject.
With ZTP, racking, powering on and network connection have to be done by hand — they’re physical processes. But all the other steps are handled in well-defined, error-free and fully automated processes.
Pliant’s ZTP Solution provinces enterprises with a simplified, streamlined workflow to automate and orchestrate bare metal server fleets — one that’s centrally managed, highly efficient, cost-effective and error-free. Low-value but high-impact tasks, that cause real trouble when they fail, are handed over to computers, eliminating the risk of human error.
It all relies on the Pliant Orchestration Platform, powered by thousands of abstracted APIs from popular products. The resulting low-code ‘action blocks’ let users easily produce the automated configuration and provisioning workflows they need, set them in motion, and turn their attention to higher value-adding, more strategic activities.
Pliant offers workflows for Dell, HP, and SuperMicro servers that automate error-free BIOS, network driver and RAID controller upgrades, and hypervisor or OS installation and configuration.
Choosing a path
How should you provision your bare metal servers? If you want just one or two, for highly-stable task loads that aren’t going to change, manual setup might work fine for you. If you want to use bare metal the way other companies use containerization, but with all the computational and security advantages, having a technician head down to the rack to do it all by hand isn’t going to cut it. Tools that automate some of the process are valuable, but they narrow the gap: they don’t fully bridge it. You still need in-house technical skill or a partner who can work out customizations, workflows and provisioning methods with you.
If you’re a growing business and you want access to bare metal server fleets that can grow with you, look for a comprehensive solution that’s responsive, error-free, and efficient whatever your needs.