En annonçant CNAB, une offre pour servir de base à un « standard universel » destiné à simplifier de manière significative l'informatique distribuée, Docker et Microsoft ont frappé fort. Les deux partenaires ne comptent d'ailleurs pas en rester là et ont annoncé lors du Dockercon Europe 2018 à Barcelone (3-5 décembre), mettre en place leur propre fondation cloud native avec « trois ou quatre » autres parties non encore identifiées. Scott Johnston, chef de produit chez Docker, pense que le « Cloud Native Application Bundle » aura « autant d'impact dans la communauté des développeurs que les conteneurs Docker lors de leur lancement ». Développé en partenariat avec Microsoft, le Cloud Native Application Bundle est destiné à simplifier l’exécution de plusieurs services packagés. Le CNAB, agnostique en terme d'environnement, se dit capable de gérer des sources multiples comme Kubernetes YAML, les diagrammes de Helm, les fichiers Docker Compose, CloudFormation, Terraform ou les modèles ARM comme un paquet unique.
Scott Johnston a ainsi expliqué au cours d'une table ronde avec la presse lors de l'événement barcelonais que l'entreprise planchait depuis un certain temps sur ce problème, en réponse aux réactions des clients et de la communauté des développeurs en général. Et, il y a un an environ, « Microsoft est venue frapper à la porte » en disant que l’entreprise rencontrait des défis similaires liés à la gestion de la complexité. Docker et Microsoft ont convenu que la similitude des défis avec leurs bases de clients distinctes - mais aussi l’équipe de services Azure en interne - justifiait une collaboration sur un cahier des charges commun. « Ce projet ne concerne pas uniquement les conteneurs Docker. Il va mobiliser de plus en plus de gens », a avancé M. Johnston qui estime que le CNAB est appelé à devenir « une norme universelle pour les applications distribuées ». Plus important encore, le CNAB n’est pas une technologie propriétaire ni de Docker, ni de Microsoft. Le bundle accepte les fichiers Compose, les diagrammes de Helm, Kubernetes YAML, les artéfacts serverless. « Il a été conçu pour supporter tous les artefacts quels qu’ils soient en tant que composants d'une application distribuée, pour pouvoir les décrire de façon immuable. Cela permet de profiter des avantages des conteneurs Docker, mais appliqués aux applications distribuées à composants multiples ».
Le CNAB selon Docker
Après le lancement, un hébergement du CNAB dans une fondation à gouvernance conjointe est également envisagé. « Comme il s'agit d'une norme de définition d'application, il est dans l'intérêt de tous de rendre ce logiciel libre et largement disponible », a encore déclaré Scott Johnston. « Microsoft et Docker ont convenu de livrer le projet en open source sous licence Apache 2 ». Microsoft et Docker comptent attirer dans la fondation « beaucoup plus » d’acteurs industriels, notamment « trois ou quatre » acteurs majeurs dont le nom n’a pas été dévoilé, sans doute issus du secteur du développement et des opérations, des domaines avides de simplicité, un peu à l’image du partenariat récent de Docker avec Salesforce.
Docker définit le Cloud Native Application Bundle (CNAB) comme une « spécification open source, sans cloud, pour emballer et exécuter des applications distribuées ». « Le CNAB unifie la gestion d’applications multi-services distribuées à travers différentes chaînes d'outils dans un format d'emballage unique tout-en-un. La spécification CNAB permet de définir les ressources qu’il est possible de déployer dans n'importe quel ensemble d'environnements d'exécution et d'outils, Docker inclus ». Selon M. Johnston, en informatique distribuée, s’il est relativement facile de gérer et de déployer un seul conteneur, l’équation change quand des applications sont définies par plusieurs conteneurs, et toutes les différentes dépendances sur lesquelles elles reposent peuvent entraîner une grande complexité. « Comme nous le disent les entreprises qui se retrouvent à gérer des milliers de fichiers Compose, c'est vraiment un défi du point de vue de la gestion des versions », a déclaré Scott Johnston. « Elles doivent gérer un jeu de fichiers Compose pour leur environnement de simulation, un autre jeu pour leur environnement de production... Elles y arrivent, mais elles aimeraient bien que la tâche soit plus facile ! »
Est-ce que ça peut marcher ?
En pratique, un flux de travail CNAB ressemble à un flux Docker actuel. En théorie, l'idée est de construire, livrer et exécuter cette application comme on le ferait avec un seul conteneur. « Ce même flux de travail, cette même étape du cycle de vie fonctionnent avec un artefact Docker App ou un artefact CNAB », a expliqué Scott Johnston. « Ce qui est vraiment important ici, c'est que cela ne se limite pas à Docker Compose... C'est immuable, mais nous avons externalisé les paramètres de façon à pouvoir les modifier selon l'environnement. Ça évite d’avoir plusieurs copies de la même application selon l'environnement. Ça simplifie le déploiement et la gestion de ces applications tout au long de leur cycle de vie ». Bref, peu importe le méli-mélo de fichiers et de configurations, ces applications distribuées peuvent être livrées aux opérations sans que l'équipe d'exploitation ait besoin de connaître tous les détails de l'application et des dépendances qui la composent.
On ne compte plus le nombre de fois où l’on entend parler de « complexité » dans une conférence de développeurs ou d'infrastructure cloud, sans que cela ait un effet potentiellement négatif. Il semble qu’il y a une forte appétence pour le déploiement et la gestion d'environnements complexes en se passant des experts, aussi importants soient-ils. Le fait que Microsoft, engagée depuis peu en faveur de l'open source, et que Docker, une entreprise qui a transformé le paysage, sont fermement impliquées dans ce projet laisse penser qu’il pourrait sérieusement modifier les règles du jeu en matière de déploiement et de surveillance des applications à l'échelle.
Randy Heffner, vice-président de Forrester, et analyste principal Application Development & Delivery Professionals, a déclaré que cette annonce reflétait tout à fait « les besoins actuels ». « Nous verrons si le CNAB est, ou non, la bonne réponse », a-t-il déclaré. « Mais cela fait partie des choses dont nous avons besoin pour rendre la complexité des microservices - actuellement à la pointe de la technologie - accessible au plus grand nombre, et il semble que ce soit exactement l’objectif de ce projet. En soi, c'est une bonne chose et il sera intéressant de voir ce qu’il en ressort ».