Bonneville : VMware adopte les conteneurs Docker
VMware vient d’officialiser le support des conteneurs Docker dans vSphere 6. Le projet Bonneville offre un runtime Docker directement ancré dans l’hyperviseur afin de gérer chaque conteneur Docker comme une VM tout en offrant une moindre consommation de ressources.
Lors de la DockerCon 2015, VMWare a dévoilé une preview de « Project Bonneville », le runtime d’exécution des images Docker dans vSphere dont nous anticipions l’existence en octobre dernier. Et comme nous l’évoquions, cette technologie est effectivement basée sur Instant Clone (ex Project Fargo), la fonctionnalité de clonage quasi instantanée d’une VM en cours d’exécution.
La fusion des virtualisations
Nombre d’entreprises se penchent aujourd’hui sur les atouts de Docker et de la virtualisation applicative, se demandant parfois si celle-ci n’est pas - au final - une voie alternative à la virtualisation matérielle façon VMware ESXi ou Microsoft Hyper-V.
VMware, comme Microsoft, explique à qui veut l’entendre que ces technologies ne sont pas concurrentes mais complémentaires. C’est vrai jusqu’à un certain point. Ce sont davantage les scénarios de déploiement et d’implémentation des logiciels sur les infrastructures existantes qui définissent si ces technologies de virtualisation se complètent ou se substituent l’une à l’autre.
VMware, comme Microsoft, est clairement conscient de cette dichotomie. C’est pourquoi ces éditeurs s’évertuent désormais à prendre en compte la virtualisation des applications au-dessus de leurs hyperviseurs afin d’en optimiser le fonctionnement et d’en intégrer la gestion au sein des outils de gestion de l’infrastructure virtualisée. Leur argument est que les applications conteneurisées doivent, en fin de compte, être placées en production sur une infrastructure en place et déjà largement virtualisée. Dès lors, il est plus logique d’exploiter Docker au sein de cette infrastructure plutôt que d’assembler une infrastructure spécialement pour les applications s’appuyant sur Docker.
Des conteneurs gérées comme des VMs
C’est dans cette optique que VMware a donc officialisé son projet Bonneville. Celui-ci permet à l’hyperviseur ESXi de gérer directement des conteneurs Docker en intégrant un runtime Docker. Il permet surtout une intégration naturelle des conteneurs au sein de la plateforme VMware vSphere de sorte que les administrateurs puissent utiliser les processus et les outils de gestion qu’ils maîtrisent, tels que vCenter, pour piloter le cycle de vie des conteneurs.
Le projet Bonneville télécharge les images Docker depuis Docker Hub ou les Docker Private Repositories et démarre chaque conteneur dans sa propre machine virtuelle de sorte que chaque conteneur se retrouve isolé, offrant une approche multi-tenant absente de Docker - revendiquée par des technologies alternatives telles que Rocket. Pour minimiser la surcharge générée par l’encapsulation de chaque conteneur au sein de sa propre VM, Bonneville fait appel à la technologie Instant Clone de vSphere 6. Cette dernière économise les ressources en permettant aux VMs clonées de partager la mémoire et les données de la VM d’origine.
Comment ça marche ?
Jusqu’à présent, le seul moyen d’exploiter les conteneurs Docker sous VMware consistait à créer une VM Linux et d’y faire tourner Docker. En procédant ainsi, non seulement on est obligé de réserver des ressources du datacenter avant même d’exécuter le moindre conteneur, mais on introduit des complexités supplémentaires imposant aux administrateurs de gérer la VM Linux en plus du conteneur.
Le projet Bonneville évite la réservation de ressources inutiles (il n’y a plus à allouer de capacités pour l’hôte Docker), permet d’économiser des ressources lors de l’exécution de multiples conteneurs et offre une vue directe et transparente aux administrateurs sur les conteneurs en cours d’exécution et sur l’endroit du datacenter où ils s’exécutent.
Du point de vue du développeur, Bonneville se présente comme un Docker normal. La différence : lorsqu’on démarre un conteneur avec le Runtime Bonneville, le conteneur est directement embarqué dans un hyperviseur. Chaque conteneur est isolé en offrant les mêmes garanties d’isolation qu’une VM classique.
Dans un billet de présentation sur le blog VMware, Ben Corrie, ingénieur logiciel du projet, explique que « l’approche générale de Bonneville est de considérer que le conteneur est une VM et que la VM est un conteneur. Il n’y a pas de distinction, pas d’encapsulation, pas de virtualisation en mode invité. Toute l’infrastructure nécessaire au conteneur réside hors de la VM dans le conteneur hôte, autrement dit le hardware x86 virtualisé. ».
Bonneville est actuellement en « Technical Preview » et entrera en phase bêta privée cet automne. Sa disponibilité finale n’est pas attendue avant début 2016. La version actuelle n’accepte que les conteneurs Docker, mais il y a fort à parier que la version finale supportera le nouveau format OCP (Open Container Project) lancé durant la DockerCon 2015. On ignore encore si VMware a l’intention de commercialiser Bonneville et ses outils associés, ou si l’éditeur compte rendre cette fonctionnalité gratuite.