Comment Windows Server embarque Docker

Comment Windows Server embarque Docker Sans surprise, le serveur de Microsoft supporte différemment les containers Docker selon leur format, Windows ou Linux. Le point sur l'architecture retenue dans chaque cas.

Microsoft a identifié très tôt la technologie de containérisation promue par Docker. Dès 2014, soit un an et demi après la création de la start-up du même nom, l'éditeur signe "un partenariat stratégique" avec cette dernière. Objectif affiché par le groupe : porter les containers Docker sur Windows Server. Une première étape est atteinte dès la sortie de la version majeure suivante du serveur d'applications (Windows Server 2016). La plateforme introduit la prise en charge des containers Docker au format Windows. Un vrai tournant. Les containers Docker n'étaient en effet jusqu'alors disponibles qu'au format Linux. En septembre 2017, nouvelle étape : Microsoft annonce que son serveur est capable de supporter également les containers Docker historique, de type Linux.

La micro-virtualisation sous le capot

Comment Microsoft est-il parvenu à réaliser cette double intégration ? Sans grande surprise, le mode de portage des containers Docker sur Windows Server est assez différent selon qu'ils soient sous Windows ou Linux.

Au format Windows, les containers tournent en exploitant le même processus d'isolation que celui de leur grand frère du monde Linux. Pour aboutir à ce résultat, Microsoft a tout bonnement introduit dans le cœur de sa plateforme une couche permettant d'exécuter les processus applicatifs dans une enveloppe isolée (ou sandboxed). Baptisée Windows Server Container, elle est l'équivalent de LXC (pour Linux Containers), la brique sur laquelle s'adosse le format historique de Docker pour Linux.

Via Hyper-V Containers, "nous donnons aussi la possibilité d'embarquer les containers Windows dans une machine virtuelle Hyper-V classique pour plus de sécurité et de fiabilité", souligne Frédéric Aatz, leader senior du groupe infrastructure et cloud hybride chez Microsoft France.

Quant au portage des containers au format Linux sur le serveur de Microsoft, il s'adosse à Linuxkit qui n'est autre que l'un des 80 composants livrés en open source par Docker en avril dernier dans le cadre du projet Moby (lire l'article : Comment Docker veut disrupter toute la matrice IT). Il s'agit d'un système Linux ultra léger, lui-même containérisé, n'embarquant que ce qui est nécessaire pour exécuter un container Linux et les applications qu'il embarque. Pour tourner sous Windows Server, celui-ci est enveloppé dans une machine Hyper-V très fine, se limitant à la couche de virtualisation système nécessaire à l'exécution de Linuxkit sur Windows (lire le détail sur le site de Microsoft). Cette méthode peut s'apparenter à la micro-virtualisation, une technique qui commence par ailleurs à être utilisée sur Windows 10 (lire l'article : Les containers, prochaine grande mutation de Windows 10 ?).

Pour exécuter les containers Linux dans Windows Server, la toute dernière version du serveur d'applications de Microsoft sera nécessaire (la 1709). Il faudra par ailleurs déployer en parallèle l'environnement Docker Enterprise Edition (EE) qui, lui, permet d'installer le Linuxkit sur le serveur (voir la documentation sur le site de Microsoft).

Le support de Kubernetes

En aval, les containers Docker (qu'ils soient de type Windows ou Linux) pourront être poussés sur le serveur de Microsoft aussi bien depuis l'interpréteur PowerShell que depuis le client Docker. Point intéressant, Windows Server 2016 sera capable de gérer un accès à des volumes de stockage partagés sur différents containers, tout en assurant la persistance du stockage. Quant à la solution d'administration associée à Windows Server, alias OMS (pour Operations Management Suite), elle permet ensuite de suivre la disponibilité et la performance des containers déployés et d'en fédérer les logs.

"Nous proposons aussi Visual Studio Tools for Docker"

"Nous proposons aussi Visual Studio Tools for Docker pour gérer des images de containers depuis l'environnement de développement Visual Studio, et accéder aux différents registres de containers déployés", complète Pierre Chesne, architecte chez Microsoft France (voir le site de Microsoft pour plus de détails). Côté orchestrateurs de containers, Windows Server 2016 tire profit de Docker Swarm et Apache Mesos. Quant à Kubernetes, il commence à être également supporté par le serveur.

Une stratégie en ligne avec Azure

En cohérence avec son chantier de R&D autour de Windows Server, Microsoft œuvre en parallèle au portage de la technologie Docker sur son cloud. En 2016, le groupe de Satya Nadella a livré une première offre de Container as a service (CaaS) sur Azure. Baptisée Azure Container Service ou ACS, elle donne la possibilité de déployer des architectures containérisées en tirant profit de plusieurs orchestrateurs (Mesosphere DC/OS, Docker Swarm ou Kubernetes). En octobre de cette année, une seconde génération de CaaS a été dévoilée par Microsoft. Plus packagée, cette nouvelle version est optimisée pour déployer et piloter des architectures à grande échelle. Par défaut, elle met en musique ses clusters en s'adossant à Kubernetes, sachant qu'elle donne toujours la possibilité de recourir si besoin à Swarm ou DC/OS. Elle est baptisé AKS (le K venant remplacer le C, en référence à Kubernetes).

Cette orientation de Microsoft en faveur de Kubernetes, à la fois sur Azure et Windows Server, laisse entrevoir une stratégie de plus en plus cohérente en matière de container. En choisissant une brique de référence telle que Kubernetes (qui rappelons-le a été développé initialement par Google), Microsoft pourrait en effet offrir à ses clients une infrastructure de CaaS hybride, à travers laquelle les applications seraient pilotables de manière uniforme et intégrée, qu'elles soient basées sur Azure ou des systèmes internes compatibles avec Kuternetes... comme Windows Server (prochainement).