Server-based applications built for Linux and packaged in Docker containers will be able to run on a Windows platform.
This a result of Docker Inc.’s release today of its Docker 1.6 package, which features a Windows-based Docker client console contributed to the project by Microsoft itself.
The importance of this development may not be self-evident, so I’ll explain: For several years, the Linux operating system has been able to run on a Windows platform by way of virtual machines (VMs).
But beyond the ability for a developer who happened to be using Windows to test her work in progress in a Linux environment, there was little other value to this.
Why This Matters
In recent months (it’s too early to say “years”), Linux server-side applications have adopted the new deployment mechanism we’ve been discussing here, called Docker containers, to expedite the way they’re deployed, especially on cloud platforms.
They’re a kind of VM, but not so they can be run and tested on a program that thinks it’s a Linux box. They’re packaged this way to maximize their portability, so that they can run anywhere.
Up until last November, “anywhere” meant on Linux or, if you can believe it, on a Mac. Windows was last in line. But then the enterprise users came calling.
“Certainly for early adopters and technology startups, Linux is the dominant form factor on the back end for servers,” explained Scott Johnston, Docker Inc.’s senior vice president, in an interview with CMSWire. “Certainly as we’ve been pulled into enterprise environments, Linux is still important, but boy, it’s always been one-to-one Linux/Windows, if not more Windows, when you get down into the SMB market.”
Small-to-medium businesses made their investments in Windows Server-based systems in order to host key platforms like Exchange and SharePoint. Now it becomes possible for them to consider such previously inconceivable possibilities as spinning up Hadoop clusters for big data, without having to budget for more hardware.
What It Does
The key architectural difference between Docker and any other VM platform lies in the role played by the virtualized operating system — the “guest.” With a conventional virtualization client such as Oracle’s VirtualBox or Citrix’ XenDesktop, the guest OS is the same version designed to run on a complete, physical machine.
With Docker, the OS can be a minimalized version designed exclusively for Docker, as has been the case with CoreOS, a minimal Linux. This way, rather than hosting huge, monolithic applications within single operating systems, a system can host smaller services, each with its own tiny OS, sharing the same virtual platform.
When traffic gets heavier, the Docker Engine can be made to spin up more instances of the services with their tiny OSes. If the services are constructed properly, they’ll be able to load-balance themselves.
The basic component from which Docker Engines are launched and maintained is the Docker Client. This is the component for which Microsoft contributed a Windows version last November, and which Docker is now including with its latest version 1.6, officially released Thursday.
“The Windows client was actually done by Microsoft, which joined our open source community as a first-class contributor,” said Docker’s Johnston. “Their engineers were staffed on this project full-time.
“The fact that Microsoft would be signed up as a full-time maintainer to create a Windows client for an open source project, certainly heralds the change in how they view the world,” he continued. “Actually, it’s a new Microsoft.”
Now perhaps this makes more sense: If your servers are based on Windows, they can now run exactly the same Linux containers being run by your competitors’ servers that are based on Linux.
What Happens Next
Microsoft’s deep roots in the enterprise have not been pulled up quite yet. Although it operates Azure, one of the world’s principal cloud platforms (not nearly Amazon-size, but still big), it’s more aware than most of businesses’ resistance to deploying part or all of their services in a public cloud.
Azure’s support of Docker (another benefit of last November’s agreement) did bring Microsoft into the Docker realm, but didn’t necessarily carry Windows on its coattails. Now at least, admins will have a rudimentary tool — specifically, a command line that uses Microsoft’s PowerShell language — to deploy containers and spin up Docker Engines.
While Windows users are no longer accustomed to command-line tools (CLI), in recent years, Windows Server admins have become perfectly comfortable with PowerShell, arguably the finest language-based administrator console ever developed. It doesn’t seem all that primitive to them.
Still, the next step in Windows Server’s evolution as a viable Docker platform is still forthcoming. Last month, Docker Inc. purchased a developer team called Kitematic, which produces a graphical container management tool for Mac OS.
There will be a Windows version of Kitematic at some unspecified time, though it’s very possible we could see glimpses of it at next month’s Microsoft Ignite conference in Chicago.