Register Debate Welcome to the latest registry debate where editors 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 take place on Monday and Wednesday, and the arguments against Tuesday and Thursday.
During the week, you can vote for which side you support using the built-in poll, choosing whether you are for or against the motion. The final score will be announced on Friday, revealing whether the pro or con argument was the most popular. It’s up to our editors to convince you to vote for their side.
This week’s motion is: Containers will kill virtual machines
And now, today, CHRIS MELLOR, the publisher of our sister corporate storage publication, is opposing the motion, Blocks and files…
The history of the data center is a long road to efficiency. Bare metal servers would wait for I / O to complete before continuing with other work. Multitasking operating systems were therefore invented to give servers the power to perform other tasks while they waited for I / O to complete.
Multitasking created a demand for more servers, but too often these machines were tightly coupled with single applications and operating systems and if they weren’t busy the server was underutilized.
Virtualization saved servers from this underutilization and allowed businesses to run fewer but larger physical servers and a myriad of virtual machines (VMs). Hypervisors could load virtual machines with different operating systems so that a physical server could run Windows, Unix, and Linux environments simultaneously. Each VM was given the resources it needed and everything was rosy – for a while.
Kubernetes is an application like any other. It’s better virtualized.
Then came hyperscale services running on millions of servers, a situation that made it critical to extract every last server power cycle with as little waste or inactivity as possible.
Virtual machines did not perform well at hyperscale. Enter containers and micro-services, which have become the basic thread for large-scale services and recently for more common software developed using the same techniques used by large-scale operations.
So now we have two types of data centers used by businesses and other organizations: virtual machine centric data centers and containerized data centers.
We also have two ways of producing applications.
It is confusing and complex.
What should we do?
One option is to convert public clouds to VM-centric operations, but that won’t happen because hyperscale operators’ resource recovery models need containers. Virtual machines as the primary thread wastes too much computing resources.
Another option is for the on-premises world to convert to microservices, containerize everything, and operate as public clouds. But the complexity and expense involved are disproportionate for non-hyperscale operations.
The third choice is to go hybrid, to combine the different on-premises and public cloud worlds under one abstraction layer that presents a unified and cohesive environment for running applications.
Brilliant idea. Then the world on site could continue to do what they are doing; run virtual machines in virtualized servers; and public clouds could continue to run containers.
A problem; where is this layer of abstraction?
It already exists. This is called virtualization because a virtualized server can run containers.
What strange magic is this? Tools that manage containers – like Kubernetes – are an application like any other. They are better virtualized. The containers themselves share an operating system. Any instance of an operating system is best virtualized.
In addition, we don’t need containers to have on-premises cloud application mobility to public.
Virtual machines are already mobile. VMware, Microsoft, and all major clouds offer VM migration tools and services.
VMware, which dominates the virtual server market, has a relationship that the virtual machines it has created run in AWS, Azure, Google Cloud, Oracle Cloud, and Alibaba Cloud.
Hyperscale services extracting every last cycle of power from the critical server
Since virtual machines are already mobile, we don’t need to containerize our applications to enjoy multi-directional mobility between public clouds and on-premises data centers. And even if you decide to develop with containers, they need the resiliency, security, and manageability offered by virtual machines.
Get with the purists of the virtualized server program container. They are mature, reasonable, common sense, and low friction. ®
Vote below. We will close the ballot on Thursday evening and publish the final result on Friday. You can follow the progress of the debate here.