Dan's Take

Are Containers and Virtual Machines Really Competitors?

Red Hat says no. Dan agrees.

I had an interesting discussion with Red Hat's Gunnar Hellekson, director of product management, about whether containers are competitive or complementary with virtual machines (VMs). From my conversations with the PR folks, I thought that Red Hat was going to try to support the concept that containers were going to supplant VMs in the marketplace. I simply don't believe that, since the two different types of processing virtualization serve different purposes.

I quickly learned, however, that I had come to that understanding due to a PR miscommunication. It was fun to speak with Hellekson; that he's very knowledgeable, deliberate and precise in his language, and doing his best to make sure Red Hat offerings will serve customer requirements. We discussed the fact that there are many different types of processing virtualization and that each has its place in the enterprise data center.

Virtual Machines
Although the use of VMs is often seen as a panacea, a tool to address all problems, it really is most useful when workloads from multiple operating systems or multiple versions of the same OS need to share the same physical host and still be able to run in isolated from one another.

This approach, while very flexible, means that every workload is carrying along the full weight of an OS, application frameworks, applications and, very likely, database software. This can mean that each workload requires more processing power, more memory and more storage than required by other approaches to processing virtualization.

When the goal is highly efficient application isolation, application performance application reliability and availability, or making an application work in an environment that normally would create problems, application virtualization technology is a better choice.

Containers
Containers and other forms of OS virtualization and partitioning address a different set of requirements. When the goal is workload isolation and optimization, but all of the applications are designed for the same OS, OS virtualization and partitioning technology, such as containers, is a better choice.

This use of this technology means there is only one copy of the OS executing on the host. This also means that processing, memory and storage requirements are drastically reduced. Switching from one workload to another can be much quicker, because it isn't necessary to haul around an entire OS per workload.

Another significant benefit is that developers can work to create services and microservices without having to worry about OS installations, provisioning, management and so on. It is far quicker and less costly to spin up a new container than a new VM.

There are times that carrying around a complete system image for each and every workload is just too heavy; that is, it consumes too much processing power, memory and storage. Hellekson said that Red Hat Enterprise Virtualization is Red Hat's offering when VMs are the way to go, but also including support for containers in its OS and cloud computing products. The company's goal is to provide the tools enterprises need to address various business requirements.

Dan's Take: A Place at the Table for Both
Red Hat's PR rep sent me a note that appeared, at first glance, to imply that containers and other forms of OS virtualization and partitioning were somehow in competition with VMs; that one would eventually cannibalize the market for the other. This is just wrong.

Since the two types of processing virtualization technology address different problems, I pointed out that they are complementary, not competitive. It is quite possible for a VM to be supporting a workload architected using container technology.

Thinking that I was going to face an adversarial situation, I sharpened up my arguments and prepared for a battle. What really happened was far more interesting.  Hellekson and I agreed on nearly every point. I really enjoyed speaking with him and look forward to future conversations.

We both agreed that each of these types of technology are designed to address different problems.  They can be used together when necessary, or independently when workload requirements lead to a choice of one over the other.

Red Hat clearly understands this and is offering products and services designed to address all of those needs.

About the Author

Daniel Kusnetzky, a reformed software engineer and product manager, founded Kusnetzky Group LLC in 2006. He's literally written the book on virtualization and often comments on cloud computing, mobility and systems software. He has been a business unit manager at a hardware company and head of corporate marketing and strategy at a software company.

Featured

Subscribe on YouTube