Containerization may mark the decline of virtualization

The popularity of containerization is leaving virtualization in the dust. ZeroTurnaround's Jevgeni Kabanov explains why.

Just as video killed the radio star, the emerging popularity of containers services, of which Docker is certainly the most dominant in terms of market share, will lead to the inevitable decline of virtualization.

In a recent conversation about industry trends with ZeroTurnaround CEO, Jevgeni Kabanov, or JK as he is affectionately known, the topic turned from what's happening now, to what he sees happening in the future, and when it comes to container-based services, his prognostication is that "in the long run, I think that will kill virtualization."

Shaking your head from the sidelines

It's funny, but sometimes when trends happen in the industry, rational people often sit on the sidelines mumbling to themselves about the real virtue of the fad that is taking over. In many regards, EJB 2.0 was like that. Clunky, difficult to manage, impossible to port and a nightmare to maintain, many developers and software architects shook their heads at the direction the brightest minds in the industry were steering the enterprise Java ship. It would seem that Kabanov has been harboring a similar skepticism about the long-term viability of virtualized servers. "I never understood the point of virtualization," JK said.  "I've had the same opinion for the last 10 years."

So what is the fundamental problem that will see the virtualization segment fall like Rome? Much of it comes down to performance, while there are other concerns like overly complicating application lifecycle management. "Virtualization will always have a segment, but generally people don't want to virtualize the whole operating system. They just want to run their app in a container," Kabanov said.

With all things being equal, why would you want virtualization?

Jevgeni Kabanov, CEO, ZeroTurnaround

At the core, what software professionals want is a simple and dependable way to run their applications. Virtualization makes this possible, but it comes at a significant performance cost when compared to container-based services such as Docker. On the other hand, container-based services run directly on the host operating system (OS), which is tied directly to the underlying hardware. There is no added level of indirection where hypervisors marshal calls between the virtualized OS and the host operating system, which then interacts directly with the underlying hardware. And of course, with virtualization, there is a huge resource cost associated with running each virtualized OS.

"With a container-based system, you're not running a whole operating system, you're not running another scheduler, another memory virtualization, another paging system," Kabanov said.  "So with a container-based system, you literally get less performance overhead."

Beyond the performance problem

And containerization's trumping of virtualization isn't just about performance. Various application lifecycle management tasks are simplified when you have containers running on a single host OS. For example, imagine a security patch needs to be applied to the version of Linux that is being run. The patch not only has to be applied to the host, but to each and every virtualized instance as well. With a container-based system, you simply patch the host and you're done.

Of course, containerization isn't going to perform a clean-sweep on the industry. "Virtualization will always have a segment", Kabanov said. But as container-based services mature, the use cases where pure virtualization is preferred will be small. "With all things being equal, why would you want virtualization?" Kabanov asked. "From every other standpoint, containerization is a better deal."

You can follow Jevgeni Kabanov on Twitter: @ekabanov

You can follow Cameron McKenzie as well: @potemcam



Next Steps:

Containerization: An uncontainable trend

Learn how containerization differs from virtualization

Dig Deeper on DevOps-driven, cloud-native app development

App Architecture
Software Quality
Cloud Computing