Les containers Docker, nouvelle coqueluche du Cloud

Un article de Kareen Frascaria, Responsable Etudes et Innovations chez Linkbynet, initialement paru sur le blog www.oeildelink.fr

Docker a le vent en poupe. Certains comparent même l’excitation autour de cette technologie de containers Linux à celle que VMware a su créer à ses débuts de la virtualisation x86.

C’est dire ! Ces derniers jours, l’engouement est monté d’un niveau,
suite à deux annonces coup sur coup de deux acteurs de taille : Redhat a annoncé contribuer au projet Opensource en développant son propre projet Atomic et AWS a annoncé intégrer Docker dans son PaaS Elastic BeansTalk.

Pourquoi un tel engouement ? La technologie, qui se présente comme une alternative ultra légère à la virtualisation classique, enlève une grande partie des contraintes et permet le déploiement des applications dans le cloud. Pour les développeurs, le Sacré Graal du PaaS est enfin atteint !

Docker, c’est donc à la fois un projet Open Source avec une communauté très active – des centaines de contributeurs – et une start-up du même nom, créée par l’architecte à l’origine de la technologie, sponsor principal du projet. Téléchargée plus de 400 000 fois, la solution Open Source a déjà été adoptée par de grands noms du cloud tels que RackSpace, Yandex, Open Stck, Baidu, eBay ou encore Spotify et prévoit de se développer, outre aux États-Unis où elle est déjà présente depuis ses débuts, en Europe et en Asie.

Pour la petite histoire

Si l’on en croit le résumé sur le site de l’Epitech, Solomon Hykes, promo 2006, réfléchit dès sa sortie de l’école à la création d’un PaaS simple et efficace. L’idée de dotcloud est née. Créée officiellement en 2008 avec un autre ingénieur Epitech (promo 2009), cette start-up commence d’abord une activité de consulting afin de financer la R&D et le projet open source. Les débuts sont difficiles, notamment pour la recherche d’investisseurs, compliquée à cause du faible nombre de business angels spécialisés dans les nouvelles technologies en France. Mais en 2010, Solomon postule au YCombinator, un incubateur de la Silicon Valley. Ce dernier offre 20 000 dollars à l’équipe contre un faible pourcentage du capital de l’entreprise, qui a trois mois pour développer son produit et le présenter à une conférence organisée avec des investisseurs : dotcloud fait mouche et lève 800 000 dollars.

26 millions de dollars en trois tours de table

Depuis, l’engouement n’a jamais cessé. En 2011, la société lève 10 millions de dollars provenant d’investisseurs de grandes sociétés comme Yahoo!, Apple, Benchmarck et Trinity. Une réussite consacrée par le magazine américain Forbes, qui a désigné Solomon Hykes comme l’un des « 30 under 30 », dans la catégorie « Technology ». En mars 2013, Dotcloud change de nom pour prendre celui de sa techno, Docker et se dote d’un CEO américain. Début 2014, un troisième tour de table lui permet de lever 15 millions de dollars auprès de Greylock Partners, de Insight Ventures et des précédents investisseurs (Benchmark, Trinity Ventures, Jerry Yang – co-fondateur de Yahoo!). On s’en doute, des offres de rachat ont déjà émergé.

Le container docker, une VM ultra light

Docker, c’est donc un container à base Linux. Si un tel principe de container Open Source n’est pas nouveau (Parallels, Solaris l’ont démocratisée depuis un bail pour la virtualisation), Docker en est une déclinaison destinée à l’automatisation du déploiement de n’importe quelle application. Docker est parfois assimilé à un Puppet ou un Chef pour les applications, sorte de combinaison magique entre virtualisation et automatisation. En pratique, à chaque application est associé un ou plusieurs containers nécessaires au fonctionnement de celle-ci. Un fichier Dockerfile listant les opérations nécessaires est associé à chaque container. Chaque Dockerfile est versionné.

Performant avec n’importe quelle application

Parce qu’il s’appuie sur LXC et ne gère pas les machines virtuelles complètes, comme KVM ou VMware, Docker est très léger et peu consommateur de ressources. Et c’est son énorme avantage. Le container peut ainsi être exécuté n’importe où et réalise les rêves les plus fous des développeurs. Ces derniers peuvent en effet ainsi déployer un même container sur plusieurs plateformes en production sans modification. Le container lui-même n’est pas difficile : il peut tourner aussi bien sur un serveur physique, une machine virtuelle, un cluster Openstack, des instances cloud publiques, ou n’importe quelle combinaison des quatre. Avec Docker, il devient super facile :

– d’automatiser le déploiement d’applications ;

– de « scaler » ces applications ;

– d’automatiser les tests et l’intégration ;

– de créer un environnement PaaS léger ;

– de faciliter la « SaaSification » des applications, un usage qui va devenir de plus en plus important.

 

C’est donc une technologie parfaite pour des mises à jour rapides.

Comparaison rapide avec les VM traditionnelles

containers-versus-VMTous les containers partagent le même OS et les mêmes librairies. De cette manière, ils sont beaucoup plus petits que les VM « classiques ». De plus, redémarrer un container ne nécessite pas de rebooter l’OS. Les containers sont donc dans de nombreux cas plus efficaces et plus portables que les VM. Enfin, avec une VM traditionnelle, chaque application, chaque copie d’application ou chaque modification de l’application requiert de créer une nouvelle VM. Dans le cas d’un container Docker, il suffit pour une nouvelle application d’avoir ses binaires/librairies, sans aucun besoin d’un nouvel OS hôte. Il devient aussi possible de faire tourner plusieurs copies de la même application sur un hôte sans avoir à tout recopier. Si une modification est faite dans l’application, il ne suffit que de copier les différences.

Top