Virtualisation ou conteneurs (ou les deux) ?

Virtualisation et conteneurs se partagent aujourd’hui la vedette. Souvent, les deux sont associés. Toutefois rien n’empêche de casser les habitudes. En déployant par exemple les conteneurs en bare metal. Ou en remplaçant la conteneurisation en VM par de la Nested Virtualization.
 
 
 
 

Aux débuts étaient les serveurs. Puis vint la virtualisation. Et tout le monde l’adopta. Puis vinrent les conteneurs. Et le monde IT s’empressa une nouvelle fois de les adopter.

Des conteneurs déployés au sein de machines virtuelles : c’est l’option devenue la plus courante. Pourquoi ? Faute d’autre possibilité, répondront d’un haussement d’épaules nombre d’informaticiens. De fait, les serveurs modernes étant massivement virtualisés, le déploiement des conteneurs se fait naturellement au sein de machines virtuelles.

Bare metal : pour les gros acteurs seulement ?

Un choix logique donc… mais aussi contesté par certains. Si le degré d’abstraction proposé par les conteneurs – qui packagent applications, outils et librairies dans un même ensemble – est suffisant, pourquoi rajouter une couche d’abstraction supplémentaire ? De plus en plus, la tentation de déployer les conteneurs en bare metal se fait sentir.

Cette approche est aujourd’hui employée par certains grands noms du Cloud, qui grappillent ainsi quelques ressources machine en éliminant la virtualisation de l’équation. Sur des infrastructures Cloud plus restreintes, ce choix reste souvent déconseillé. Argument donné, il est contre-productif de séparer l’infrastructure en deux camps : les serveurs dédiés à la virtualisation d’une part ; ceux dédiés aux conteneurs en bare metal de l’autre.

Fin du débat donc ? Non, car cette dichotomie n’a pas lieu d’être. Avec une allocation fine des ressources, il n’y a aucune raison pour que conteneurs et des machines virtuelles ne puissent pas un jour être déployés tous deux en bare metal sur un même serveur. Côté à côte donc. Cette approche n’est pas à négliger.

Le pourquoi de l’association conteneurs + virtualisation

Mais après tout, faire fonctionner des conteneurs au sein de machines virtuelles, est-ce un mal ? Non. À condition de savoir pourquoi on fait ce choix.

Déployer un conteneur sur une machine virtuelle (VM) minimaliste peut permettre de faire des économies en ressources. Entre faire fonctionner 100 VM sur un serveur et 10 VM contenant chacune 10 conteneurs, le choix est vite fait. L’option 2 devrait probablement grandement alléger la charge imposée au serveur.

Cette stratégie était préconisée par feu-Sun Microsystems, à l’époque où il avait lancé les Zones, une technologie de conteneurs dédiée à Solaris (qui fonctionnait alors parfaitement sur les serveurs x86 de HP). L’idée : quelques machines virtuelles par serveur et des dizaines de conteneurs dans chacune.

Une option plus légère que du tout virtualisé donc. Et imposée par le fait que les VM ne peuvent fonctionner au sein de VM. Vraiment ? Des techniques de Nested Virtualization permettent en fait de faire fonctionner des VM dans des VM, via la paravirtualisation ou des hyperviseurs spécifiques. Des VM légères pourraient donc tout à fait aller concurrencer les conteneurs dans les machines virtuelles. Gros conteneurs ou petites VM ? Le choix vous appartient.

David Feugey, ex-rédacteur en chef de Silicon.fr