Register Debate Welcome to the latest Register Debate in which writers discuss technology topics, and you – the reader – choose the winning argument. The format is simple: we propose a motion, the arguments for the motion will run this Monday and Wednesday, and the arguments against on Tuesday and Thursday.
During the week you can cast your vote on which side you support using the poll embedded below, choosing whether you're in favor or against the motion. The final score will be announced on Friday, revealing whether the for or against argument was most popular. It's up to our writers to convince you to vote for their side.
This week's motion is: Containers will kill virtual machines
And now, today, arguing FOR the motion is TIMOTHY PRICKETT MORGAN, the co-editor of our sister publication, The Next Platform...
In the fullness of time, as the top brass at Amazon Web Services are fond of saying when they think about the future, we will live in a world where most new applications are written as microservices and are packaged up, loaded up, updated, and shut down as pods of containers providing isolation between those applications. The fullness of time, however, can mean a decade. Or two.
Everyone always knew that server virtualization as implemented in a hypervisor, with whole distinct operating systems running inside of virtual machine boxes, was a stopgap measure made to drive up the utilization of physical servers and wring some efficiencies from the IT budget.
But if you had to start from scratch, let’s be honest, we would have skipped the whole server virtualization transformation – if it were not the fact that two recessions – the dot-com bust in 2000 through 2002 and the Great Recession in 2008 through 2010 – compelled organizations the world over to find a way to stop wasting so much money on servers.
Containers aren't a special application running on VMs. VMs are a special kind of container running atop bare metal.
All the efforts to streamline operating systems – remember the whole “just enough operating system” fads for Linux and Windows Server? – were a step in the right direction, but it is far better to stop having an operating system at all.
Even the early container efforts in Free BSD Jails and Solaris Zones, which had a shared kernel and a collection of userland sandboxes – were too much.
At some point, thanks to the advent of VMware’s ESXi, XenSource’s Xen, Microsoft’s Hyper-V, and Red Hat’s KVM, server virtualization hypervisors and the VM as software distribution package became normal because it was relatively easy to explain and justify, even if VMs are a bit heavy in terms of server overhead.
All those monolithic applications running in the enterprise will have to die a slow death before VMs and hypervisors disappear from the datacenter, and the container platform security model has had to improve, too.
But the direction for the future seems clear. Some years ago, when Docker and Kubernetes were first gaining steam, we treated containers as a special kind of application running atop virtual machines, but now we are starting to treat VMs as a special kind of container running atop bare metal.
New applications will be written in new ways and with new tools, and they will be containerized because this is the easiest way to get the benefits of the microservices approach that the hyperscalers have demonstrated is the best way to build and deploy software.
The minute every server has a data-processing unit (DPU, aka SmartNIC) that can virtualize security, networking, and storage, a server CPU becomes not much more than an application runtime environment. We might even go so far as to say that the server no longer has or needs an operating system and that everything that we think of as an operating system kernel, except the user space, will be out in the DPU.
That is, in essence, what AWS has created with the Nitro DPUs for its own servers. The fact that the public cloud then adds a KVM hypervisor to this DPU so that server CPU can be carved up into instances to sell on the public cloud, running either Linux or Windows Server, is completely arbitrary.
And unnecessary in the fullness of time.
The server no longer has or needs an operating system
Strange and unfamiliar, isn’t it? But with Moore’s Law on its last legs, anything that further improves efficiency is necessary.
And containers show us that running a big fat operating system on every compute element is far from efficient. ®
Cast your vote below. We'll close the poll on Thursday night and publish the final result on Friday. You can track the debate's progress here.