Saturday, 23 September 2017

Microsoft Windows Server 2016 Containers

Windows Server 2016 is the new server operating system. It has got several new features and improvements over the previous server operating systems.
One of the important new features in Windows Server 2016 is containers. By using containers, you can provide an isolated environment for applications. You can deploy multiple containers on a single physical machine or virtual machine, and each container provides a complete operating environment for installed applications. The container space provides an isolated environment for an app to run without affecting the rest of the operating system (OS) and without the OS affecting the app. By using the containers you can isolate the app from the OS.

Two types of containers are there in Windows Server 2016:

1. Windows Server Container: These containers share the OS kernel with the host on which the container has been deployed as well as with the other containers  on that host. It provides the isolation of app using process and namespace isolation.

2. Hyper-V Container: The kernel of the host OS is not shared with the Hyper-V containers. These containers run in a highly optimised virtual machine.

Deployment Scenarios:

Windows Server Container

Windows Server Containers are used to run apps that require the same trust boundary. As the containers don't have a GUI so it is ideal for the stateless web apps, that don't have GUI.
In a test environment where you require to deploy an app multiple times but you don't want the underlying infrastructure to be changed in that case also you can utilise Windows Server Container. For example you can create an image which hosts websites and IIS installed in it. This image can be used by developers to deploy app multiple times without changing the underlying infra.

Hyper-V Container
Hyper-V Containers are used to run apps that don't require the same trust boundaries on the same host.For example the public clouds such as Azure that provide multi-tenancy allows customers to supply their own code to extend the functionality of your service offering without any interference in the Azure service or gaining access to other customers information.