Docker Desktop pour Windows 10 va bientôt passer à la version deux du sous-système de Windows pour Linux,
quels sont les avantages pour les développeurs ?

Windows 10 Insider Preview Build 18917 a apporté de nombreuses nouveautés et améliorations, parmi lesquelles WSL 2 (Windows Subsystem for Linux 2). WSL 2 est une nouvelle version de l’architecture qui permet au sous-système Windows pour Linux d’exécuter des fichiers binaires ELF64 Linux sous Windows. Cette nouvelle architecture, qui utilise un véritable noyau Linux (Linux 4.19), modifie la façon dont ces binaires Linux interagissent avec Windows et le matériel de votre ordinateur, tout en offrant la même expérience utilisateur que dans WSL 1 (la version actuellement disponible en version stable). WSL 2 offre des performances de système de fichiers beaucoup plus rapides et une compatibilité totale des appels système, ce qui vous permet d'exécuter davantage d'applications comme Docker!

WSL 2 inclut donc un véritable noyau Linux qui vous permet d’exécuter davantage de logiciels Linux sous Windows et offrant de meilleures performances que WSL 1.

Cette nouvelle version de WSL 2 utilise les fonctionnalités Hyper-V pour créer une machine virtuelle légère avec un noyau Linux minimal. Il faut s’attendre à une meilleure compatibilité avec les logiciels Linux, y compris la prise en charge de Docker, et « une augmentation spectaculaire des performances du système de fichiers ».

Un véritable noyau Linux, la petite touche qui intéresse Docker

La nouvelle version du sous-système Windows pour Linux a donc apporté un véritable noyau Linux à Windows. Vous vous demandez probablement si cela est important, dans la mesure où WSL a déjà fait un excellent travail en émulant Linux ? À en croire Simon Ferquel, développeur logiciel senior chez Docker, cette avancée est très importante dans la mesure où elle entraîne un changement majeure dans la stratégie de l'entreprise concernant Docker Desktop.

Dans un billet sur le blog de l’entreprise, Ferquel a annoncé que Docker, la société derrière le logiciel libre du même nom qui permet facilement de lancer des applications dans des conteneurs logiciels, va abandonner la virtualisation Hyper-V, dont elle se sert actuellement pour son application Windows Docker Destop, pour se tourner vers WSL 2.

« L’un des objectifs de Docker a toujours été de fournir la meilleure expérience de travail avec les conteneurs d’un environnement de bureau, avec une expérience aussi proche du natif que possible, que vous travailliez sous Windows, Mac ou Linux. Pour ce faire, nous passons beaucoup de temps à travailler avec les piles de logiciels fournies par Microsoft et Apple. Dans le cadre de ce travail, nous surveillons de près le sous-système Windows (WSL) depuis son introduction en 2016, afin de voir comment nous pourrions en tirer parti pour nos produits.

Nom : desktop.png
Affichages : 3068
Taille : 220,0 Ko

« Le WSL d’origine était un effort impressionnant pour émuler un noyau Linux au-dessus de Windows, mais il existait des différences fondamentales entre Windows et Linux qui rendaient certaines choses impossibles à implémenter avec le même comportement que sous Linux natif, ce qui signifiait que c’était impossible d’exécuter Docker Engine et Kubernetes directement dans WSL. Au lieu de cela, Docker Desktop a développé une solution alternative utilisant les machines virtuelles Hyper-V et LinuxKit pour réaliser l'intégration transparente attendue et appréciée de nos utilisateurs.

« Microsoft vient d'annoncer WSL 2 avec un changement majeur d'architecture: au lieu d'utiliser l'émulation, ils fournissent en réalité un véritable noyau Linux s'exécutant dans une machine virtuelle légère. Cette approche est très proche de ce que nous faisons avec LinuxKit et Hyper-V sur le plan architectural, avec l’avantage supplémentaire qu’elle est plus légère et plus étroitement intégrée à Windows. Le daemon Docker fonctionne bien avec d'excellentes performances et le temps qu'il faut pour un démarrage à froid de dockerd dans WSL 2 est d'environ 2 secondes sur nos machines de développement. Nous sommes très enthousiastes à propos de cette technologie et nous sommes heureux d’annoncer que nous travaillons sur une nouvelle version de Docker Desktop exploitant WSL 2, avec une préversion publique prévue pour le mois de juillet. Cela rendra l'expérience Docker de développement avec des conteneurs encore plus grande, débloquera de nouvelles fonctionnalités et, comme WSL 2 fonctionne sous Windows 10 Home Edition, Docker Desktop le fera également ».

Quelle est la suite du programme ?

« Nous allons remplacer la machine virtuelle Hyper-V que nous utilisons actuellement par un package d'intégration WSL 2. Ce package offrira les mêmes fonctionnalités que la machine virtuelle actuelle de Docker Desktop : configuration en un clic de Kubernetes, mises à jour automatiques, configuration transparente du proxy HTTP, accès au démon à partir de Windows, montages de liaison transparents des fichiers Windows, etc. »

Ce package d'intégration contiendra les composants côté serveur requis pour exécuter Docker et Kubernetes, ainsi que les outils CLI utilisés pour interagir avec ces composants dans WSL.

Nom : dok1.png
Affichages : 2911
Taille : 62,7 Ko

Les avantages pour les développeurs

Lorsque vous utilisez Docker Desktop aujourd'hui, la machine virtuelle exécutant le démon est complètement opaque: vous pouvez interagir avec les API Docker et Kubernetes à partir de Windows, mais vous ne pouvez rien exécuter dans la machine virtuelle, à l'exception des conteneurs Docker ou des pods Kubernetes.

Avec l'intégration WSL 2, vous rencontrerez toujours la même intégration transparente avec Windows, mais les programmes Linux exécutés dans WSL pourront également faire de même.

Ce qui fera le bonheur des développeurs Docker, c’est qu’ils pourront développer simultanément des programmes conteneurisés Windows et Linux. Ferquel a déclaré que cela aurait « un impact considérable sur les développeurs travaillant sur des projets concernant un environnement Linux ou sur un processus de build adapté à Linux. Plus besoin de conserver les scripts de build Linux et Windows ! Par exemple, un développeur de Docker peut maintenant travailler sur le daemon Linux Docker sous Windows, en utilisant le même ensemble d'outils et de scripts qu'un développeur sur une machine Linux ».

Nom : wsl2_2_smaller.gif
Affichages : 2938
Taille : 1,87 Mo
Un développeur travaillant sur le démon Docker à l'aide de la préversion technique de Docker Desktop, de WSL 2 et de VS Code remote

« Combinés à “Remote to WSL” de Visual Studio Code, les espaces de travail Docker Desktop Linux permettront d'exécuter une chaîne d'outils Linux complète pour générer des conteneurs sur votre ordinateur local, à partir de votre IDE s'exécutant sous Windows », a également déclaré Ferquel.

Il affirme que les montages de liaison de WSL auront des performances d'E/S presque identiques à celles d'une machine Linux native. Cela résoudra l’un des principaux problèmes liés à Docker Desktop avec des chaînes d’outils lourdes en E/S. NodeJS, PHP et d'autres outils de développement Web bénéficieront de cette amélioration.

Performance

Avec WSL 2, Microsoft a déployé des efforts considérables en termes de performances et d’allocation de ressources: la machine virtuelle est configurée pour utiliser une allocation de mémoire dynamique et peut planifier le travail sur tous les processeurs de l’hôte, tout en consommant aussi peu (ou plus) de mémoire qu’elle nécessite - dans les limites de ce que l'hôte peut fournir, et de manière collaborative aux processus win32 s'exécutant sur l'hôte.

Docker Desktop en tirera parti pour améliorer considérablement sa consommation de ressources. Il utilisera le moins de ressources processeur possible, ainsi que la mémoire dont il a besoin, et les tâches gourmandes en ressources CPU / mémoire, telles que la création d'un conteneur, s'exécuteront beaucoup plus rapidement qu'aujourd'hui.

En outre, le temps nécessaire pour démarrer une distribution WSL 2 et le démon Docker après un démarrage à froid est extrêmement rapide (2 secondes sur les ordinateurs de développement de Docker, contre des dizaines de secondes dans la version actuelle de Docker Desktop). Cela ouvre la porte aux optimisations de la durée de vie de la batterie en différant le démarrage du démon au premier appel d'API et en arrêtant automatiquement le démon lorsqu'il n'exécute aucun conteneur.

Les préversions techniques de Docker Desktop pour WSL 2 seront disponibles en juillet et pourront fonctionner parallèlement aux versions plus anciennes basées sur Hyper-V, ce qui permettra aux utilisateurs des versions de Windows Insider de comparer les performances et les ensembles de fonctionnalités.

« Dans les mois à venir, nous ajouterons davantage de fonctionnalités jusqu'à ce que l'architecture de WSL 2 soit utilisée dans Docker Desktop pour toutes les personnes utilisant une version compatible de Windows », a conclu Ferquel.

Source : Docker

Et vous ?

Utilisez-vous Docker Desktop ? Sur quelle plateforme ? Qu'en pensez-vous ?
Que pensez-vous de cette décision ?

Voir aussi :

JetBrains propose aux Docker Captains des licences gratuites sur tous ses produits desktop dans le cadre de son programme "Developer Recognition"
Des milliards de dollars gaspillés dans les startups Hadoop, il en serait de même pour Docker, la blockchain, et l'intelligence artificielle
RubyMine 2019.1 bénéficie de la prise en charge intégrale de Factory Bot, des améliorations apportées à Docker et d'autres nouveautés
Docker Hub piraté : 190 000 comptes exposés, les jetons GitHub révoqués et les compilations désactivées
Oracle supprime une image Docker approuvée par la communauté et utilisée lors des tests sur son SGBD, évoquant une violation de ses droits d'auteur