One of the people I met with was John Gossman, a Partner software engineer at Microsoft. Gossman has the task of advocating for open source within Microsoft and advocating Microsoft's relevance to open source within opensource communities. This is a guy who has spent much of his career orbiting this world, so his perspective was an interesting one to hear.
As Gossman put it when I questioned him about Docker, everyone has been using containers forever. The difference between then and now, however, is that previously people saw containers as an advanced feature. Solomon Hykes, the founder of Docker, put it together in an easily consumed package. Microsoft is, as I mentioned before, interested in containers in two ways. It wants people who are using Docker to use it on Azure. At the same time, however, it also wants to bring that same usability to Windows. Gossman explained that the current leadership at Microsoft has a developer history, and hence the Docker promise of easily achieved developer enablement is attractive to them.
So with all that context, it is good to see Microsoft ramp up the delivery of real code that supports containers. The company is today releasing a third technical preview of Windows Server 2016 and System Center 2016 and, most importantly for those watching the container space, it is the first time that Redmond is releasing a preview of Windows Server Containers. Windows Server Containers create an agile Windows Server environment, enabling developers to mimic the agile, DevOps-fueled approaches that they've enjoyed with Linux for a while. With the release, Windows developers will be able to utilize containers across .Net, ASP.Net, PowerShell, Python, Ruby on Rails and Java.
Considering the historically modest pace of Microsoft's development, this is a pretty quick delivery upon the company's promise to partner with Docker in order to offer container benefits across both the Linux and the Windows Server world. Windows Server Containers are now part of the core Docker open-source project and can be deployed using either PowerShell or the Docker client.
Alongside WIndows Server Containers, Microsoft is also supporting broader container plays — containers are supported as first-class citizens on Azure, and Microsoft is contributing to the development of Docker Engine for Windows Server. This extension to the engine will allow the Docker client to manage multicontainer applications using both Linux and Windows containers, regardless of the hosting environment or cloud provider.
All of this is important when we consider the vast breadth of the existing Microsoft franchise within enterprise development. Many people propose that containers herald the future of enterprise IT, but for existing enterprises with sunk costs and legacy applications, this promise of adopting containers along consistent approaches and platforms as their existing applications (which are, after all, often based around Microsoft technologies) is hugely compelling.
The Microsoft haters will look scornfully at this as an old, evil, proprietary empire trying to retain ownership over its kingdom, but more pragmatic souls would see it for what it is: a company in transition to being a more open and honest (and, yes, still commercially focused) player.