Inside the guts of Nano Server, Microsoft's tiny new Cloud OS
This is definitely not your father's Windows Server
Build 2015 Engineers from Microsoft's Windows Server team took the stage at the Build developer conference in San Francisco this week to share more details on Nano Server, the upcoming micro-sized version of the OS aimed at cloud deployments.
"Nano Server is by far the most important, most significant change we've made in Server since Windows NT," proclaimed Jeffrey Snover, a Microsoft distinguished engineer.
We first heard about this new iteration of Redmond's server OS earlier this month, although it's not due to hit general availability until the next version of Windows Server ships sometime in 2016.
Taking a page from small-footprint, cloud-centric Linux distros like CoreOS, Red Hat Atomic Host, and "Snappy" Ubuntu Core, Nano Server delivers a platform that's compatible with Windows Server but includes nothing but the barest minimum of components. On Thursday, Snover and Windows Server program manager Andrew Mason gave an overview of just how that works in practice.
Nano Server is the future of Windows Server
One thing that Snover made plain is that Nano Server isn't a side project of the Windows Server team or some kind of experiment. Rather, it is the first visible result of a massive code refactoring project that will eventually change the way that every version of Windows Server is built and delivered.
For version 1 of the product, the team is narrowly focused on just two scenarios: cloud infrastructure and born-in-the-cloud applications. But eventually, Nano Server will become the baseline for Windows Server and all of the more complex components will be built on top of it.
"It's really the foundation for all of the components, going forward," Snover said. "We want a model of 'just enough OS'. If you're running an application and you need 5GB worth of components, great; you should have 5GB of components. But you shouldn't have 10GB. And if you only want 900MB, you should only have 900MB."
Today's versions of Windows Server don't give you that. They install the whole kit-and-kaboodle onto your disk, regardless of what you really need. That's why you can activate a feature like, say, Internet Information Server and Windows doesn't ask you to put in the install media. It's also why Windows Server's footprint has ballooned so much in recent releases, with virtual disk images averaging around 6.3GB.
By comparison, Nano Server's disk footprint today is just 400MB, Snover said, and it probably won't ever get much larger. You'll still have the options of Server Core and full-fat Windows Server, but if you want the absolute minimum number of components needed to get a server up and running in the cloud, Nano Server for you. And if you want slightly more than what Nano Server offers by default, the idea is that you'll be able to install additional OS features much like you install applications today.
Off with its head
One of the first things Microsoft did when trimming down its OS was to eliminate the GUI layer. In fact, Nano Server does not support local access of any kind. All management is done remotely, via a combination of Windows Management Instrumentation (WMI) and PowerShell – or more accurately, Core PowerShell, a new formulation of Redmond's command line that runs on the Core CLR, rather than the full .Net runtime.
But this change was about more than just space savings. It was also about dragging the Windows admin community into the world of the modern data center – kicking and screaming, if need be. To Snover, the concept of Windows admins managing their infrastructure via GUIs tools running locally on servers is a relic of the past.
"That world was a long time ago," he said. "Now it's about data centers. Now it's about agile development in the cloud, and these local GUIs are poison ... The model here is we want to eliminate the idea of you ever sitting in front of a server, managing it."
To support this idea, the Windows Server team has even made a subtle semantic shift in how it talks about the OS. At one time, there were three tiers of Windows Server: Server Core, regular old Server, and something called Full Server. Later, Microsoft changed the name of Full Server to "Server with GUI," to more accurately reflect what it really ways. Now, the name is changing again.
"The future name is going to be Client," Snover said. "Because that's really what it is. It is a client stack running on a server."
There are legitimate use cases where you might want a client stack running on a server, he added, but they're mainly limited to Remote Desktop. Barring that exception, there's really no reason for server software to access GUI client APIs at all.