Due in large part to the emergence of container technology, cloud-based applications are becoming one of the biggest...
disruptions since the days of Web 2.0. Containers have been around for awhile in the Linux world, but they are new to Windows Server.
Now, Windows Server 2016 containers will be an option for the first time. Most of today's IT infrastructure is built on virtualization where virtual machines (VMs) typically host monolithic style applications. For instance, one or more VMs may comprise a web front end, others may run a business logic tier, while others might provide back-end database services.
Containers and microservices offer a different and more modular way of building cloud applications. Rather than using heavyweight, monolithic VMs and applications, containers enable developers to build applications using a collection of lightweight microservices.
The microservice architecture is essentially a method of developing applications that consist of a pool of independently deployable, small, modular services. Each service runs a unique process and communicates with other services using a standard, agreed upon protocol.
These collections of services comprise the newest generation of business applications. This next generation of microservice applications is sometimes referred to as Mode 2. Many developers -- especially open source developers -- think that containerized microservices are the wave of the future and will be the basis of how the next generation of applications will be built.
The independent nature of microservices lends itself to the DevOps style of development where an application can be rapidly and continuously updated because the containers can be updated without affecting the rest of the application. Containers lend themselves to microservices because, unlike VMs, they are small and stateless, as well as easily deployed and updated. If a container and the microservice it's running fails, you can simply spin up a new container which will take over for the failed container.
Getting ready for Windows Server 2016 containers
Windows Server 2016 brings the promise of containers and microservice applications to Windows Server implementations both on-premises and in the cloud. Like Linux containers, Windows Server 2016 containers have a container runtime that's installed on top of the host operating system, and every containerized application shares the same base underlying OS. Also, each container is isolated from the other containers.
Unlike VMs, where each VM has its own individual kernel OS, containers share the same OS kernel, network connections and base file system as the underlying host OS. You don't need a whole new and separate set of emulated hardware, memory, storage and OS like you would for a VM.
Because containers don't have to emulate physical hardware, they are far smaller and more resource-efficient than VMs. You'll find Windows Server and containers in two different options:
- Windows Server 2016 containers -- Running directly on top of the Windows Server OS, Windows Server containers are very lightweight. All Windows Server containers share the same underlying OS kernel, network connection and base file system with the container host.
- Hyper-V containers -- Hyper-V containers are more secure than Windows Server containers, as each Hyper-V container runs in a highly optimized virtual machine which isolates it from the host. Hyper-V containers do not share the OS kernel of the underlying host. Instead, Hyper-V containers use the VM's base OS. This provides a more secure environment, but it also requires more overhead.
The format for Windows Server and containers is compatible and interchangeable for both Windows Server container hosts and Hyper-V container hosts. Microsoft will be including a new installation option for Windows Server 2016 containers called Nano Server, which is expressly intended as a cloud platform for running Windows Server and Hyper-V containers.
Hyper-V, Windows Server and container FAQs
Because Windows Server containers and Hyper-V containers are new, there are several important misconceptions that many IT people have about them. Some of the biggest questions about them are:
Can you run Linux containers on a Windows Server container host?
You can't run Linux containers on Windows Server containers. Containers rely on the OS kernel functionality provided by the host and, because of this dependency, they can't run on different host operating systems. Therefore, at this time, you can't run Linux containers on Windows Server 2016 and you can't run Windows Server containers on Linux.
Will all Windows applications run in containers?
Not all applications can run in a container yet. Windows Server 2016 container support is in the early stages, and not all applications are supported in containers. Microsoft has published a list of applications that are compatible with Windows Server containers on the following page: Application Compatibility in Windows Containers.
Do I have to have Docker to use Windows Server containers?
No. Docker is a management tool. It is supported, but not required. You can manage Windows Server 2016 containers using either PowerShell or Docker.
Microsoft worked with Docker to port Docker to Windows. The advantage of using Docker is that it provides the same container management and deployment tool for both Windows Server 2016 and Linux.
It's a bimodal future
Containers are an emerging technology, and they are certainly new to Windows Server and Microsoft technology-oriented businesses. While containers offer advantages, moving enterprise applications is a lengthy, resource-intensive undertaking. Rather than converting entire applications at once, one likely path is that, over time, businesses will gradually convert different portions of monolithic applications to microservices. The emergence of containers will likely result in a bimodal IT development path for the foreseeable future, where IT continues to work with legacy applications, as well as gradually adopting the new container technologies.
Everything you need to know about Windows Server 2016
Using Azure? Here's the scoop on Windows Server 2016
Preparing for the Windows Server container takeover
What you need to know about Windows Nano Server