Nano Server: Microsoft’s cloud OS
Connecting state and local government leaders
Positioned as the future Windows Server, Microsoft’s Nano Server is a remotely administered server operating system optimized for private clouds and data centers.
Positioned as the future Windows Server, Microsoft’s Nano Server is a remotely administered server operating system optimized for private clouds and data centers.
Nano Server is a “deeply refactored version of Windows Server with a small footprint and remotely managed installation, optimized for the cloud and a DevOps workflow,” Microsoft said in its original announcement. It is designed for fewer patch and update events, faster restarts, better resource utilization and tighter security. Compared to Windows Server, it has a 93 percent smaller virtual hard disk size, 92 percent fewer critical bulletins and 80 percent fewer reboots.
Organizations will be able to install only the Windows Server components they need with Nano Server. That capability was also true for Server Core users, but Nano Server will just be more compact, it seems. For instance, it's possible to have a 1TB machine running 1,000 Nano Server virtual machines, according to this Microsoft Channel 9 video.
At Microsoft's Build event, Jeffrey Snover, a Microsoft distinguished engineer, and Andrew Mason, a principal program manager at Microsoft, explained that Nano Server 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."
Now, after about 10 years of development effort, Microsoft has that cloud-optimized server in the form of Nano Server.
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 is managed using a remote GUI through a browser-based application. For instance, the presentation showed off a browser-based DevOps 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 said he loves GUIs, but believes they 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 data centers 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.
"Nano Server doesn't mean no GUI," Snover explained. "Nano Server means remote GUI."
Cattle, not pets
He advised those subscribing to a DevOps 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 targeting just 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, which makes solutions for automating server management, plan to collaborate on an integration effort that will enable Chef users to build on top 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 some time next year.
Snover and Mason had a lot more to say about Nano Server. Their Build talk can be accessed on demand at this page.
Microsoft has also released a series of Channel 9 videos that explain some of Nano Server's boot, scale, management and dev-ops perks.
This article originally appeared on Redmondmag, a sister site to GCN.