Docker burst onto the scene as a way to manage Linux containers, but over the past year the company behind the open-source project has also been working with Microsoft to incorporate those capabilities onto Windows. The two sides are partnering on full integration of Docker into the next version of Windows Server, with Windows Server Containers and Hyper-V Containers, expected out some time in 2016.
Docker co-founder and CTO Solomon Hykes and Microsoft Azure CTO Mark Russinovich talked to SearchWindowsServer to provide an update on the partnership. In Part 1 of this report, the pair also discuss the challenges of moving Docker to Windows and the crowded field of offerings for container orchestration.
What can you tell us about how the partnership between Microsoft and Docker is coming along?
Hykes: What we started out doing with Docker was really focused on helping developers build new kinds of applications. We call them distributed applications, and they span many machines, run anywhere in the cloud -- online 24/7. There's this new paradigm and we found a real deficit of tools available for developers to build that. We started out leveraging Linux containers and focusing on one specific aspect of these applications, and over time we got more demand for expanding the scope of those tools so that a developer looking at the platform they're using can have some sort of common tooling across all of it. Pretty quickly when you try to meet that demand you run into the obvious situation that you need to support Windows to really allow developers to cover the entirety of their platforms.
It's very, very common for enterprises in particular to have some aspect of their applications running on Linux servers and some aspects running in Windows. It made a lot of sense for us to try and make Docker's tooling and the developer experience of Docker available on both platforms, and that was really the starting point of the partnership with Microsoft.
There is a full-time team at Microsoft collaborating with the open-source community basically porting all of Docker's tooling to Windows on top of the new container primitives available in the future Windows Server. Once that new version is out, we'll have reached that point where using native Docker tooling you can actually build distributed applications across both Linux and Windows. That's something we're really excited about.
Should customers expect some challenges moving between the two environments?
Hykes: I do expect a few bumps in the road, from a technical point of view as we roll this out. There's going to be a schedule of experimental releases and beta, etc., but the key is that the bar is not nearly as high as with traditional virtualization.
Solomon HykesDocker co-founder and CTO
We don't actually need to take any particular component and make it magically work in both Windows and Linux. The key here with distributed applications is that some of the components will only work in Windows and some of the components will only work on Linux and that's OK because the application is the sum of all those components. Instead of focusing our efforts on trying to make Windows look like Linux and Linux look like Windows -- which would be impossibly hard -- the approach we're taking is to make the strong suits of each platform visible to the developers and let them choose, but making it much easier because they have common tools.
Russinovich: What we've done in Windows Server is implement the same fundamental primitives comparable to what Linux Docker containers are built on, and then work with Docker to make sure all of the Docker APIs work against the primitives using plug-ins we write with them as well as the open-source community. You can take a Docker client, for example, and point it at a Windows host and deploy Docker containers using the same APIs, same commands you would use as if you pointed it a Linux host and deployed a Linux container.
Are there any concerns about Docker containers eating into Windows Server or Hyper-V sales?
Russinovich: Containers are really powerful tooling, as is creating microservice-based applications. It's something we embrace, even internally at Microsoft. Docker is a fantastic tool for making deployment and management of those applications much more efficient, so I don't think there’s a concern. It's more like let's get this technology out there so developers can take advantage of it on Windows as quickly as we can.
Unlike some of its competitors, Microsoft has opted against developing its own tools for container orchestration. Can we expect anything from Azure in terms of orchestration or will it remain more agnostic about incorporating whichever tool the developer wants to use?
Russinovich: At this point, we're embracing many of the orchestration engines, [Google] Kubernetes being one of them, and there are several others like Mesos and Swarm, for deployment on top of Azure. We want any customers that are using those orchestration engines to be able to run great on Azure, and we partnered with Google to make sure Kubernetes runs on Azure. We also announced our own microservice application platform as a service (PAAS) framework called Service Fabric back in the spring and we expect over time that will incorporate container technology at well, but that's a higher level application platform -- higher than the low-level orchestration that you see with Mesos and Kubernetes.
Hykes: There are a few building blocks out there, but our approach to this at Docker is not to go out there and try and compete with that in the same way that we're not trying to go out there and re-invent how Linux does containers.
With so many other vendors jumping on container orchestration, is there a concern that Docker will be squeezed out in that space?
Hykes: Fragmentation is always a risk. There's a reason tools like Docker exist in the first place. These tools exist to try to avoid fragmentation because fragmentation is bad for developers; it makes their lives miserable, and I would say we're always out there preaching the gospel of unified interfaces with everyone. Obviously we can't tell vendors what to do. We just think we're providing a compelling story for avoiding fragmentation, and I would say Microsoft has been extremely proactive and understanding that and embracing solutions to avoid fragmentation.
There are three layers to orchestration: clustering, having lots of machines; composition, lots of containers working together; and then there's networking that interconnects it all. If you get these three building blocks you have an orchestration solution, and so the Docker stack includes a tool for each of those.
Read part two of this interview.
Trevor Jones is a news writer for TechTarget's Data Center and Virtualization Media Group. Contact him at firstname.lastname@example.org.
Getting a handle on Windows Containers
Cloud vendors all want a piece of Docker
Enterprise guide to Docker technology