Microsoft: Nano Server Is Most Significant Change Since Windows NT

With Nano Server, Microsoft hopes that the old adage about good things coming in small packages turns out to be true.

Attendees at Microsoft's Build event last week got a better idea about this next Windows Server option in the session, "Nano Server: A Cloud Optimized Windows Server for Developers." The talk was conducted by Jeffrey Snover, a Microsoft Distinguished Engineer, and Andrew Mason, a principal program Manager at Microsoft.

Snover explained that Nano Server will be "the future of Windows Server." It also represents a major Windows Server architectural change, reflecting Microsoft's current cloud computing focus and dev-ops approach.

"Nano Server is the most important, most significant change that we've made since Windows NT," Snover said.

He explained that Microsoft had tried to make its Windows client operating system work like a server in the old Windows NT days. By the time of Windows Server 2008 and Windows Server 2008 R2, Microsoft had added Server Core as a configuration option, along with a Full Server option. Windows Server 2012 and Windows Server 2012 R2 had Server Core with a minimal server instance and a GUI shell. But what Microsoft really needed was a "server configuration optimized for the cloud."

After about 10 years of development effort, Microsoft now has that cloud-optimized server in the form of Nano Server.

Nano Server will be available as a configuration option in next Windows Server test release, which is expected to arrive "in early May," Snover said. Microsoft is targeting the release of its next-generation Windows Server product for sometime next year.

Headless with a Small Footprint
Microsoft defines its Nano Server as a "headless, 64-bit only deployment option for Windows Server." It's like Server Core, except that it's 20 times smaller. The compressed size or reduced server "footprint" brings a number of benefits, including fewer security vulnerabilities to address, reduced patch and reboot times, and scalability improvements.

To address the cloud, the GUI built into the server had to go. Instead, Nano Server gets managed using a remote GUI through a browser-based application. For instance, the presentation showed off a browser-based dev-ops program called Visual Studio Release Management. It doesn't use Remote Desktop Protocol to remote into a server. Instead, it uses Core PowerShell scripts for management, along with Desired State Configuration, which is PowerShell's push-pull configuration technology.

Snover explained that PowerShell is based on .NET, while Core PowerShell is based on CoreCLR, which is a more modular .NET implementation that supports remoting. Core PowerShell is used to manage Nano Server's engine components. It supports all cmdlet types, including C#, script and Common Information Model (CIM), although there will be a limited set of cmdlets initially. It's also possible to perform remote management of Nano Server via Windows Management Instrumentation (WMI).

Snover said he loves GUIs but they just shouldn't be on servers.

"Admin GUIs on servers are poison," Snover said. That approach puts the business logic in the GUI and private APIs get called, which means that you can't do automation, he added. Microsoft's goal is to run datacenters and have agile development in the cloud, he added, and the GUI on the server just got in the way. Instead, Microsoft is envisioning use of a remote GUI.

Only the Roles You Need
He advised those subscribing to a dev-ops mentality to treat servers more like cattle than pets. You don't coddle them. If server components aren't needed to run a Web application, you just get rid of them.

Nano Server will have a "zero footprint model," which means that server roles and optional features will live outside of it. It will have standalone packages that install like apps. The key roles and features will be Hyper-V, storage, and clustering. It will support CoreCLR, ASP.NET 5 and platform as a service. Nano Server will have full Windows Server driver support and built-in antimalware. Support for System Center and Application Insights agents will follow.

The use scenarios for Nano Server are fairly narrow at this point. Snover said that Nano Server has been deeply refactored to focus on cloud OS infrastructure and born-in-the-cloud apps. For now, Microsoft is just targeting those two areas.

The supported tasks for Nano Server include handling files, services, Component Object Model (COM), Registry and Event Tracing for Windows (ETW) events. It's possible to host Nano Server on hardware, run Nano Server as a guest OS in a virtual machine, or have Nano Server in a Windows Server container or a Hyper-V container.

Nano Server currently works with a number of platforms, including "Chef, PHP, Nginx, Python 3.5, Node.js, GO, Redis, MySQL, OpenSSL, Java (OpenJDK), Ruby (2.1.5) and SQLite," according to a presentation slide. Microsoft and Chef plan to collaborate on an integration effort that will enable Chef users to build on top of Nano Server. Chef makes solutions for automating server management.

Snover and Mason had a lot more to say about Nano Server. Their Build talk can be accessed on demand at this page.