Latest posts by Brandon Lee (see all)
- Action1: Manage endpoints from the cloud - Tue, Feb 18 2020
- AdRem Software NetCrunch: rule-based monitoring, automatic alert correlations, and pending and conditional alerts - Tue, Feb 11 2020
- VMware moving to per-core licensing - Mon, Feb 10 2020
You may remember that with the release of Windows Server 2016, Microsoft also released a new server "version" called Nano Server. Nano Server was an ultrasmall, headless operating system (OS) that appeared to be the future of providing the host OS for Hyper-V and other use cases.
However, with Windows Server 2019, the Nano Server role is no longer available for installing on bare metal in the same way that was possible with Windows Server 2016—or at least not in a supported fashion. However, the Windows Server 2019 Nano Server role is still around with Windows Server 2019. It now relates to a very specific use case we will discuss. Let's look at the Windows Server 2019 Nano Server role and see where it now fits into Microsoft's Windows Server OS hierarchy.
Windows Server 2019 Nano Server role ^
You may not realize it because Microsoft doesn't address it directly like they did in Windows Server 2016, but the Nano Server version of Windows Server 2019 does exist; however, it is tied to a very specific use case: containers. This really is a very fitting use case for such a tiny Windows Server OS.
In fact, with Windows Server 2019, the entire OS was less than 500 MB. With Windows Server 2019, the image is even smaller due to many tweaks and enhancements. Starting with Windows Server version 1803, Nano Server is available only as a container base OS image.
You need to run it on a container host, perhaps running Windows Server Core, as a container. So you can't install a bare-metal Windows Server 2019 Nano Server.
Changes to Windows Server 2019 Nano Server ^
There have been many changes and enhancements to the Windows Server 2019 variant of Nano Server. Many improvements relate to running this version of the Windows Server OS inside a containerized infrastructure.
Core features and enhancements include the following:
- Many optimizations support the use of .NET Core applications.
- It has a smaller footprint than the already small footprint with Windows Server 2016 versions.
- It does not contain many packages by default (which has helped reduce the footprint). These packages include PowerShell Core, .NET Core, and WMI. You can install PowerShell Core and .NET Core when building the Windows Server 2019 Nano Server container.
- Another space-saving and efficiency modification to Windows Server 2019 Nano Server is there is no servicing stack with this version of Nano Server, meaning no updating it on the fly. Instead, Microsoft publishes updated Nano Server containers to the Docker Hub library that you have to redeploy to get updates, features, and other enhancements.
- Docker is the tool of choice when it comes to troubleshooting Nano Server in Windows Server 2019.
- You can also run it on top of IoT Core.
Let's now turn the focus to Nano Server's key role: containers.
Nano Server's key role in containers ^
If you recall with Windows Server 2016, you could install the Nano Server Image Builder and then create a new Nano Server image you could install on bare metal or on top of a hypervisor. Below is a screenshot of installing the Nano Server Image Builder.
Once you installed the Nano Server Image Builder, you could then create a new Nano Server image using the utility.
However, this option has disappeared from Windows Server 2019. Now Microsoft's focus with the Nano Server image is solely containers. It is easy to see why Microsoft had containers in mind with Nano Server, especially since they've decreased the image size to a smaller size than ever before.
With containers, you need a base set of code and kernel on top of which you then build your applications. Windows Server 2019 gives you two options for deploying Windows containers: Nano Server and Windows Server Core.
When it comes to containers though, Nano Server is much more desirable than even Windows Server Core due to its size. While Server Core is still in the low gigabytes in size (very small compared to Windows with the Desktop Experience), Nano Server is only a few hundred megabytes. By today's standards, that is extremely small.
Nano Server helps IT administrators build out immutable infrastructure. What is immutable infrastructure? Rather than updating software or infrastructure, you replace it with new versions of code when those are available. In terms of infrastructure, this means you don't update servers or containers. You destroy them and deploy new ones.
As noted, one of the Windows Server 2019 enhancements to Nano Server is the removal of the servicing stack. This means there is no real way to update Nano Server. However, this is not really a limitation due to its extremely small size. Instead of updating it with new patches or enhancements, you simply build out a new container image using the new Nano Server container build. This helps keep the Nano Server size extremely small and allows IT admins to build on the idea of immutable infrastructure.
Nano Server vs. Server Core for containers ^
There may be a discussion around when to use Nano Server as opposed to Server Core. When it comes to containers, Nano Server is unquestionably the most efficient option to use for building out your container infrastructure. Would there be an instance where you would choose to use Server Core over Nano Server for containers?
The only real reason to do so is to have better application compatibility. Since Nano Server comprises the absolute bare minimum of Windows Server components to allow applications to run, there is the real possibility you will not have all the components your specific custom application requires. In that case, Server Core could be a better option for your base code or kernel.
Concluding thoughts ^
The role of Nano Server has certainly changed between the release of Windows Server 2016 and Windows Server 2019. While Nano Server could service many different use cases with Windows Server 2016, with Windows Server 2019, the sole focus is containers.
You can't install Windows Server 2019 Nano Server as a bare-metal install as you could with Windows Server 2016—at least not in a supported manner. If your focus is immutable infrastructure and Windows Server containers, Nano Server is well suited for this role due to its efficiency and its extremely small footprint and size.
Since Microsoft has removed the servicing stack, updating Nano Server in its Windows Server 2019 form means you simply redeploy a new Nano Server container with the updated container code. Nano Server is here to stay; however, its role and focus will most definitely be on containers and nothing else moving forward.