VMblog: How do people think about the TCO of virtual machines, and is it reasonable to apply the same TCO outlook to containers?
Mark Balch: Containers have a variety of benefits over virtual machines from a cost and performance perspective. First of all, start off by realizing that fundamentally containers allow you to run multiple applications on the same server or operating system but without a hypervisor and the associated licensing cost. That is a huge shift from just a few years ago when the only way to run multiple applications on the same server was with a hypervisor. I mean in a way that you could easily reproduce. You could always come up with your own hacked way to run multiple apps on a server but it was hand crafted and specific to your application. What that means is the hypervisor is in some sense completely superfluous for containers. Why would you even put a hypervisor on if you can already run multiple apps without it? If you look at the cost of the hypervisor compared to zero, that is one element of TCO.
VMblog: What about the resource requirements of VMs vs containers?
Balch: If you look at the resource footprint of the hypervisor and each of the VMs which brings its own OS overhead, you realize that you're going to lose a chunk of resources that aren't going to be available for your applications. So that's also a cost compared to zero for containers from a TCO standpoint. All of those things also have a performance implication, too. There is some performance impact of the hypervisor and the VMs and the multiple levels of software involved in servicing that stack. With containers in a bare metal container environment those things simply do not exist. So there's no cost in having to deploy additional resources to compensate for the overhead of the hypervisor. Keep in mind that a container footprint actually is zero. A container is not a thing. A container is a boundary of permissions and resources within Linux. There is no layer or resource of a container. It's like a glorified list that Linux keeps track of what you can and can't do in that container.
VMblog: What other TCO advantages do you see for containers over VMs?
Balch: I've already spoken to performance and footprint. Let's not overlook operating expense. Figuring out labor and OPEX is always tricky -- everyone always has their own cost models, and always a lot of skepticism when vendors talk soft TCO. But the reality is that if you completely remove something from the environment, whatever cost and time you had to administer that drops to zero.
VMblog: What are the greatest TCO shortcomings of containers vs. VMs?
Balch: The biggest shortcoming is the lack of user education and therefore the impact and cost of training. And the cost that early adopters often absorb in manual integration and custom engineering since the tooling around containers is still immature and new.
If you are attending this year's DockerCon event, definitely put Diamanti on your must see list to find out more about the TCO of containers vs. VMs. Visit them at booth #S9.