Docker Just Changed Windows Server as we Know It
Windows Server is rarely the intense focus of a Microsoft developer conference; its leading show for admins this year, renamed Ignite, actually begins next week, and that’s when the company plans to show off the pounds it has recently lost on its backend, if you will.
But when Mark Russinovich, Microsoft’s CTO for Azure, took the stage at Build 2015 in San Francisco Wednesday morning to demonstrate how containerized microservices applications work in Windows Server, for many in the crowd, it must’ve felt like a lecture from an explorer on a foreign continent a hundred years ago.
Russinovich is one of Microsoft’s handful of “rock star” presenters, known not only for his approachability and dapper demeanor, but also his ability to fish executives out of a presentation going down in flames. This year, he’s an executive himself.
As is his wont, he dove right in to a demonstration of using Docker Build (on a PowerShell command line) to package and deploy an ASP.NET web site as a Docker container. A dev test box ran Windows Server with Docker container support, which during the demo was also running a Minecraft server and a Node.js application. He took only a few seconds to package the web site into a container image, then he ran the package with the docker run command.
Once the package was running, he was able to load and run the web site from an IP address in Internet Explorer. And then he paused, took the temperature of the room, and may have recognized that Windows developers may have been completely confused by what they were seeing. Imagine a veteran Windows professional, standing up in front of a crowd of thousands, talking about some kind of stack something-or-rather that derived from Linux.
So Russinovich asked for a show of hands of folks in the room who might have heard of something called Linux. (Don’t worry, he’s done this before.)
It was a necessary question, before he could show off running an SSH shell to run a Linux VM. He used it as a kind of hat for a rabbit trick, starting with using the docker ps command to reveal the hat was empty.
He then used a new build of Visual Studio, running in Windows, to publish the container to the Linux host. He then proceeded to debug the running Linux app, including setting a remote breakpoint, from Visual Studio.
Without saying so explicitly, Mark Russinovich was obsoleting much of Windows Server before developers’ eyes.
Part of the demo, it turns out, was made possible by a new redistributable form of the .NET Framework runtime, called .NET Core. Two weeks after Microsoft announced it is making its own counterpart to CoreOS for containers — a server OS called Nano Server — this week it is introducing its freely distributable (though perhaps not open source) runtime platform for containers.
Stranger in a Strange Land
The Azure CTO was preceded to the stage by a man that attendees may have perceived a visitor from a far-off land: Ben Golub, the CEO of Docker Inc.
“For those of you who are not aware, Docker has just celebrated its second birthday,” trumpeted Golub upon ascending the stage. “So frankly, we’re thinking of Docker kind of like a human two-year-old, who occasionally stumbles, occasionally spits up, and keeps those of us who are closest to it up at night.”
Golub told the story of Solomon Hykes’ inspiration for founding his company — a story he had probably told at a Docker conference last year. Last October, he said, he was proud of being able to demonstrate to Microsoft the ability to run any Linux app on any Linux server.
“Quite frankly, we thought we’d leave Redmond with an agreement to make Docker for Linux run well on Hyper-V, or run well in Azure,” he continued. “The first big surprise was that we were not only going to work on Docker for Linux; we were going to work on Docker for Windows. We were going to enable the four million Docker Linux developers to join all the millions of Windows developers, and make it possible using standard Docker, using open source, to take any Windows application, Docker-ize it, and run it on any server.”
Microsoft has gone on to integrate Docker Hub into its development platforms, Golub continued, and is actively contributing to Hub as an open source developer. And he praised Microsoft for embracing Docker’s open orchestration initiatives, which some in the room are being introduced to for the first time.
It’s not like Windows developers don’t want to be introduced to Docker, or are somehow afraid of it. The keynote session was overflowing, and although Microsoft executives might have liked to pretend the excitement was all about whatever new window dressing may have been added to the latest build of Windows 10, Mark Russinovich and the other guy in the whale shirt are whom they came to see.
Microsoft keynotes are often staged for the benefit of the press as well, so technical details often come later in the day. For the Wednesday docket, the company had overflow demonstration sessions scheduled until 9:00 pm Pacific Time, which were already being pushed back several hours. Among the late sessions: an extended Docker demo session with Russinovich, and a Q&A session with Russinovich.
Jeffrey Snover, officially Microsoft’s Windows Server lead architect, known and beloved by the Windows crowd as the creator of PowerShell, is also on hand. While huge chunks of Windows Server are effectively melting away in the heat of progress, Snover is certainly not mourning — in fact, during an on-camera Q&A Wednesday, he acted more like the guy with the blowtorch.
Snover let slip that a new preview build of Windows Server, using the system kernel for Windows 10, should be made available to testers by the end of next week. Next week is Microsoft’s Ignite conference at Chicago’s historic McCormick Place, where the mix will be fewer software developers and more sysadmins, infosec professionals, DevOps professionals, and their managers.
Docker is already scheduled front-and-center. The assimilation is not just beginning. It’s already happened.