Windows 10 logo
Microsoft press image (source)

Cloud computing has taken data centers by storm. IT shops all over the world are trying to leverage the flexibility and scalablilty that private and public clouds provide. The big problem with cloud computing is how to reduce the amount of resources a system uses.

Linux has been king here. Linux VMs can be very small and the addition of tools like Docker containers and it’s possible to squeeze a lot of tasks into a very small package. Microsoft took notice of late last year and has been working on ways to support containers, too, but Microsoft has to overcome a serious problem of their own: Windows Server is huge beast of a system. The resource requirements for Windows are high and amount of disk space needed is crazy, especially when compared to Linux. The solution for Windows admins is on the way.

Today, Microsoft announced Nano Server, an ultra streamlined version of Windows designed specifically for DevOps and cloud computing. Nano is a different type of Windows. In many ways, it’s more analogous to Core OS. There’s just enough OS to run Hyper-V VMs, custom built apps, or the new containers Microsoft is working up. It’s the latter that the most interesting.

On Wednesday it expanded upon those plans with a new kind of Windows containers called Hyper-V containers. Unlike standard Windows Server Containers, Hyper-V containers run on Microsoft’s virtualization hypervisor, ensuring that code running in one container is completely isolated and has no chance of affecting other containers or the host OS.

That design will likely incur a slight performance hit, but it also makes Hyper-V Containers useful for multi-tenant environments or where running untrusted code is a requirement. Server Containers, on the other hand, need no hypervisor, so they spin up faster and they can use memory more efficiently, allowing for greater container density.

The new container system is being built to use the Docker API. Developers and admins will be able to use the same client tools to deploy and manage apps on the server.

Management of a Nano Server is going to be significantly different managing other Windows Servers.

This bare-bones OS includes nothing save what is required to get a system up and running. Much like Windows Server’s Server Core installation option, it’s designed to run headless, so it includes no GUI stack, local logon, or Remote Desktop support. All management is handled via Windows Management Instrumentation (WMI), PowerShell, and Visual Studio integration, including remote debugging support.

What’s both interesting and annoying is that Nano basically requires that an admin uses a Windows system to manage the thing. Not that that is generally a problem for Windows admins. Of course, Nano is designed so that an admin doesn’t need to log into it.

The Microsoft announcement specifically calls out Desired State Configuration and Chef to configure Nano servers. The idea is that Nano servers will boot, pull their configs via DSM or Chef and go about their business.

It’s an interesting move for Microsoft but one that is essential of they don’t want to lose out to Linux in the public cloud. Storage is one of the most expensive parts of working in the cloud and Nano is 93 percent smaller. Plus, stripping all of the overhead out of Windows will allow developers to use smaller images.

Microsoft is making a pretty drastic change here. It will be interesting to see if they can pull it off. I know one thing, I’m going to have to see about attending a session on Nano when I’m at Ignite.