This content is part of the Essential Guide: Virtual container technology options for management, security

Containers conflict: IT pros debate Docker bare metal vs. VM

Enterprise IT pros debate the best way to deploy containers on virtual machines or bare metal, while Docker itself stays neutral.

SEATTLE -- To VM or not to VM? As enterprise IT contemplates containers, that is the question.

For many IT pros deploying containers into existing infrastructure, VMs offer compatibility with the rest of the environment and flexible deployment between hosts. Others argue a Docker bare-metal deployment best matches with containers' kernel-sharing efficiencies for better performance. Each side argues theirs is the more frugal option.

"For VMs, you buy a chassis with an ungodly amount of CPUs and a huge memory partition," which tends to be more expensive than groups of smaller commodity bare-metal servers, said Gary Davidson, senior solution architect for Inc., a division of Kroger Inc. that sells vitamins and supplements through an e-commerce site.

Vitacost is preparing to put containers into production later this year, and, for now, runs them on a VM infrastructure, but Davidson said bare-metal servers are his ideal deployment choice.

However, a consultant working with Vitacost and other enterprise clients said most of his customers prefer VMs over containers on bare metal.

"With VMs, you can quickly spin up images, and they can offer better resilience," with features like high-availability (HA) failover and dynamic resource scheduling, said Vijay Ramanan, principal consultant with Lister Technologies, a multinational consultancy with U.S. offices in Fremont, Calif.

Docker on bare metal might be the theoretical ideal, but it's not the existing infrastructure at most companies -- most of which are also not fully containerized yet, Ramanan said.

"It is different if you're talking about a 100% Docker infrastructure," Davidson said.

Still, other attendees at DockerCon 2016 here countered that running bare-metal containers is a no-brainer.

"Why would you run it on a VM?" said a software engineer for a customer experience management software maker on the West Coast who requested anonymity. "Docker does the bin packing for you and makes better use of the hardware."

For companies that want to use containers in hybrid or public cloud environments, VMs are unavoidable, said Pauly Comtois, vice president of DevOps for a multinational media company, whose business runs both Docker on bare metal and Docker VM deployments. Still, VMs' scalability speeds and processes are somewhat antiquated today, Comtois said, making bare metal the better option for some apps.

Have it your way

Docker itself isn't picking sides, according to a presentation here.

In the real world ... microservices and monoliths are a continuum ... I don't expect the way people get started [with containers] to be the way they'll necessarily end up.
Mike ColemanDocker technical evangelist

"When I came to Docker, everything in my life was VMs," said Mike Coleman, a Docker technical evangelist with a focus on IT operations. Many enterprises approaching containers for the first time will be in that same boat, he said.

However, "It's hard to scale out 1,000 containers in a web service if they all take too long to boot," which is an argument for bare metal, he added.

Conversely, commercial software licensing costs are now tailored to virtualized environments and tend to charge by CPU core or socket, meaning VMs might be the more frugal way to go. VMs can also offer resource pools and quotas, an area where Docker isn't quite there yet, Coleman said.

Moreover, VMware resiliency features in particular, such as HA, Distributed Resource Scheduler and Fault Tolerance, "can be hard to live without -- that might be a deciding factor for you," he said.

Additionally, enterprises with mixed environments, whether running multiple Linux distributions or both Windows Server and Linux OSes, can best mix workloads today using Docker on VMs.

Then again, hypervisors do introduce latency for some applications, Coleman said. And while some applications are better consolidated using virtual servers, Coleman cited the example of Swisscom, which he said moved a MongoDB database deployment from a pool of over 400 VMs to a set of 20 hosts, each of which runs 20 containers.

Ultimately, Coleman stopped short of offering any direct guidance for those evaluating the Docker bare-metal or VM choice.

"In the real world ... microservices and monoliths are a continuum," he said. "And I don't expect the way people get started [with containers] to be the way they'll necessarily end up -- we're all in the early days here."

Beth Pariseau is senior news writer for TechTarget's Data Center and Virtualization Media Group. Write to her at [email protected] or follow @PariseauTT on Twitter.

Next Steps

Docker swarms partners' turf with integration option

Docker packages together management tools in Datacenter

Enumerating the drawbacks of Docker containers

Dig Deeper on Managing Virtual Containers