Docker casse la machine virtuelle

Par:
francoistonic

ven, 13/06/2014 - 11:58

Docker est une autre manière de voir le déploiement sur l’infrastructure virtualisée, sur le IaaS. Typiquement, une machine virtuelle traditionnelle embarque le système hôte, les librairies nécessaires et les applications. Ce qui alourdit considérablement la VM. Mais Docker (plus précisément le Docker Engine) se concentre uniquement sur la partie applicative et librairies (application et dépendances). Le Docker Engine se plaçant sur l’infrastructure. Chaque « VM » fonctionne dans une espace isolé comme une VM classique mais Docker assure le partage entre les conteneurs du kernel. 

Il faut bien comprendre que Docker s’appuie sur la notion de conteneur, le plus petit possible et se réduit à l’application et à l’ensemble des dépendances techniques (binaires, librairies, etc.). On minimise ainsi le poids de la « VM » mais on assure une portabilité maximum, à condition que les autres infrastructures utilisent aussi Docker. Docker casse la VM actuelle qui est très dépendante de l’infrastructure serveur, de l’hyperviseur, du format, etc. 

Ce n’est pas un hasard si Google Cloud Platform a annoncé l’arrivée des conteneurs Docker. Pour ce faire, Google Compute Engine (partie IaaS) propose le runtime Docker préinstallé permettant rapidement de créer des conteneurs Docker sur son espace IaaS. Les images incluent les fichiers et les agents nécessaires pour fonctionner selon la notion de conteneur Docker. Ce service est pour le moment en préversion. Les images conteneurs Google utilisent uniquement Debian, avec Docker. Mais seul, Docker aurait peu d’intérêt dans la plate-forme cloud de Google. Là où l’histoire devient intéressante, c’est l’intégration Compute Engine et App Engine, donc le IaaS et le PaaS. Le but est simple : déployer les applications sur les conteneurs Docker… C’est une autre approche de l’hydridation IaaS – PaaS.

Docker utilise des fonctions Linux et s’appuie sur son noyau système mais Windows n’est pas oublié. Pour se faire, Docker utilise une VM légère pour faire tourner Windows Docker. Idem pour OS X. Voir :https://docs.docker.com/installation/windows/

Docker propose donc une autre approche de la VM et de la manière de déployer des applications sur le cloud. Il est cependant difficile de comparer Puppet / Chef avec Docker, car les modèles de fonctionnements ne sont pas identiques. 

Docker casse radicalement la VM traditionnelle pour proposer autre chose. Il tente de une sorte de fusion entre le IaaS et le PaaS et capable d’être portable sur tout environnement cloud ou infrastructure privé utilisant Docker. Fini les VM, les formats non compatibles, etc. Est-ce là l’infrastructure, le IaaS, nouvelle génération ?

François Tonic cloudmagazine.fr