What “Nano Server” Means to You

Yesterday, Microsoft announced that Windows Server v.Next will include a “Nano Server” installation option. Nano is described as an incredibly small refactoring of Windows Server – think “Server Core Core” – that has a base OS image size measured in megabytes, and is about 8% the size of a “full” Server install.

So what’s this mean to you?

Well, first of all, let me get this off my chest: I told you so. I’ve been saying since 2008 that “Server Core” was just a peek at things to come, and that Microsoft would eventually ship a version of Windows where “windows” weren’t even possible. By all reports, Nano won’t even support video hardware – meaning OEMs can simply eliminate that hardware from physical boxes.

Initially, Nano is going to be suitable for a limited set of workloads – just like the original Server Core was in Win2008. A leaked slide deck says Nano will come with “Core CLR,” likely a stripped-down version of .NET that doesn’t have dependencies beyond what Nano provides. A companion “Core PowerShell” will run on it. That probably means workloads like SQL Server and SharePoint aren’t going to be suitable out of the box – in this version. As with Server Core, Nano will doubtless evolve.

Many folks will take the limited workload variety as an excuse to ignore Nano, just as they did with Server Core. Those people are short-sighted and career-limiting, and will eventually go away of their own accord. From everything I’m seeing, Nano is the future; “full” Server is there for backward compatibility until Nano catches up.

So what will Nano eventually support? Clearly, Hyper-V and IIS, making it an ideal cloud-scale host OS. After all, if all it needs to do is run VMs, then you ideally want it as little as possible, and Nano seems to deliver on that. Microsoft indicated that they’re developing web-based tools to replace certain in-box tooling that exists today – to me, that probably means a web-based “Task Manager” and other interfaces, which is why I think Nano will probably support at least a limited version of IIS as a workload.

Nano is also going to support WMI OMI (Open Management Interface) and PowerShell Remoting, so that’s how you’ll get to it. You won’t be logging in locally, since it doesn’t support that. Heh. Told ya they’d do that eventually.

Based on past experience with Server Core, I wouldn’t be shocked if Nano ships with support for what I call ‘core infrastructure’ workloads: Active Directory, DHCP, DNS, and the like, although there’s been no mention of them yet. Those roles were amongst the first refactored for Server Core back in 2008, and so they’re likely low-hanging fruit for a Nano conversion. None of them have heavy native .NET dependencies, all have their own management protocols, and all run entirely as background services with remote tools for management. And that means your “Nano-based infrastructure servers” can take up a ton less space, get rebooted a ton less often, and take a ton fewer patches each year. Win.

The phrasing in Microsoft’s announcement also suggests that Visual Studio will “know the difference” between “full” server and Nano. I suspect developers will be able to tell Visual Studio which one they’re targeting, and then have it highlight anything they try that won’t be supported on the target. That’ll make it a lot simpler for developers to produce code that definitely runs. Visual Studio will also, I imagine, come with the “packaging” needed to produce containerized applications.

Oh, speaking of containers: Nano is also tied up with Microsoft’s vaguely announced support for “containers.” I say “vague” only because the technical details are slim at this point (unsurprising), but what’s interesting is that Microsoft plans to support Docker’s APIs for managing Windows Server and Hyper-V containers.

Now, understand that half the tech press is getting really confused about what this means. A container is, at a conceptual level, what App-V does. It’s a way of isolating specially packages applications from each other, without the need to construct an entire set of pretend hardware, and a whole OS, around it. So it’s “virtualization light.” Docker isn’t containers; Docker is a management API on top of native Linux containers that have been around forever. So with this announcement, it would seem you can have a super-slim Nano Server OS capable of running VMs and containers, and manage those containers via the same Docker tools you use to manage Linux-based containers.

What Microsoft has done to make this harder to grasp is differentiated between Windows Server containers (no virtualization) and Hyper-V containers (some level of virtualization). Hyper-V containers seem to be a middle ground between full VMs and no-VM-at-all-containers, creating a more inseparable barrier between applications. Microsoft says an app packaged for Windows containers can be deployed in a Hyper-V container, although the specific use cases for one way or the other aren’t yet clear. Hyper-V has, for a few cycles now, been on a path to lessen the overhead of virtualization. For example, the shift to “synthetic” hardware inside a VM, versus traditional “emulated” or “virtual” hardware, was always intended to reduce the overhead of the VM itself. It’s possible that Hyper-V containers are some further-lightened kind of VM-flavored thing, manageable via container-management APIs.

Hopefully that’ll all be made clearer at Ignite and BUILD.

What’s definitely clear right now is that this is a big new world in Windows. I’m going to continue watching this space and writing about it in an attempt to keep you updated and informed. The take-away now is, don’t ignore this. While the technologies are built for cloud-scale environments, and while your company might not have any immediate plans, this is what the world looks like going forward. Nano will become the only version of Windows Server, and you will need to learn to manage it appropriately. Microsoft has been marching forward with this plan for almost 8 years now, and while full Nano-ization might take another decade, it’ll happen. Keep up.

8 thoughts on “What “Nano Server” Means to You

  1. rich siegel

    Nano is a direct response to CoreOS, Atomic and Snappy – thin OS models with the sole purpose of supporting containerized based apps. The kernel is being solidified and separated as distinct from any mingled components. This is the big bruhaha in the windows world. The idea of a scratch or minimalistic approach presents the smallest possible surface area for attack and easiest to scale.

    DNS and dhcp should be run from inside a container, not on the thin OS. I’d like to see Iis run inside the container as well. This gives the ability to ship web servers, and content separate as the web content should reside in separate data containers.

    The endgame is immutable servers that can be described and built from clear text file descriptions and scale to 1000s of nodes with no or the smallest possible attack surface possiblr.

    Its exciting, and hope MS delivers on creating value around its licenses as many of this stuff is free with other platforms.

  2. jsnover

    @rich – I would love to say that we are so agile that Nano is a “direct response” to those other efforts. The reality is that our refactoring effort has been going on for a very very long time and has finally come to fruition.

    Jeffrey Snover [MSFT]

    1. rich siegel

      Jeffrey, I give you major kudos for getting it done. I know what you have been up against. We have met a number of times and discussed how the depth and reach of Windows being so vast makes disruption so hard unless the value propositions are there. I find it very refreshing to see the commits on branches on the Microsoft docker fork. It definitely shows a completely new Microsoft.

      There are many unanswered questions on how this ecosystem will round out, but overall I think its awesome and something I have personally been trying to push Microsoft to do for several years. I think I am the first person to even put Microsoft and docker containers in the same sentence outside MSFT as far as I can tell. I envision a radically different windows ecosystem with some crazy mixes of open source projects. It would be phenomenal if some other key pieces were open sourced… Also a cloud IDE – VS or otherwise.

      Can you imagine an active directory based on etcd? Or kubernetes fleet and swarm managing a large windows container infrastructure? Its crazy and i think people will develop around it if they know Microsoft is honest about its intentions and not predatory or closed like apple or treating the consumer like the product in an advertising model (google).

      Red hat is 1/20 the size of MS and Atomic is not going to be the standard or else it would have already been. Their visions are not appealing to many die hard Redhatters… They started to emulate some of the historic MS licensing moves and are causing disgruntlement, like the RH subscription manager. People will pay for enterprise support, licensing and what not but they resent crippleware, licensing servers or other unneeded infrastructure for their core business. There is big opportunities here and its about quality open execution.

  3. William

    What it means to me? It means to me the top 1, 5 or 10% of consultants(including myself), MVPs and windows admins will use it. The rest will continue to chug along with GUI, until microsoft provides no other option. This is very exciting stuff, but i’ve been to two different fortune 500 clients this year alone that are not only still running Server 2003, they seemingly have zero concern that it is EOL later this year.

    1. Don Jones

      I don’t disagree with you – in the short term. I think smart people are going to be paying attention to this regardless what their current organization does in production. As I said, right now it’s limited use cases; that’ll change over time. I think the, “people are still using Win2003 so I don’t need to worry about whats’ new” is shortsighted from a career perspective. I hope people don’t do that to themselves.

  4. MK

    Docker does not rely upon Linux LXC, they replaced its functionality with libcontainer in 0.9

    1. Don Jones

      True, but my point remains that “Docker” is a management surface, not containerization per se. Which will make it very cool when that same management surface can also manage Windows Server containers and Hyper-V containers.

  5. Michael Sainz

    This pretty much captured what I’ve been telling my clients for a couple years now. Don, you illustrate the landscape extremely well. Well done!

Comments are closed