Questions et réponses sur Docker sur Windows – Deuxième édition
Caractéristiques principales
- Windows est un citoyen de premier ordre des conteneurs Docker. Vous pouvez conduire à plein. Applications NET Framework et nouvelles. Applications NET Core dans les conteneurs Windows – sur le même serveur
- Il est facile de commencer avec Docker. Vous pouvez commencer à zéro et obtenir des applications s'exécutant dans des conteneurs Windows en une journée – si vous apprenez avec le bon livre 🙂
- Selon l'enquête 2019 de StackOverflow, Docker est la plate-forme numéro 1 la plus recherchée par les développeurs. Mais ce n'est pas seulement pour les développeurs: Docker simplifie la livraison, augmente l'efficacité et réduit également le coût des opérations.
- Vous pouvez exécuter des applications anciennes dans des conteneurs sans modification, créer de nouvelles applications greenfield dans des conteneurs et utiliser Docker pour moderniser l'architecture d'applications de type «brownfield», le tout avec le même ensemble d'outils.
- Les conteneurs Windows sont maintenant prêts pour la production. Docker Swarm prend en charge les nœuds Windows depuis 2014 et prend désormais en charge Kubernetes Windows. Vous avez donc le choix entre plusieurs plates-formes de conteneur.
Le livre Docker sur Windows – Deuxième édition d’Elton Stoneman explique aux lecteurs comment exécuter des applications anciennes et nouvelles dans des conteneurs Docker sous Windows: modernisation de l’architecture, amélioration de la sécurité et optimisation de l’efficacité.
InfoQ a interrogé Stoneman sur les modifications importantes apportées à la deuxième édition de Docker sous Windows, les cas d'utilisation typiques, les avantages des pipelines CI / CD, la conteneurisation, le guidage, le fonctionnement et la collaboration entre Microsoft et Docker.
InfoQ: Pourquoi avez-vous écrit une mise à jour de Windows dans le livre Docker? Qu'est-ce qui a changé entre la première (2017) et la deuxième version (2019) de votre livre?
Elton Stoneman: Les conteneurs Windows étaient une toute nouvelle fonctionnalité de Windows Server 2016. Les équipes de Docker et de Microsoft ont fait un excellent travail en apportant la philosophie et l'expérience utilisateur des conteneurs Linux à Windows, mais certaines lacunes techniques fonctionnaient différemment dans Windows. Windows Server 2019 ferme ces trous afin que vous puissiez faire à peu près tout avec les conteneurs Windows, comme vous pouvez le faire avec des conteneurs Linux. Cela ouvre de nouvelles possibilités passionnantes que je voulais couvrir dans le livre. Mais je ne voulais pas faire une petite mise à jour, alors pour la deuxième édition, j'ai écrit chaque test pour utiliser la dernière version de Docker, avec Windows Server 2019 et Windows 10.
InfoQ: Quelles sont les utilisations typiques de Windows sur Docker? Y a-t-il plus d'utilisations qu'il y a deux ans?
Stoneman: Je le pense Les cas originaux sont pour les applications plus anciennes et plus anciennes. Vous pouvez déplacer d'anciennes applications dans des conteneurs Windows sans modification du code, ce qui est un excellent moyen de faire passer des applications à partir d'anciennes versions de Windows vers une plate-forme moderne. Pensez à une application .NET Framework 2.0 s'exécutant sous Windows Server 2008 – elle sera bientôt sans support. Vous pouvez mettre à jour cette application vers .NET 4.7 sur Windows Server 2019 dans un conteneur uniquement avec un fichier Dock et aucune modification de l'application.
La prochaine est les applications Brownfield. Ce sont de vieilles applications monolithiques qui sont encore en développement actif. Il est difficile d’ajouter de nouvelles fonctionnalités aux gros monolithes sans risque. Par conséquent, il existe généralement une phase de régression importante, même pour le plus petit changement. Avec Docker, vous pouvez exécuter le monolithe d'origine dans un conteneur et répartir les fonctions dans de nouveaux conteneurs distincts dotés de leurs cycles de test et de validation. Il vous offre de nombreux avantages d’une architecture de microservice sans passer deux ans à réécrire votre application. Il existe certains modèles établis pour l’utilisation des proxies inversés et des files de messages que je couvre en détail dans le livre.
Et le nouveau cas d'utilisation est celui des applications greenfield. Microsoft a travaillé dur pour réduire la taille des images Docker pour Windows, en particulier avec Nano Server. Il est désormais possible de créer des applications pour les images Windows Docker, petites et légères. Cela signifie qu'ils sont plus rapides à partager, qu'ils fonctionnent plus efficacement et qu'ils ont une surface plus petite pour les attaques potentielles. Cela fait de Windows un excellent choix pour les équipes qui souhaitent construire des architectures natives en nuage, mais ne sont pas à l'aise avec Linux.
InfoQ: Comment bénéficier des pipelines CI / CD en ce qui concerne Windows sur Docker?
Stoneman: Les pipelines deviennent ridiculement faciles avec Docker. Vous tapez un fichier Dock pour emballer votre application et il peut avoir plusieurs étapes. Un modèle typique consiste à compiler l'application en une étape et à compiler le fichier binaire compilé à l'étape suivante. Toutes ces étapes ont lieu dans des conteneurs, votre étape de compilation est donc placée dans un conteneur sur lequel le SDK est installé. La phase finale comprend l'exécution de l'application sans outils supplémentaires dans le SDK.
Cela signifie que Docker est le seul à compter sur la création et l'exécution d'applications, de sorte que vous n'avez pas à perdre de temps à développer des serveurs et à maintenir la boîte à outils synchronisée avec l'équipe de développement. Votre pipeline est littéralement `git clone` puis then` docker build`. Ça va trop plein. Les applications NET Framework et. NET Core – Vous n'avez besoin d'aucune version de .NET pour la construction et l'exécution. Applications NET avec Docker.
En fin de compte, cela signifie que vous pouvez utiliser n’importe quel serveur de compilation (ou service géré) prenant en charge Docker – et ils font à peu près tout. Que ce soit Jenkins ou Azure DevOps, les scripts de construction de pipeline ne sont que de simples commandes Docker.
InfoQ: Vous avez consacré un chapitre entier à la conteneurisation et aux conseils pour la mise en œuvre des quais. Pouvez-vous résumer ceci, s'il vous plaît?
Stoneman: Pas question – tu devrais aller acheter le livre. Je plaisante 🙂 Docker est facile à prendre en main. Vous pouvez obtenir un fichier de dockeur fonctionnel pour exécuter votre application dans un conteneur Windows en quelques jours à peine, même à partir de zéro. Mais le chemin de la production sera plus difficile car vous modifiez fondamentalement le fonctionnement de vos applications. Vous devrez implémenter de nombreuses parties différentes de votre organisation, et elles auront toutes un merci différent pour ce que les conteneurs représentent pour elles. En résumé, le guide est le suivant: créez une petite preuve de concept avec une application que vous connaissez bien; Faites-le fonctionner et présentez-le aux personnes qui vont le produire. Le livre conseille de créer des objets de valeur qui conviennent aux groupes de gestion, d’opérations et de sécurité.
InfoQ: Le livre utilise des études de cas du monde réel pour la mise en œuvre de dockers. Souhaitez-vous donner quelques bonnes pratiques?
Stoneman: Dans le livre, je couvre quelques projets sur lesquels j'ai travaillé et où Docker a fait une grande différence en ce qui concerne le plan de livraison, en passant le relais aux ops et au support continu de l'application. Pour tous ces scénarios, les meilleures méthodes sont les mêmes: optimiser les fichiers Docker et ajouter des vérifications de l'état, la consignation et les calculs. Cela vous donnera une grande partie du moyen de distribuer des applications à réparation automatique, où la plate-forme de conteneur maintient votre application en marche, même s'il ne s'agit pas d'une défaillance de conteneur ou de serveur. Et ce n'est pas difficile à faire – j'ai un certain nombre de cours polyvalents qui aideront. Essayez de vous moderniser. NET Apps avec Docker et surveillance de la santé des applications conteneurisées avec Docker.
InfoQ: Qu'en est-il de la partie opérationnelle du menu fixe? Pouvez-vous nous dire quelles tendances vous voyez aujourd'hui?
Stoneman: Ce qui est bien, c’est que la section ops est la même pour toutes vos applications et tous vos environnements. Vous pouvez avoir un cluster de machines exécutant Docker, mélange de serveurs Linux et Windows. Sur le cluster, vous pouvez exécuter de toutes nouvelles applications de micro-service dans des conteneurs Linux, des applications plus anciennes dans des conteneurs Windows et des applications Brownfield à l'aide d'une combinaison de conteneurs Windows et Linux. Vous distribuez, gérez, mettez à jour et surveillez tous ces programmes, de la même manière, en utilisant les mêmes outils.
Ce qui est intéressant maintenant, c’est que Windows est pris en charge par les deux principaux orchestrateurs de chars – Docker Swarm et Kubernetes. Swarm prend en charge Windows depuis 2016, donc il est très solide. C'est un excellent choix si vous débutez, car il est intégré au Docker et il est extrêmement facile à utiliser. Les fournisseurs de services Sky se sont concentrés sur Kubernetes, en partie parce qu’il est plus facile à intégrer en tant que service géré. Windows a récemment rejoint GA dans Kubernetes, nous verrons donc bientôt tous les clouds prenant en charge les nœuds Windows. Kubernetes ne gère que les conteneurs Docker, ce qui vous permet de migrer facilement de Swarm à Kubernetes si vous le souhaitez.
InfoQ: Pour finir, comment vous êtes-vous connecté à Docker et Microsoft?
Stoneman: J'ai des connaissances d'initiés ici car je travaille pour Docker et je suis un MVP Microsoft 🙂 Sur le plan technique, l'équipe Docker et l'équipe Windows Server travaillent en étroite collaboration depuis 2014 pour obtenir des conteneurs Windows à la parité avec les conteneurs Linux. Au niveau commercial, je ne peux pas en dire trop, mais c’est une excellente occasion d’aider les entreprises à envoyer de meilleurs logiciels plus rapidement, et Microsoft et Docker travaillent ensemble pour y arriver. Au niveau client, c'est une bonne histoire, car les licences pour Windows Server 2016 et 2019 incluent Docker Enterprise. Vous bénéficiez donc d'une assistance à la production pour les conteneurs Windows et Microsoft Docker.
A propos de l'auteur du livre
Elton Stoneman MVP Microsoft depuis 2010 et rédacteur Pluralsight depuis 2013. Avant de rejoindre Docker, il a travaillé pendant 15 ans en tant que consultant, en architecture et en solutions de grande envergure et performantes, basés sur .NET et optimisés par Windows, Docker et Azure. Il aime travailler sur le nouveau développement de Microsoft Stack et aide les gens à comprendre les grandes opportunités de modernisation des applications .NET Framework existantes avec Docker et de les exécuter avec de nouvelles applications .NET Core dans des conteneurs Windows et Linux.
Commentaires
Laisser un commentaire