Phénomène

Docker et ses containers font des vagues

| Mise à jour
par Rodolphe Koller

Alors que la première release de Docker date de moins d’une année, sa technologie de containers applicatifs suscite un énorme engouement de la part des développeurs et des fournisseurs cloud. Explication d’un phénomène révélateur des tendances du moment.

Depuis l’an dernier, la société Docker et son produit éponyme agitent le monde de l’informatique. La firme qui vient de lever 95 millions de dollars de financement suscite d’innombrables commentaires sur les blogs spécialisés, des communautés de développeurs se forment – Docker Geneva compte près de 200 membres – et les fournisseurs cloud se pressent d’annoncer leur compatibilité avec la technologie en vogue. Le moins que l’on puisse dire c’est que la baleine, logo de Docker, n’en finit pas de faire des vagues.

Qu’est-ce que Docker?

A l’origine de la société, on trouve le Français Solomon Hykes. Installé dans l’incubateur californien Y Combinator, il développe la technologie de Docker comme socle du service PaaS dotCloud. En 2013, le jeune entrepreneur opère un virage et se centre sur Docker dont il fait un projet open source. L’engouement est immédiat et la première véritable release de la solution sort en juin 2014. Depuis, les annonces s’enchaînent avec notamment le lancement des premiers produits commerciaux en décembre dernier et une levée de fonds ce printemps qui porte la valorisation de la firme à environ un milliard de dollars.

Qu’est-ce donc que Docker? Solomon Hykes, désormais CTO de la société explique: «Docker est une plateforme destinée aux développeurs et administrateurs systèmes pour construire, déplacer et exécuter des applications distribuées».  De fait, Docker est une extension des containers déjà présents dans Linux. Plutôt que de se concentrer sur les atouts des containers en termes de performance et de densité, la start-up s’est employée à enrichir la technologie pour faciliter et accélérer la livraison d’applicatifs. La plateforme se compose ainsi d’un outil pour packager et exécuter tout type d’applications (Docker Engine) et d’un service cloud pour héberger et partager les applications ainsi containerisées (Docker Hub). A ces deux composants de base sont venus s’ajouter dernièrement de nouveaux outils, dont un hub installable par les entreprises sur leur propre infrastructure.

Containerisation et virtualisation

Contrairement aux outils de virtualisation, auxquels il est souvent comparé, Docker propose une abstraction du système d’exploitation et non de l’OS. En d’autres termes, le container tourne au-dessus de Linux et ne contient que l’application et ses «dépendances». Si bien qu’un applicatif containerisé est bien plus léger et rapide à lancer qu’une machine virtuelle, et qu’il peut tourner sur tout système équipé d’un kernel Linux supporté (laptop, machine virtuelle, cloud) sans aucune adaptation.

A son désavantage néanmoins, le fait de partager l’OS comme ressource entre plusieurs containers rend ceux-ci moins hermétiques qu’un hyperviseur, et soulève certaines critiques quant à sa sécurité. De même la solution manque encore d’outils d’orchestration lorsqu’il s’agit de faire tourner des containers sur des clusters. Des problèmes de jeunesse qui seront sans doute peu à peu résolus directement par Docker ou grâce à la vitalité de l’écosystème naissant autour de sa solution.

Intégration continue, microservices, DevOps

Alors que les outils de virtualisation sont généralement employés par les spécialistes infrastructure, Docker est essentiellement destiné aux développeurs et c’est à eux qu’il doit son succès. «Les développeurs doivent se focaliser sur la programmation et ne pas se préoccuper de la configuration de l’infrastructure», explique Dave Bartoletti, analyste chez Forrester. De fait, la portabilité des containers facilite le basculement entre les environnements de développement, de test et de production et accélère in fine le déploiement des applicatifs.

Julia Mateo, Senior Developer chez Hortis à Genève, a testé la solution sur une application développée avec le serveur d’intégration continue Jenkins, puis «dockerisée» à l’aide d’un plugin et finalement déployée sur un environnement de test. «J’apprécie de pouvoir créer un fichier unique (Docker file) pour déployer l’application sur n’importe quelle machine sans avoir à customiser des environnements différents, explique la développeuse. On évite les erreurs de manipulation et le démarrage est bien plus rapide qu’avec une VM». Autre atout pour les développeurs, la simplicité des commandes de Docker. «La complexité est transférée à la création du Docker file, mais l’apprentissage est rapide», atténue Julia Mateo, active au sein de la communauté Docker de Genève.

L’engouement pour Docker s’explique aussi par son inscription dans les tendances actuelles en matière de développement. La solution facilite notamment la création d’applications distribuées. Avec Docker, les développeurs peuvent containeriser et partager les microservices qui composent les applicatifs modernes.

Les containers répondent également au besoin de collaboration étroite entre les développeurs et les spécialistes de l’infrastructure, en d’autres termes les DevOps. Les applications packagées sous la forme de containers peuvent être déployées vite et simplement par les équipes système sur une large gamme de serveurs. Docker est aussi supporté par la plupart des outils de gestion des configurations populaires auprès des DevOps, comme Chef ou Puppet.

Un moteur pour le cloud

L’agitation autour des containers de Docker est particulièrement visible du côté des plateformes IaaS et PaaS. Souvent eux-mêmes utilisateurs assidûs de containers, les fournisseurs cloud leaders ont tous annoncé ces deniers mois le support de Docker. Amazon Web Services permet de lancer des applications «dockerisées» depuis EC2 et propose un service pour gérer les containers sur un cluster d’instances (ECS). Idem pour Google Engine qui, outre le support et l’emploi intensif de Docker, a ouvert une version simplifiée de propre outil d’orchestration Kubernetes. Dans le même élan, IBM a annoncé l’intégration de Docker à son cloud hybride Bluemix et une solution spécialement destinée aux entreprises (IBM Enterprise Containers).

Même Microsoft a trouvé le moyen d’intégrer Docker, en dépit du fait que celui-ci requiert un kernel Linux. La firme de Redmond a notamment annoncé la disponibilité de machines virtuelles Ubuntu intégrant le Docker Engine pour le déploiement d’applications containerisées sur son cloud Azure. Microsoft prévoit également de proposer prochainement des containers Docker sur Windows Server.

L’engouement des fournisseurs cloud est compréhensible. Supporter la technologie de Docker, c’est s’assurer que les applications containerisées n’échoueront pas dans d’autres nuages. Quand bien même cela signifie aussi qu’il sera plus aisé pour les entreprises de déplacer leurs applicatifs vers un cloud concurrent.

Faut-il adopter Docker?

Enthousiasme chez les développeurs, adhésion des fournisseurs cloud, et les entreprises? Doivent-elles se presser d’adopter la nouvelle technologie? Selon Dave Bartoletti de Forrester, cela dépend de plusieurs facteurs tels que le type d’applications développées et supportées, leur efficacité et extensibilité actuelle, ou encore les défis rencontrés dans le processus de release.

Pour les entreprises qui se décident, l’analyste appelle à considérer les aspects suivants: l’efficacité de leurs serveurs va augmenter grâce à la légèreté des containers; Docker convient particulièrement aux nouvelles applications distribuées ne nécessitant pas le niveau d’isolation offert par la virtualisation; Docker peut étendre les possibilités de déploiement dans le cloud; la technologie open source va au devant de problèmes de jeunesse.

Mais Dave Bartoletti rappelle aussi que la livraison rapide d’applicatifs est aujourd’hui un facteur de compétitivité: «Les applications web et mobiles sont les moyens par lesquels les entreprises attirent retiennent et ravissent leurs clients, et la première entreprise à proposer une meilleure app gagne».

Lire aussi l'interview de Sébastien Goasguen, Citrix EMEA Open Source Cloud Computing Evangelist.

Webcode
3499

Kommentare

« Plus