Nouveau format, nouveau DevOps : Docker joue des coudes pour exister

Coincé entre Kubernetes qui s’impose petit à petit comme un standard pour les containers et Red Hat qui outille de plus en plus la migration en cloud, Docker invente les packages CNAB et remet les informaticiens dans la boucle des DevOps.

Des applications que l’on pourra tester et valider sans sortir de l’entreprise, puis qui fonctionneront ensuite directement dans tous les cloud. Voilà en substance, la promesse que Docker entend faire aux entreprises en publiant ces jours-ci les préversions de Docker Desktop Enterprise et de l’utilitaire Docker App capable de packager des applications au nouveau format CNAB. Les problématiques qu’adresse ici Docker étaient néanmoins déjà résolues par d’autres acteurs dans le domaine des containers.

« Nous sommes une entreprise commerciale, nous devons innover pour que nos concurrents ne revendiquent pas être les seuls à faire du container. Et au final cette compétition bénéficiera à nos clients communs. Cela dit, plus que la concurrence, nous sommes pour la coopération. Et les autres acteurs sont les bienvenus pour coopérer sur nos choix », a répondu au MagIT Steve Singh, le CEO de Docker, lors de l’événement européen DockerCon qui s’est tenu courant décembre à Barcelone.

Le format CNAB arrive face au format Helm

Le format CNAB (Cloud Native Application Bundle) est aux clusters de containers ce qu’un package .deb ou .rpm est aux environnements Linux : un seul fichier sert à distribuer une application et à l’installer automatiquement avec toutes ses dépendances. Plus aucune intervention technique ne serait à faire : il suffirait de déposer un fichier CNAB chez Azure, AWS et autres hébergeurs de cloud, pour que l’infrastructure de Container-as-a-Service (CaaS) sous-jacente, mette en route toute seule la bonne puissance de calcul, le bon OS et les bons services.

Bénéficiant d’une certaine promotion de la part de Microsoft, le format CNAB vient toutefois concurrencer des projets déjà existants, dont le format Helm. Ce dernier sert à déployer des applications clés en main sur des clusters de containers Kubernetes, a priori le modèle le plus fréquent parmi les infrastructures CaaS. Helm a la préférence de la fondation CNCF (sous-branche de la Linux Foundation) et le soutien de Google (qui est à l’initiative de Kubernetes). Tandis que le format CNAB bénéficiera de son côté d’une intégration à Microsoft Visual Studio et fonctionnera en plus avec des clusters de containers Swarm.

En somme, pour Docker, l’inventeur du principe technique des containers, il n’est toujours pas complètement acceptable de laisser ses rivaux ériger Kubernetes en standard. Rappelons que l’orchestrateur Swarm – édité par le même Docker - a pour l’heure l’avantage de fonctionner indifféremment par-dessus des serveurs Windows ou Linux, alors que Kubernetes ne cohabite bien qu’avec des serveurs Linux. Mais c’est un détail : qu’importe le serveur physique sous-jacent, tous savent lancer une VM Linux pour Kubernetes.

Remettre les informaticiens dans la boucle DevOps

De rivalité il est encore question avec Docker Desktop Entreprise, qui entend grappiller des parts de marché aux outils DevOps de test et de validation, notamment ceux de Red Hat dans OpenShift. Docker Desktop Entreprise est la déclinaison commerciale du logiciel communautaire Docker Desktop, disponible sur Windows et macOS. Celui-ci permet aux développeurs de mettre leurs applications en production tout seuls, en tapant au clavier des commandes systèmes qui placent les différentes parties du code dans des containers.

Les containers – qui ont fait le succès de Docker auprès de 1,4 million d’utilisateurs depuis 2014 – sont ce principe technique qui permet de publier directement une application sur un cloud qui dispose du nécessaire pour l’exécuter, ce qui évite de devoir demander à chaque fois à un informaticien d’aller installer un nouveau Linux ou autre. Mais cela pose aussi le risque que le développeur publie du code qui ne corresponde pas aux règles de fonctionnement et de sécurité de l’entreprise.

La version Enterprise de Docker Desktop corrige le problème en réintroduisant le service informatique dans la boucle. Livrée avec les orchestrateurs Swarm et Kubernetes, elle permet de tester et de valider simplement l’application depuis le réseau interne, dans un environnement naturellement sécurisé par la DSI. Docker Enterprise Desktop est de plus personnalisable par la DSI en un paquet MSI (pour les postes Windows) ou PKG (pour Mac) afin de distribuer aux développeurs des versions personnalisées, avec des templates-types de sorte que leurs codes correspondent aux standards de l’entreprise. Ces templates sont applicables par le développeur via une interface graphique, lui évitant de surcroit l’étape de la ligne de commande.

« Il faut voir Docker Desktop Entreprise comme une volonté de démocratiser Docker auprès des entreprises qui font encore du développement traditionnel, depuis des postes Windows ou Mac, sous l’autorité de la DSI ; un modèle que nous rencontrons chez 90 % de nos clients », commente Nicolas Muller, développeur senior et architecte JEE chez Treeptik, une SSII spécialisée dans la conduite de projets agiles.

Il applaudit volontiers ce retournement de situation en faveur des DSI : « nous constatons sur le terrain que personne n’a réussi à se passer des informaticiens, car il s’agit dans la plupart des cas de mettre en production des applications métier, qui fonctionnent avec des serveurs d’applications à entretenir et des règles de sécurité à respecter », ajoute-t-il.

Selon lui, les outils dits « DevOps » qui sont censés permettre aux développeurs d’être autonomes, finissent d’ailleurs assez souvent par n’être utilisés que par des « Ops », c’est-à-dire des informaticiens. Et LeMagIT a pu constater que c’est aussi souvent le cas avec les produits équivalents de Red Hat.

Demain, Docker mettra lui aussi les applications monolithiques en containers

La validation technique par la DSI de la publication des applications en containers était depuis un an le fonds de commerce de l’environnement OpenShift de Red Hat. Celui-ci est entretemps passé à la vitesse supérieure, en promettant qu’OpenShift allait bientôt savoir exécuter en containers les anciennes applications monolithiques (ce qui lui a entre autres valu de se faire racheter par IBM en fin d’année dernière). On sait à présent que Docker a bien l’intention de s’aligner jusqu’au bout sur la stratégie de son concurrent.

« Jusque-là, Docker a appuyé la transformation des entreprises en leur permettant de développer plus facilement de nouvelles applications en cloud. L’étape suivante est de moderniser en cloud le SI existant », a ainsi indiqué Steve Singh.

Au cours de son événement à Barcelone, l’éditeur révélait qu’il lancerait courant 2019 un nouvel outil DAC (Docker Application Converter), capable de transformer une vieille application coincée dans le datacenter en containers utilisables depuis un cloud public. Un atelier faisait notamment la démonstration d’une conversion en une poignée de minutes d’un code vieux de dix ans écrit pour .Net 3.5.

DAC identifiait d’abord automatiquement les ressources nécessaires (différents Windows Server 2008, en l’occurrence), puis déployait l’application entière dans un container, avec d’autres containers à côté, pour héberger les couches fonctionnelles des antiques serveurs Windows sur lesquelles cette application avait été validée.

Docker ne pourra pas forcément compter sur le soutien exclusif de Microsoft cette fois-ci, puisque l’éditeur s’est déjà félicité de son partenariat avec Red Hat autour de la conversion des applications historiques depuis Virtual Studio.

Pour approfondir sur Open Source

Close