Nano Server : au cœur des conteneurs Windows
Version entièrement ré-architecturée et miniaturisée de Windows Server 2016, Nano Server voit son rôle se focaliser autour des conteneurs Windows avec une mise à jour majeure attendue cet automne.
Né avec l’arrivée de Windows Server 2016, Nano Server est une déclinaison, ou plus exactement une option d’installation de Windows Server conçue pour offrir l’empreinte la plus faible possible sur les ressources mémoire et disque. Autrement dit, Nano Server est une installation minimaliste sans aucune interface utilisateur (pas de support RDP, pas même un Shell, d’ailleurs aucune connexion locale n’est possible) de Windows Server qui complète les deux autres options déjà disponibles : la version intégrale (avec son interface utilisateur directement héritée de Windows 10 Desktop) et la version Core (sans bureau Windows mais pilotable en ligne de commandes).
Si l’objectif premier de Windows Core (apparu avec Windows Server 2008) était avant tout sécuritaire, avec l’idée de revenir à une version allégée de Windows offrant une surface d’attaque réduite, celui poursuivi par Nano Server est bien celui de la compacité pour servir de fondation aux applications « nativement Cloud » (à commencer par les microservices) et de plateforme Cloud (Hyper-V et serveurs de fichiers répartis).
Un Windows miniaturisé
Les chiffres parlent d’eux-mêmes. Un serveur Windows déployé en mode Nano Server n’occupe sur disque que 600 Mo et se révèle - comparé à Windows Server classique - 93% plus léger en termes d’occupation disque (taille du VHD), et n’est ciblé que par 8% des bulletins de sécurité critique de Windows (ce qui résulte d’une réduction de plus 80% des reboots sur l’année).
La taille RAM recommandée est d’environ 800 Mo même si nous avons vu des VM Nano Server ne consommer que 140 Mo de RAM. Une ancienne vidéo sur Channel9 montre un serveur octo-core doté d’1To de RAM exécutant 1000 VMs Nano Server. Il faut compter 3 minutes pour déployer une VM Nano Server alors qu’il en faut près de 20 pour une image Windows Server classique. Le temps de boot de Nano Server est aussi considérablement réduit.
Puisqu’il n’y a pas de logon local possible (et par voie de conséquence pas d’interface en ligne de commandes ni de bureau, pas même en RDP), Nano Server s’administre exclusivement à distance via WMI et PowerShell.
Une nouvelle orientation 100% conteneurs
Jusqu’à présent, Nano Server était utilisé aussi bien comme hôte pour des VM Hyper-V (en clusters ou non), comme serveur DNS et comme serveur Web (puisqu’il supporte le rôle IIS). Il était aussi et surtout utilisé pour héberger des microservices et des applications Web notamment écrites en ASP.NET Core (Nano Server ne supporte pas la version classique du framework .NET mais accueille en revanche sa nouvelle déclinaison Open Source .NET Core). C’est désormais vers ce dernier rôle que va se focaliser le futur du système.
Début Juin, Microsoft a en effet annoncé une refonte totale de sa stratégie autour de Nano Server. Dès cet automne, « Nano » se verra exclusivement destiné aux conteneurs Windows. Toute la couche infrastructure actuellement présente lui sera retirée. Autrement dit, plus question d’utiliser Nano Server sur un serveur « Bare-metal », ni de l’utiliser comme serveur minimaliste pour les clusters de fichiers ou de calculs, ce rôle étant désormais de préférence dévolu à Windows Server Core, édition qui, rappelons-le, sert aussi de fondation à tout le Cloud Azure.
Ainsi spécialisé, Nano Server va voir ses empreintes disque et mémoire, ainsi que son temps de démarrage, réduits de 50%. Objectif affiché : améliorer la densité des conteneurs Windows pour héberger davantage de microservices au sein d’une même machine.
Cette réduction de taille est d’autant plus significative qu’elle met, en matière d’occupation disque, Nano Server à égalité des principales distributions Linux minimalistes destinées à la conteneurisation Docker : CoreOS (environ 165Mo), Red Hat Atomic (environ 200 Mo), VMware Photon (environ 251 Mo).
Microsoft a donc décidé d’éclaircir le rôle de ses variantes de Windows Server. Nano sera dédié aux conteneurs, alors que Core servira de fondation aux infrastructures. L’éditeur a par ailleurs annoncé que, désormais, Nano et Core recevraient deux mises à jour annuelles (hors patchs de sécurité), suivant ainsi le rythme de Windows 10, pour profiter des évolutions régulièrement injectées par ses ingénieurs dans Azure.
Reste désormais à faire massivement adopter les principes de conteneurs aux développeurs Windows. Mais, ça, c’est une autre histoire…
Linux débarque sous Windows Server
Parallèlement aux annonces Nano Server, Microsoft a également annoncé que « Windows Server Core » évoluerait lui-aussi à l’automne pour permettre l’exécution native de conteneurs Linux afin de mixer simplement les conteneurs Windows et Linux au sein d’une même infrastructure Hyper-V.
Une révolution rendue possible à la fois par l’extension des capacités d’isolation d’Hyper-V aux conteneurs Linux, mais aussi par l’intégration dans Windows Core de l’étonnant Windows Subsystem for Linux (WSL) de Windows 10. Rappelons que ce dernier permet d’exécuter directement Ubuntu Bash, OpenSuse et Fedora sous Windows 10 sans passer par des VM, en les installant simplement d’un clic depuis le Windows Store. L’objectif n’est pas d’exécuter des workloads Linux sous Windows Server (tout du moins pas encore, même si cela fonctionne) mais de permettre aux développeurs d’utiliser les mêmes scripts, outils, et procédures DevOps sous Windows et sous Linux, que ce soit sur le poste de travail, sur les serveurs internes et sur les infrastructures Cloud (telles que Azure et Azure Stack).