Microsoft are making some big changes to their Nano Server operating system. I’m going to briefly cover what they are doing and consider how it might impact existing users and future plans for those of us who have not yet deployed it into a production environment.
The below was taken from the following Microsoft link – https://docs.microsoft.com/en-us/windows-server/get-started/nano-in-semi-annual-channel
However, starting with the new feature release of Windows Server, version 1709, Nano Server will be available only as a container base OS image. You must run it as a container in a container host, such as a Server Core installation of the next release of Windows Server. Running a container based on Nano Server in the new feature release differs from earlier releases in these ways:
- Nano Server has been optimised for .NET Core applications
- Nano Server is even smaller than the Windows Server 2016 version
- Windows PowerShell, .NET Core, and WMI are no longer included by default, but you can include PowerShell and .NET Core container packages when building your container
- There is no longer a servicing stack included in Nano Server. Microsoft publishes an updated Nano container to Docker Hub that you redeploy
- You troubleshoot the new Nano Container by using Docker
- You can now run Nano containers on IoT Core
You can also get some additional information in this Microsoft MSDN Channel 9 video – https://channel9.msdn.com/Events/Build/2017/B8013
The video and the slides that they use provide some more insight into the decision to (as the present states) start ‘gutting the system’. Let me provide some bullet points summarising information from the video.
Current Nano –
- Uncompressed container image ~1GB
- Included components which were not relevant in containers
- Components which were optional not implemented as layers
Version 1709 and future Nano –
- A ‘significant’ reduction in size (both on disk and at pull)
- Removal of components not relevant to containers
- Optional components now implemented as layers
I had seen some articles stating things like PowerShell would no longer be available at all on Nano but this is not the case; it would now be a layer you choose to add to your container. By migrating to a layered approach Microsoft can trim down Nano even further. I will have to keep a close eye on future releases of Nano server to see what Microsoft remove and also what functionality (as layers) they choose to implement. Personally I think if I wanted to run Docker like containers I’d just use Linux Docker containers or possibly VMware Photon if we choose to drop Hyper-V and move back to running a single hypervisor rather than two in our production environment.
Regarding the removal of what many term the ‘infrastructure roles’ I see this as a backwards step by Microsoft. You can find many videos and PowerPoint slide decks by Microsoft extolling the virtues of Nano server of both the full GUI Windows Server install and also Server Core. They go to great lengths to explain why Nano will be so much better for us and before many of us have even had a chance to deploy it in production they are removing that functionality. I’ve seen comments that the uptake of Nano has not been that great but as a company they must remember those of us running infrastructure can’t just drop everything we have and rebuild our estate with a new OS. Microsoft seem to be making every effort to get developers to use Nano and as such as building it for them while forgetting or at least ignoring for now the needs of the infrastructure engineers. We will have to wait and see what future releases bring but I don’t hold out much hope of anything useful to me in the next few years.