Windows Server Containers are a partnership between Microsoft and Docker who have become the company most people are turning to for their container technology. The success of Docker has also led to IBM adopting it on their recently announced LinuxONE mainframes as well as their POWER Systems.
Windows Server Containers part of the Docker open source project
The announcement of Windows Server Containers comes in a blog from the Windows Server and Cloud Platform Team announcing the availability of the third Technical Preview of Windows Server 2016 and System Center 2016. In the blog Microsoft announces that as part of its agreement with Docker, Windows Server Containers are now part of the Docker open source project.
This means that customers are able to deploy and manage Windows Server Containers either through PowerShell or the Docker client. This is good news for service providers and large enterprises who are running mixed operating system environments.
By being able to offer Microsoft applications inside pre-prepared containers, customers will be able to install them via the self-service interface used by service providers. By making it that easy to deploy Microsoft products, there is a realistic possibility of Microsoft beginning to regain ground lost to Linux in the cloud and web hosting markets.
In the Microsoft blog it highlights four benefits it is delivering with Windows Server Containers:
- Ensuring a first-rate experience for containers on Azure. We recently released Docker VM Extensions for Linux on Azure, Docker CLI support on Windows, and Visual Studio Tools for Docker to empower you to build and run modern applications.
- Contributing to the open source development of the Docker Engine for Windows Server with a goal to enable the Docker client to manage multi-container applications using both Linux and Windows containers, regardless of the hosting environment or cloud provider.
- Joining the Open Container Initiative to deliver an open, universal container image format and runtime under the Linux Foundation.
- Expanding the ecosystem, through work with Canonical around the LXD REST API, a cross-platform container management layer that will bring new container innovation to Windows and Ubuntu developers.
In a blog from Arnaud Porterie, Docker Senior Engineering Manager he takes a closer look at the relationship between Windows Server Containers and the Docker client. He makes a number of key points around what this release means:
- Docker Engine for Windows Server port is not a fork, nor a different project: it’s the same open source code base being built for Linux and Windows
- The Technical Preview of Docker for Windows Server isn’t feature complete yet (and taking into account that the feature sets will never be exactly identical given the differences of the underlying platforms), most of the Docker commands you already know will work as expected on Windows Server. For example, you can write a Dockerfile and docker build as you would on Linux.
- The Docker daemon for Windows Server doesn’t run Linux images! No virtualization is involved. The Windows Server Containers reuse the host kernel and create a sandboxed environment for the process, exactly like it does on Linux.
Windows Server Containers available on Azure
Microsoft is keen to get developers using Windows Server Containers immediately. It has announced that it is delivering updates to Visual Studio and Visual Studio Online that will make it possible for developers to create a Windows Server Container host within Azure.
This is a smart move by Microsoft. Developers are already widely using Docker containers on different versions of Linux and across cloud environments built on OpenStack. By getting developers started on using Window Server Containers as a deployment target it means that there will be applications ready to go when Windows Server 2016 ships.
It is not just about developers. This move allows operations teams to start looking at the implications for building their own libraries of container based applications. While enterprise vendors will still take their time to move to the new OS when it ships next year, service providers will look to have a complete application library ready to go on launch day.
This first release will require developers to build their own scripts in order to create containers. At a later date Microsoft will introduce Windows Server Containers into the continuous integration and release capabilities of Visual Studio Online.
New software-defined datacenter features
The blog finishes by listing four new features that this preview of Windows Server 2016 delivers for Azure. It lists them as:
- Enhanced Nano Server functionality: we have added a new Emergency Management Console so you can view and fix your networking configuration directly from the Nano Server console, and a new PowerShell script that allows you to create a Nano Azure VM.
- Simplified software-defined networking: we are delivering a scalable network controller, for centralized network configuration as well as a software load balancer for high availability and performance.
- Extended security: Shielded VMs, which enable isolation between the underlying host and virtual machines, help protect resources in shared environments. Now you can test creation of a shielded VM from a signed template, along with other aspects of the shielded VM functionality.
- Management: System Center feature enhancements make it easier for you to manage virtualized environments including support for rolling upgrades, shielded VM’s and guarded host support, and automated maintenance windows.
For customers who want to take a closer look at the Windows Server 2016 Technical Preview 3 it can be downloaded from the Technet Evaluation Site.
Conclusion
When virtualisation appeared it was a major watershed for commodity computing. Since then, we’ve begun to realise just how much of the resources are consumed by having an operating instance inside each VM. This has not only begun to be a drag on virtualisation but also on cloud.
Containers remove this overhead and make it possible to deploy an application in a pre-prepared state to get consistency and deliver applications at scale, one of the key tenets of cloud. Now we have a single container solution running across Windows and Linux from commodity servers to the mainframe and all manageable from a single console, we are moving into a whole new phase of cloud.
It is also worth noting that the adoption of Docker and the willingness to ensure that the code stays as part of the open source project is a maturing of Microsoft that couldn’t have been imagined just a few years ago.