The future of Containers


docker_ioI’ve been giving containers a second thought at least from a concept perspective. One of my more faithful readers Lennie, has been pushing containers for the past year or so. I wrote about how containers will probably never catch on in Windows because one, they have been around at least since Windows 2000 and two, the Windows ecosystem doesn’t have the application portability challenges that exist in Linux.

This may have been short-sighted on my part. I don’t believe Windows containers will take off anytime soon in the enterprise. The value proposition just isn’t there today. However, in the long run Windows containers may be the default mechanism for deploying applications. Not that application developers will choose or even know that they are deploying applications upon containers. Containers will become the default environment because platform as a service (PaaS) will be the default environment for running applications.

Containers and PaaS go hand & hand 

PaaS provides a new level of abstraction for building applications. The infrastructure for PaaS environments whether in Public of Private clouds will be lean and efficient. This will be facilitated by abstracted subsystems from networks and storage to compute. This is because abstraction is a fundamental principle of a maturing discipline. Containers are just another level of abstraction. Instead of abstracting the underlying hardware, containers abstract the underlying OS. This eliminates another level of complexity and provides application developers more flexibility for developing applications that don’t rely on a specific OS underlay. Containers help provide a platform for the infrastructure.

Developers don’t care about containers

While the containers provide some independence for application developers. Application developers don’t care about containers. Containers just create an environment that should have been available to application developers from the start. It’s a waste of cycles for developers to identify all of the OS components that should be available from infrastructure to infrastructure. The intelligence of this should be in the infrastructure.

Conclusion

This is in line with my philosophy around the relationship with the infrastructure and application development. The details of the infrastructure should be hidden from the application developer. The API’s to the platform will ultimately dictate where the code for an application is run. It could end up running on a VM, a container or service running on either. Windows containers are part of the future of PaaS but will just be plumbing that’s hidden from the application developer.

Published by Keith Townsend

Now I'm @CTOAdvisor

3 thoughts on “The future of Containers

  1. (sorry for the long comment 🙂 )

    Yes, yes, yes, you got it. Almost ?

    “Windows”

    Docker is trying to create a generic application delivery system that will run your code on Linux, BSD, Solaris, whatever. Maybe even Windows.

    I really, don’t know if Microsoft will want to create a platform to run generic containers which makes the OS irrelevant.

    Their developer stories are always about trying to be the best. But their business practices seem to be about vendor lock-in.

    Will they have a choice ?

    They’ve said they have a partnership with Docker, currently they use that to deploy Docker on Linux VMs in Azure. So that is kind of like Azure supporting Node.js

    It is already kind of weird seeing RedHat going all in trying to create things that makes their OS more and more irrelevant. On Linux the flavor of Linux was getting more and more irrelevant anyway because of automation. But containers make the library versions also irrelevant.

    Obviously that can only mean one thing in the long run. These vendors will have to move further and further up and down the stack. Building platforms for the infrastructure builders and creating tools for developers.

    At some point they might get detached. Where the developer tools of an OS vendor run just as well on any other OS then on their own. It used to be about what Ballmer said: developers, developers, developers. Getting the developers to lock-in themselves and also their application users to your platform. That platform used to be the OS. Or at least part of it.

    On the client side we have the web. That also makes the OS irrelevant. Can we learn something from that ?

    Microsoft first tried to corrupt that idea with, what some people call, embrace and extend. Examples from Microsoft are ActiveX and later maybe Silverlight. Now they are trying to embrace it again. So far the latest IE tries to be mostly about standards without the extend. Basically just catch up.

    They are doing Office 365. Still kind of weird seeing them do that.

    But they clearly haven’t stopped doing all the other activities they’ve always been doing.

    So the same applies to containers ? Probably, for as long as they can fund it, they will keep doing both I guess.

    One such form of platform building is the PaaS concept.

    Linux-based PaaS providers where already using Linux containers ages ago. I’m already seeing existing PaaS-software developers adopt containers and people building new PaaS specifically for containers.

    I’m currently thinking with a bit more automation I can see see people deploying their own PaaS on IaaS (be it something based on Docker or something like CloudFoundry), much better than depending on the choices the infrastructure provider makes for you. So you don’t depends on them.

    This confirmed my ideas:

    An other question is: does this also mean the death of DevOps ? Or is it just going to be: OpsDev ? Ops adopting dev-methods to deploy a PaaS and devs just deploying containers to a PaaS.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: