From Harry Quackenboss: Here’s a common hypothetical situation: You just got asked to make a recommendation on building out a private cloud for your IT organization and there is some debate about whether you should architect it around virtual machines (VMs) or you should avoid all that "old-fashioned" complexity and just support containers.
We get asked this question frequently. We have spent considerable effort thinking about it and trying out various alternatives in our own laboratory, not to mention having years of experience designing, deploying, and managing production workloads for our customers using both.
What do you do? If you could only ask one question, make it this one: Is it going to run existing workloads?
If the answer is yes, then you are going to need to use VMs.
But that doesn’t mean your cloud can’t also accommodate container workloads. Containers, including Kubernetes and other container management systems, can be deployed on top of a VMs with performance pretty close to native container infrastructure. Further, several VM infrastructure platforms such as OpenStack’s Ironic Bare Metal service, can be used to deploy and manage a native container infrastructure, whether for internally-developed applications, or a container-based database or storage service, available to both existing physical or Virtual Server workloads, and new container-based applications.
On the other hand, if your objective really is to support a brand new microservices-based workload or you actually want to put up a greenfield, “build it and they will come” Cloud Native environment, then maybe a containers-only service is right for you. But before you commit to a pure containers approach, there are a few other things to consider.
We will begin to cover these in the next installment.