While containers on bare metal are unlikely to completely replace virtual machines, they will push VMs aside in many areas, including web hosting.
Whenever a new technology comes along, or an old one finds new applications and attention, the question arises: “Does this new-fangled awesomeness render the old technology obsolete?” The current disruption-focused mindset makes these questions even more likely to arise. But it’s not always the right way to approach the issue of new technologies. Often, old technologies don’t become unused or useless — rather their domain of application shrinks to the specific areas to which they are best suited.
I think that’s what will happen in the virtual machines vs. containers struggle we’re seeing play out. There are those that will defend VMs to their last breath, and those that tout containers as the solution to all problems in application deployment and hosting, but the truth is almost certain to be more nuanced.
A container is a lightweight environment that packages up everything a particular application needs to run, which makes them agnostic as to the the system they run on. Containers can run on any system that supports the container daemon, which in the case of Docker — the most popular container implementation at the moment — is almost everywhere from Linux servers to developer’s Windows machines and MacBooks (with the help of a lightweight VM, somewhat ironically.)
The main benefit of containers is that they do much of what a virtual machine can do with far less resource overhead. There’s no need to run a hypervisor or guest operating system. Containers are faster to start, use far fewer resources, and in many cases, they are less complex to manage. All of which means they have become hugely popular.
Related: Where Next for Virtualization?
According to Bryan Cantrill, CTO of Joyent, “There is a structural disruption happening right now. We’re now doing to VMs what VMs did to physical machines.” Cantrill said that “it’s best to run containers on bare metal servers, meaning one that does not have a hypervisor and virtual machines.”
This makes perfect sense. Although VMs certainly have some benefits, it would largely obviate the advantages of containers if they were run on virtualized infrastructure. Plus, bare metal cloud technology has advanced to the point where a BMC is a viable alternative to a virtualized cloud. Bare metal clouds coupled with containers are a very attractive package, with the capability both to extract the maximum performance (and hence ROI) from physical infrastructure, along with the flexibility, security, and power of containers.
Does that mean virtualization and the virtualized cloud is dead? No, because there are some domains in which BMC’s coupled with containers aren’t the best option. Netflix is an oft-mentioned example: it would be hugely inefficient for Netflix to buy all of the infrastructure they need at peak times — it would be idle for most of the day. It makes sense for them to use AWS and spin up virtual servers as they are needed, even with the performance implications of doing so. For businesses that need extensive elasticity in both directions — scaling up and down — virtualized clouds make sense.
Typical web hosting scenarios do not require this level of elasticity though. Of course, they need to scale, but it’s scaling of a more predictable magnitude than the Netflix-type applications. And for web hosting, that means containers and bare metal clouds are a great solution. Web hosts get the flexibility of containers and they can use their infrastructure at peak efficiency, which is why many hosting companies are building on containers rather than virtual machines.
As I mentioned at the top of this article, new technology doesn’t often make old technology completely obsolete, it usually provides a better solution for a wide domain of the old technology’s use cases. In this case, there is still a place for the virtual cloud — there are things it does best — but it is likely to be pushed aside in areas like web hosting where containers will become pre-eminent.