Docker and Microsoft are deep into their collaboration to ensure that the next Windows Server operating system will run Docker containers, much as Linux does, according to Docker CTO Soiomon Hykes and Microsoft Azure CTO Mark Russinovich.
The two CTOs shook hands for the first time as they met in person Monday, Aug. 10, at Docker headquarters in San Francisco. They represented rival Linux and Windows developer camps. Now they represent a possible collaboration between those camps as well.
Both CTOs said the engineering effort was accomplishing targeted goals and proceeding on schedule. Exactly what that schedule is remains to be seen. Windows developers won't get access to a Docker system they can use with Windows Server, Visual Studio, and .Net until the next version of Windows Server is released at a date still to be announced. It's coming sometime in 2016, but neither Russinovich nor other Microsoft representatives can say when.
"The way [Windows] developers interact with Docker Compose and Docker Swarm and the Docker APIs will be exactly the same," predicted Russinovich.
[Want to learn more about how Docker will work with Windows Server? See Microsoft Brings Docker Containers To Azure, .Net Developers.]
Even with the availability of Docker tools to run on Windows Server, Linux applications won't be able to run, suddenly and magically, under Windows.
On the contrary, each type of application will need to stick to its respective operating system. But developers, regardless of which camp they reside in, will suddenly be learning and using the same set of tools to run their applications in a Docker container. The container itself specifies which operating system is needed to run the code inside -- Linux for Linux applications, for example. It also denotes which version of the Linux kernel is needed. Only the latest version of Windows Server will be able to accept and run Windows containers, simplifying the task (at least for a while) on that side.
"Individual developers lean toward a favorite tribe," acknowledged Hykes. But teams of developers, development organizations, and business units see a need to build apps that are hybrid," a mix of Linux, Windows, and .Net elements, he said.
Russinovich and Hykes had no breakthroughs or news flashes to announce as they met with press and analysts Monday.
With a shared Docker system between them, they can develop their respective application services -- say C Sharp on the Windows side and Node.js on the Linux side -- and then run them in Docker containers as part of a distributed application running on both Linux and Windows servers.
Russinovich said he demonstrated such a combination application at DockerCon in San Francisco in June.
At Docker's offices, he said the use of Docker with Visual Studio Online, which includes not only .Net languages but also the team collaboration workflow, debugging, and source-code control amount to a continuous code-delivery system. Continuous delivery of business application code is an oft-stated goal of modern development teams. Frequent changes are made to the code to keep it in step with business conditions, but the process is done in such a way to avoid disrupting production systems.
Russinovich said the addition of Docker containers helps complete the "continuous pipeline" that development teams and operations are trying to build for frequent updates to production code.
Among other things, added Hykes, joint use of Docker by Windows and Linux development teams means people will be using their system of choice, whether a Windows laptop, a Linux machine, or a Macintosh notebook, with fewer adverse consequences involved in working together. The Docker formatting engine recognizes the output from each and can build a container that will ensure that the output runs on the appropriate server.
The approach will make it more practical, the two CTOs said, to build applications as microservices and then bring those services together into a combined software system.