News: 1624276807

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

VMs were a fad fit for the Great Recession. Containers’ time has finally come

(2021/06/21)


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: [1]Containers will kill virtual machines

[2]

And now, today, arguing FOR the motion is TIMOTHY PRICKETT MORGAN, the co-editor of our sister publication, [3]The Next Platform ...

[4]

[5]

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.

[6]

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 containers, 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.

[7]

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 [8]here .

JavaScript Disabled Please Enable JavaScript to use this feature.

Get our [9]Tech Resources



[1] https://www.theregister.com/Debates/2021/06/21/containers_virtual_machines/

[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/virtualization&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YNC3nGtVc9wrF4a0VhRtjQAAAI4&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[3] https://www.nextplatform.com/

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/virtualization&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YNC3nGtVc9wrF4a0VhRtjQAAAI4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/virtualization&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YNC3nGtVc9wrF4a0VhRtjQAAAI4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/virtualization&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YNC3nGtVc9wrF4a0VhRtjQAAAI4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/virtualization&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YNC3nGtVc9wrF4a0VhRtjQAAAI4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[8] https://www.theregister.com/Debates/2021/06/21/containers_virtual_machines/

[9] https://whitepapers.theregister.com/

Lunatic Looking For Asylum

Before long we'll be just running several apps on the server, get rid of the dock overhead as well.

Fashion repeats.

Hmmmmm

Anonymous Coward

I'm not sure that's accurate to be fair. Containers are a much more versatile solution that offer you the capacity to deal with these matters before they become a real problem

Re: Hmmmmm

RegGuy1

And remember ALL containers will use the same kernel. Want a different kernel? You'll have to fire up a different VM (OS).

But if the kernel gives you all you need for all the apps you want to run then containers are the way to go.

Asking for a friend..

James Haley 2

Do we have to read the arguments to vote?

Re: Asking for a friend..

Anonymous Coward

Ha ha

No more managing operating systems and monolithic apps

ST

Yeah, Good Luck with that.

News at 11: your datacenter server is not your Android smartphone or iPhone. There are no "apps" on your server. Deal with it.

But go ahead and make your glossy slide deck promising just about anything. PHB will love it.

Re: No more managing operating systems and monolithic apps

Anonymous Coward

You really didn't invest a lot of time on basic research before you answered, did you?

Re: No more managing operating systems and monolithic apps

ST

> You really didn't invest a lot of time on basic research before you answered

Of course not.

I've only been doing this - Operating Systems and Compiler development - for 22+ years. What do I know, O Brave Anonymous Coward.

Teach me, All-Knowing Master.

The entire premise of TPM's article can be summarized as: Buzzword Soup. Not even the timeline is remotely correct.

Re: No more managing operating systems and monolithic apps

mhoneywell

The entire premise of TPMs article can't be summarized as Buzzword soup.

It can, however, be very neatly summarized with this statement:

"And containers show us that running a big fat operating system on every compute element is far from efficient. "

I'd argue that this is correct and that expanding from that point - which is really all that containers do - takes us to a much more efficient place in computing.

That is not to say that there aren't deficiencies in containerization, its management or the current implmentations across this spectrum. But, for me - 18yrs experience successfully building, managing and architecting large scale data center infrastructure - these are mere bumps on the road, fractures that will be fixed in due course.

We are riding the first (maybe second) wave of containerization and, I'd argue, the time for containers has indeed come. (apply your own caveats, do your own research etc)

(Also, the timeline is correct)

Re: No more managing operating systems and monolithic apps

ST

> "And containers show us that running a big fat operating system on every compute element is far from efficient."

What does that even mean? Does he mean that running an OS on a bare-metal compute node is inefficient? Or does he mean that running an OS inside a container that's running on a compute node is inefficient?

I fail to see how adding a layer cake of indirection - which is what a container really is - would yield better performance than bare-metal. But hey, perception is reality and no-one's counting instruction cycles. It feels faster because we spent a lot of money setting it up and getting it to work.

> [ ... ] it is far better to stop having an operating system at all.

Moronic Statement Of The Year. Who and What is going to run your container?

> 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.

Say What?? The CPU is now application runtime? Does he even understand how Operating Systems actually work?

Monolithic apps . What's the definition of a monolithic app ? Server-side software?

Is Apache httpd a monolithic app ? What about nginx? Or Git? Or MariaDB (née MySQL)? Or HPC applications that run distributed / parallel on thousands of compute nodes using some flavor of MPI and OpenMP, and maybe CUDA? [ Insert mandatory buzzword here: AI/ML. Blockchain? Nope, that's cooked. Yesterday's Hype, move on. ]

In what way, exactly, is HPC software similar to an "app"? Is Git an "app"?

Speaking of Containers: Have you tried Docker? If you haven't, you should, if only out of curiosity.

It is completely inadequate for any conceivable use case that one might attempt to use it for. It sucks for development, and it sucks for production too.

The only possible use case that I could find for it is demoware. If for some reason said demoware needs some special runtime environment that can't be replicated on some simple bare-metal setup. Which is a red flag in and of itself.

The entire story reduces to the same old story: the Container Hype Bullshit Industrial Complex over-promised (as usual) and then under-delivered (as usual).

> Also, the timeline is correct.

Nope, it's wrong.

If you had to start from scratch...

Warm Braw

... imagine how many valves and relays - or even gearwheels - it would take to replicate our current processing capacity. Which is why we move forward from where we are, even if it sometimes involves retracing our steps a little.

Virtual machines actually solved two problems: one was allowing "fractional" workloads to be amalgamated, the other was allowing heterogeneous systems to be consolidated. There will likely be less demand for the latter as on the one hand Linux becomes even more ubiquitous and on the other the x86 hardware architecture is no longer the common denominator for deployments and source-level compatibility will be seen as key.

However, I'd expect to see more VM-like techniques being used to harden and simplify containerisation and even to facilitate the mobility of workloads between different hardware architectures as they likely become more diverse and having multiple compiled versions of containers becomes a pain.

It's the old story of computer evolution: the same principles reappear in different packaging.

Re: If you had to start from scratch...

Charlie Clark

It's almost as if BSD jails and Solaris containers had never existed…

Death is a spirit leaving a body, sort of like a shell leaving the nut behind.
-- Erma Bombeck