Developers outside of Microsoft will be able to experiment for the first time with new classes of applications that run partly on Windows, partly on Linux.
This is a result of Microsoft's public release today of its third preview of Windows Server 2016.
It’s a new phase in the relationship between Microsoft and Docker Inc., the company responsible for the rapid popularization of this new concept of workload virtualization. In data centers that utilize containerization, workloads are divided into services and these services become modular.
Imagine if a person, getting tired of lifting the same weight over his head, was capable of growing extra pairs of arms, on-demand. That’s the basic premise behind how microservices applications work in servers.
Up to now, all these services in an application had to be built on the same server operating system. And since most enterprise servers today are Linux-based, this locked out many languages supported by Microsoft’s Visual Studio, including Visual Basic and F#.
Enterprises are coming closer to the day where their Windows assets and their Linux assets don’t have to stay secluded in their own basements.
No Operating System Is an Island
“At Microsoft, we’ve been looking to help both developers and IT professionals respond to the needs of business in a more agile way,” said Mike Schutz, Microsoft’s general manager for cloud marketing, in an interview.
“DevOps plays a huge part of this, [as does] modern applications development. But also, how do we bridge the gap between IT and development in an organization, by reducing friction between the two? And try to bring together the Windows ecosystem of developers and IT pros, with the Linux ecosystem?”
It may not be readily apparent (especially to sensible people) just what Microsoft is releasing here, in this case along with Docker. It is not, as some may tout it to be, any kind of merger between Windows and Linux.
It’s hard to imagine anyone actually wanting to build an application that is part-Linux, part-Windows. Or, to go one step further, to intentionally engineer a server-based program that straddles two very, very different flavors of operating system.
However, modern data centers are comprised of many classes of server machines. Linux may rule certain aspects of the data center, but where there’s SharePoint, Exchange or Dynamics, there’s Windows.
We’ve already seen enterprise applications based around Hadoop, the big data system — which is an operating system unto itself. There are applications that can be written for Windows that utilize databases that run in the cloud using MongoDB on Linux-based platforms; and there are applications written on Linux platforms that utilize cloud-based Exchange services that run on Windows Server platforms.
But these types of applications only need to make handoffs between services on occasion. They’re using REST APIs, which are passive ways to request data, almost like leaving request messages on a bulletin board and checking in every so often to see if anyone’s responded.
At the microservices level, exchanges may be more frequent and more direct. Suppose someone constructs a sophisticated surface modeling library on a Linux-based server, that communicates with a front-end rendering system based on Windows Server. This is a much tighter relationship.
Why would you want to enable such a relationship? Because in the end, an organization’s software development skills should not be divided among operating systems as if they were vastly separated continents.
Organizations should be able to hire developers for what they can produce, rather than to fit the precise technical specifications for their existing systems. And the fact that organizations have some Windows assets and some Linux assets should not be the dividing factor for their development teams.
Today's Windows Server 2016 preview will include the first public test releases of so-called “Windows containers” — portable, virtual software components. They will require a Windows Server-based host, meaning they are not portable enough to be able to run on a Linux platform unassisted.
But as Microsoft’s Schutz confirmed, a Windows-based virtual machine running on a Linux host does qualify as a host for Windows containers. So if you’re capable of running Windows Server 2016 on a Linux box, using a hypervisor such as ESX, KVM or Microsoft’s Hyper-V, then the Docker components — which will be shipped as standard equipment with Windows Server 2016 — will run Windows containers.
These Windows containers will also include Nano Server, Microsoft’s new, miniaturized version of Windows Server. This makes it possible for new Windows software to be compiled by Visual Studio, published to Windows containers, and run from there.
A second type of Windows container, called “Hyper-V containers,” will be necessary to run Windows software that was originally designed to be run in conventional Windows deployments. In other words, not all Windows software will be compatible with the type of Windows container that premieres today. Schutz said that the first public test editions of Hyper-V containers will premiere with a later Windows Server 2016 preview.