Containing the cloud: Getting started with Windows containers

The majority of IT infrastructure relies on virtualization, where virtual machines host monolithic applications. However, there is a more modular method of developing cloud applications — containers. Containers have always been a mainstay in Linux systems, but only recently were they introduced to Windows Server. Their increasingly popularity stems primarily from their small footprint, portability, and quick speed.

Instead of monolithic, heavyweight applications and VMs, containers allow developers to create apps using groups of lightweight microservices. This enables your business to unleash the full potential of Windows Server 2016. But you must first familiarize yourself with the container operations. Here’s what you need to know.

 

What are Windows Server containers?

A means for the virtualization of operating systems, containers help you run applications in resource-isolated systems. Packaging application configurations, codes, and dependencies is easier with containers as they are broken down into simple building blocks for operational efficiency, environmental consistency, version control, and developer productivity. Containers provide you granular control over different resources, increasing the efficiency of your infrastructure. Every container holds a minimal number of resources, and any OS-specific resource is gathered from the underlying operating system. In Windows Servers, the containers possess their own registry, file system, and networking. When the container has to interact with these systems, it makes use of the hosting OS.

Windows container architecture

Windows container types

The containers found in Windows Server 2016 are grouped into two categories — Hyper-V and Windows Server.

The Windows Server variety behaves similarly to the containers present in Linux systems. This is because their format is interchangeable and compatible for both Hyper-V container and Windows Server container hosts. They are very lightweight and share the same underlying network connection, base file system, and OS kernel.

Difference between Hyper-V containers and Windows Server containers
thomasmaurer.ch

Hyper-V containers, on the other hand, are basically Windows Server containers that run within a Hyper-V partition. The level of security is very high, and they run in a lightweight Hyper-V virtual machine, which separates it from the host entirely. Moreover, the Hyper-V containers do not have any share of the underlying host’s operating system. Instead, they use the base OS of the virtual machine. This creates an environment that is not only more secure, but requires more overhead as well.

Microsoft is introducing a new mode of installation for the Windows Server 2016 containers. This option, known as Nano Server, is meant to be a cloud platform capable of running Hyper-V and Windows Server containers.

Initial Steps

The first thing you need to do to get started with Windows Server 2016 containers is choose the right method. There are several options available. You can select a cloud service like the Azure Container Service. This removes the need to bring up any physical hardware or equip a new VM to host a container. Hosting containers is also possible through the use of PowerShell that configures any machine running Windows Server 2016.

Windows container deployment

Microservices and Windows Server containers

The Windows Server 2016 containers have microservice architectures, which are nothing more than a means of deploying apps made of small-sized, independently deployable modular services. Each of these service clusters runs a unique process, and they interact with other services via a standard, mutually agreeable protocol. Such a collection of services makes up the latest generation of apps meant for businesses.

The next-gen microservice apps are often termed as Mode 2, since various developers, especially open-source ones, firmly believe that containerized microservices will be the trend in the future. They are seen as the basis of how future generations of applications are going to be built. Being independent in nature, microservices are often perfect for DevOps development, where applications are updated quickly and continuously. Container updates do not affect the entirety of the application.

Windows Server containers are compatible with microservices since they are stateless and small, unlike virtual machines. It is also easy to update and deploy them. Thus, when a container fails along with the microservice being run, the failed container can easily be replaced by a new container.

Monolithic versus Microservices approach

Linux containers and Windows container host

It is not technically possible to run Linux containers on any Windows Server container. The thing is, containers depend on the OS kernel feature provided by the host, and owing to this kind of dependency, it is not possible to run them on varying host operating systems. Thus, right now, there are no measures that can enable one to run Linux containers on Windows Server 2016 and vice-versa.

Containers and Windows apps

Containers in the Windows Server 2016 system are not yet equipped to run all kinds of applications. This sort of support is still in the early stages, and containers are not capable of supporting all the different apps. There are a limited number of applications that Microsoft has made compatible for running with Windows Server Containers.

Docker and Windows Server containers

Docker container management for Windows containers

There is a misconception among users that Docker is required for using Windows Server containers. This is untrue, since Docker is basically a management tool. Yes, it is supported by Windows Server containers, but it is not a must-have. Users can manage Windows Server 2016 containers with the help of PowerShell as well. Microsoft worked closely with Docker to port the tool to Windows. The benefit of using Docker is that it offers the same container deployment and management tool for both Linux and Windows Server 2016, thereby creating a sense of uniformity.

Containers are a fast-emerging technology that has made waves in the world of Windows Server. Containers offer numerous benefits to technology-oriented businesses, but there is still room for improvement. For example, moving enterprise apps takes a lot of time and resources. So, instead of converting whole applications in one go, it is better if the business converts separate monolithic app sections to microservices over time.

The introduction of containers to Windows Server 2016 will probably lead to a bimodal IT growth path in the future. In this kind of an environment, IT will work with legacy applications to come up with newer container technologies.

Photo credit: Pexels

Leave a Comment

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top