Watch Out Virtual Machines… Docker is Coming!

By | November 17, 2014

Holy shmokes… things are moving fast! The more I look around, the more it looks like the venerable old Virtual Machine (VM) is on its way out!

For the longest time, the best way to run multiple apps on a single piece of hardware was the VM model. In fact it was so good we went crazy with it — show me an organisation that doesn’t suffer from VM sprawl!

Don’t get me wrong… the hypervisor/VM model was great….. for it’s time. But the writing on the wall seems to be suggesting its time is nearly up.

docker grafiti

The Rise of the Containers

It’s looking more and more like the rise of the container is sounding the death knell for the VM.

The VM simply has too much overhead for the modern app running on modern cloud-style infrastructures. Especially public cloud infrastructures where the additional overheads of the VM could potentially put you out of business — at scale, the additional overheads of the VM-centric approach to application deployment become massive! If your competition can squeeze 20% (random number) more app instances per physical machine, then you’re in big trouble!

UPDATE: Since writing this post, I’ve produced an entire video training course teaching the fundamentals of core Docker technologies over on Pluralsight. We’ve even made a sample module from the course available on YouTube as a try-before-you-buy. Go check it out!

The Hypervisor Tax

Don’t agree?

Look at it this way…. The OS is only there to facilitate the app. Let’s face it, if we could drop the OS from equation we would. We seriously would! 

All an app needs is an isolated environment with some QoS controls so we can tweak which apps get what share of resources. The VM model does an OK job of this… But now that container technologies (at least on Linux) are ready for the prime-time, containers can arguably do this better. They do away with all kinds of OS/VM overheads that simply aren’t needed. And like we said earlier, these overheads can be potentially detrimental to your business.

And it makes no difference how good our apps are — how cloud friendly they are, how scale-out they are…. Once the hypervisor/VM tax is levied, there’s nothing the app can do to claim that tax back. There are no rebates!

On the topic of taxes…. what do people and companies do when taxes become prohibitively high? They move. And as far as infrastructure and platforms go…. the grass looks very green and the taxes are very low in the Container world.

So Who Will Move

Well…..  when taxes become prohibitively high in real life, it’s the smart, clever, entrepreneurial, forward thinking people and companies that move. Everybody else is stuck where they are and has to make the best of a bad situation. Well the same will be true of applications. The net-new, built-for-the-cloud, scale-out type apps will move to containers. And the vast majority of the legacy apps will be stuck with the high taxes of the VM world — no doubt propping up the legacy VM market for a while longer…

Where Will They Move To?

While Docker isn’t the only container technology, it certainly is positioning itself as the de facto standard for both —

  • image and container format
  • standard container execution environment

It feels like Docker is ready for the prime-time…. potentially positioned to become the VMware of the Container world. Either way, most apps looks destined for the Docker flavour of containerization (don’t read that as a technical description of Dockers relationship to container technology).

Hello VMware.. How Does It Feel Now that the Shoe Is On the Other Foot?

On the topic of VMware….. It’ll be interesting to see how VMware adopts to this. If it were any other company than EMC and VMware, I’d expect the ship to experience an agonizing sink to the bottom of the ocean. But EMC/VMware have a great history of innovating and adapting. So I’m interested to see how they chart these waters!

That said, the fact remains…. the hypervisor and her VM’s are now the bloated bulky heavyweight in the room. Compared to a VM, every container should require less disk space, less disk I/O, less memory, less CPU….. and less is better! Especially in the cloud.

Will VMware be able to change their perspective on life? The world is no longer about VM’s, it’s about applications. In fact I think we’ll all agree that it’s always been about applications. It’s just that for the longest time, the VM has been the best vehicle for application deployment. But that time is up. The container is the better option.

Can VMware adapt? They’re now the incumbent that’s under threat. How will they react? Will they accept and embrace? Or will they kick, scream and desperately cling on to the VM?

Actually….. can ESXi leverage the namespaces and cgroup foundations of Linux Containers? Or is ESXi (vmkernel) one step too far from Linux? Last I checked, switching from ESX to ESXi was VMware washing its hands of Linux….. Was that a good move? Native Docker containers alongside VMs on an ESXi kernel would be appealing to me.

docker forest

Conclusion

I’m not saying Docker or Containers is a silver-bullet. It won’t solve everything…. yet.

But just like VM’s took time to spread their way into every nook and cranny of the data center. I think, over time, Containers will be found in every nook and cranny of the cloud. For the time being… containers and VM’s will run side-by-side — legacy applications on VM’s and new applications on containers.

So….. the future as far as I see it…… Container sprawl!  Let’s get some tools to make the management bearable!

12 thoughts on “Watch Out Virtual Machines… Docker is Coming!

  1. Pekka Nurminen

    Containers have been available longer than VMWare kind of virtual machines and those have been never able to become as popular as virtual machines did in last decade. I have lot of experience and headaches still from using Solaris containers and by design there was so many things wrong there that if containers would become real success story in this decade those need to be times ten better designed than Solaris containers were and are.

  2. Nigel Poulton Post author

    Thanks for the comment Pekka.

    I think you’ll find Docker (Linux namespaces, cgroups, and Dockers on libcontainer) a very different beast. I think they’re gonna disrupt.

    Previous container tech (including Linux Containers via LXC) weren’t ready. Now they are. It’s all about timing, and it seems the time is right for containers. Google etc have been using them in prod for ages!

  3. Mukesh

    It is more evolved from “chroot” environment of the past but saying “VM is dead” is just another extreme. Dockers have long way to go and it would be interesting to see how they overcome all the challenges.

  4. Nigel Poulton Post author

    @mukesh
    Fair play….. my intention wasn’t really to say the VM is dead…. more that Containers have signalled the looming death of Virtual Machines. Containers have started the ball rolling on what will be a long and slow death of virtual machines as application delivery mechanisms and platforms.

  5. Rob

    “The world is no longer about VM’s, it’s about applications.”

    It’s always been about applications. VM solved the physical server sprawl. When Window’s VMs came along folks rightly pointed out that IBM has been doing that for decades with mainframe LPARs. But yes, docker tech is next up in evolution. And of course so much code and the cost to convert that code to dockerize/re-architect something guarantees that the old ways of doing things will be the norm for quite some time.

  6. Pingback: Containers Explained | nigelpoulton.com

  7. Joe Shmoe

    I am but a Solution Architect so forgive me for the daft question but how is this different generally to what Application Virtualisation has/was been offering for x many years. So the concept of something like ‘App-V’ packaging apps and running them in isolated containers? I know clients doing this on physical boxes with single OS and providing access out to these apps in multiple ways?

    Granted we know these tools cant package everything but i’m assuming that may also be the case for containers? Are containers just much lighter-weight, cheaper (license wise), neater architecturally etc? Dont we already have solutions to this (without VM’s) in the Windows world?

  8. Nigel Poulton Post author

    Joe Shmoe…

    That’s a question I don’t feel qualified to answer – I don’t know App-V or the Microsoft ecosystem well enough. However, it’s been suggested to me (without any detail though…) that MS may leverage code/ideas/etc from App-V to implement Docker on Windows Server Next.

    And the best Docker config for performance seems to be running Linux on the bare metal and containers on top of Linux (skip the hypervisor and VM).

    It could be… that there isn’t a huge difference architecurally between Docker/Containers and App-V. But Docker is white-hot at the moment and MS *want in* on the momentum and ecosystem that’s building.

    Just my two-penny’s worth as I’m honestly not qualified to comment on that.

  9. Joe Shmoe

    Thanks Nigel

    I see how Docker makes sense for Linux but im struggling in the Windows world esp where you also have things like App-V, XenApp, or even now Azure RemoteApp

  10. Nigel Poulton Post author

    I really need to know more about App-V etc…. sadly I don’t.

    With these existing techs on MS can you build an app on your laptop, build it as an image and then run that image unchanged on a production server, on AWS, GCE, Azure….?

    I can build and package an app in a Docker container and run that container on any other platform running Docker (servers, VM in the public cloud…).

    With App-V etc can run microservice architectures?

  11. Mukesh Soni

    Being a Unix core expert and MS operating System “aware” I wonder how MS would be able to implement “Docker like” environment. In my view, Xenapp is Docker equivalent for Window but XenApp is only for the application front end. Docker is next level of ball game with containerization of server side. I think Windows OS would need lot of rework to accommodate Docker like technology seamlessly. A wrapper around kernel would not help anyone.

  12. Nigel Poulton Post author

    Thanks for your input Mukesh. I made the point on the podcast that things like kernel namespaces for Linux have been in the works for a lot of years and only recently are providing the kind of isolation needed for containers…. If MS doesn’t have stuff already in Windows then I can’t see how they can deliver on containers for the next Windows Server release. Of course I don’t know Windows like I know Linux….. but this is fundamental stuff in the kernel and you don’t just add stuff like that into the kernel overnight.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You can add images to your comment by clicking here.