Product and service reviews are conducted independently by our editorial team, but we sometimes make money when you click on links. Learn more.

Windows Server 2016 Feature Highlight: Containers

Windows Server 2016 Feature Highlight: Containers

Microsoft is a whole new company, embracing open source technologies that improve efficiency, management and add value through new capabilities. One of the upcoming additions to Windows Server 2016 is container support.

A key theme for Microsoft since CEO Satya Nadella took the reins is opening up the company to areas that have traditionally been closed to the corporate strategy. Where things like "Linux" and "open source" have been diametrically opposed to the Microsoft brain trust for decades, more and more of the company's products and services are embracing open source principles and concepts.

One area that has recently exploded in the world of hosted applications is containers, particularly through implementations such as Docker. Many reasons exist for the rapid growth in popularity of container-based applications, including ease of deployment, consistency, scalability, and platform flexibility. Container applications have some similarities to virtual machines in that multiple container apps can be run on a single host without compromising security or control over resource allocation.

MORE: Windows Server 2016 Feature Highlight: Storage Replica

Containers in Windows Server

Microsoft's vision of container support is primarily focused on two of its core markets: developers and IT professionals. Developers working on application containers for Windows will gain benefits such as the ability to target Windows APIs and functionalities using container apps.

Application containers have the same wide range of use as traditional apps, but add some key functionalities that benefit both developers and IT pros. When an application container is installed, it creates a sandboxed file structure that will be presented to the application on execution. This file structure is unavailable to the operating system or other applications, or even other instances of the same application. This methodology allows you to have configuration flexibility when running multiple instances of the same application.

Containers also offer simple deployment and portability. Rather than installing and configuring an application on multiple servers, containers can be created to include any file system or configuration changes (much like a system image) easing repeated deployments. Removing or upgrading a container application is clean and fast, since all changes to the system are sandboxed and not placed within the real file structure of the operating system.

Technical Implementation

Much like virtual machines, which require a hypervisor to run on top of, application containers use what Microsoft is calling an operating system virtualization layer. This virtualization layer allows applications to make file system changes, modify registry values, and other system configuration tasks without impacting the operating system, and without having the overhead from running a guest operating system within a virtual machine.

Microsoft points out that there will be support for two types of containers in Windows Server 2016: Windows Containers and Hyper-V Containers. The primary difference between the two is additional functionality within Hyper-V Containers that make it suitable for use in multi-tenant hosting environments. In these sort of large deployments, the ability to fully segregate customer containers in order to provide the appropriate security and resource management is critical.

One aspect of the sandboxed nature of container apps is that stateful applications can require some additional complexity, as any database contained within an application will be unavailable to other instances of the app. Microsoft recommends working around this issue by using a database located outside of the application's sandbox. The company also recommends using network communication for communication between containers.

Container Management

One huge benefit for enterprises looking into container-based applications is the management story. Windows Server 2016 will support multiple container management vectors from IT pro staples such as Hyper-V Manager, Windows PowerShell, and even Desired State Configuration (DSC) to solutions more familiar to developers, such as Docker management tools.

The ability to manage containers using this wide range of tools should give corporations the ability to distribute different forms of management to the appropriate groups within their organization, whether it's IT pros managing production apps or developers needing to build and deploy their applications.

Container Ecosystem

Microsoft has committed to working with Docker to create and populate a repository of Windows-based container applications. Because container apps virtualize the file structure and other aspects of the operating system, in most cases container apps will be OS-specific.

In addition to the Docker ecosystem, organizations will be able to create their own image repositories using custom-built application containers. These repositories and the images they contain can be managed by developers or IT pros depending on the needs of the organization.

Unfortunately, container support isn't quite ready for primetime, and isn't available in the most recent release of the Windows Server Technical Preview (May 2015 release). Microsoft has promised that the next release of the Server 2016 technical preview will offer support for Windows Containers, so IT pros can start testing container support and developing their own use cases sometime this Summer. Support for Hyper-V containers will come at a later date, sometime before the end of the year.

Microsoft's efforts to improve efficiency, both of technologies and management requirements, continue to redefine the company's view of the data center. The willingness to embrace open technologies that add value for their customers is an example of the new, refreshing Microsoft.