Conteneurisation et Virtualisation : où se situe le point de bascule ?
Les technologies permettant de scinder une charge de travail informatique (calcul, chargement, processus, etc.) du matériel sur lequel elle repose se distinguent selon deux catégories : les technologies de virtualisation d’un côté et les technologies de conteneurisation de l’autre.
Bien que l’utilisation de l’une ou l’autre de ces technologies puisse être motivée par des objectifs techniques différents, un des bénéfices certain qui soit commun à ces deux solutions est l’optimisation des investissements matériels et logiciels.
La réalité économique et stratégique des entreprises utilisant ces solutions montre que leur adoption reste cependant partagée. Avec l’avènement de la conteneurisation moderne (via Docker) beaucoup d’éléments laissaient penser qu’elle allait prendre le pas sur les technologies de virtualisation. Mais la question s’avérerait moins tranchée qu’il n’y parait.
Machines virtuelles et conteneurs : ce qui différencie la virtualisation de la conteneurisation
Les machines virtuelles et les conteneurs permettent de séparer un workload du matériel sous-jacent, mais les deux approches présentent des différences importantes qu’il convient de connaître.
La virtualisation permet, via un hyperviseur, de simuler une ou plusieurs machines physiques et de les exécuter sous forme de machines virtuelles (VM) sur un serveur. Chaque machine virtuelle est dotée d’un OS sur lequel les applications qu’elles supportent sont exécutées.
Parmi les technologies de virtualisation, VMWare, Xen (détenue par Citrix) et KVM (qui s’appuie sur OpenStack pour la partie Hyperviseur et bénéficie du support RedHat) se classent parmi les plus populaires et les plus utilisées.
Une des forces majeures de VMware réside dans son écosystème et dans l’ensemble des outils mis à disposition pour configurer, déployer et administrer un parc de machines virtuelles. Des fonctionnalités comme la possibilité de migrer des machines virtuelles d’un cluster de serveur à un autre ou la haute-disponibilité des services fournis, sont des caractéristiques sur lesquelles la solution fait autorité.
Dans le cadre de la conteneurisation, le container fait directement appel à l’OS de sa machine physique hôte pour exécuter ses applications. Les conteneurs, partagent le noyau de l’hôte à partir duquel ils sont déployés. Ainsi, il n’est pas nécessaire d’avoir recours à un hyperviseur pour gérer l’ensemble des machines virtuelles qui s’exécuteront via les conteneurs déployés.
Parmi les technologies de conteneurisation, on retrouve Docker ou encore son concurrent direct mais moins connu, CoreOS. Docker, dans sa version entreprise, est orchestré par Swarm, bien qu’à terme, il semble que Kubernetes semble être la solution qui prendra le dessus.
L’avantage de cette solution, dont Docker est le représentant le plus en vue, est qu’elle apporte une rapidité de déploiement et de mise en service non négligeable lors de la création des conteneurs et de l’installation des applications qui y seront hébergées. La logique d’architecture de microservices où chaque application est conteneurisée y étant fondamentale.
En clair, il devient beaucoup moins contraignant de migrer un conteneur (du fait de son faible poids) d’une machine physique à l’autre, tout en rendant la portabilité d’une application d’un cloud à l’autre très aisée (à la condition que l’environnement cloud ciblé soit optimisé pour l’accueillir). Docker ayant su packager l’ensemble des composants dans une seule plateforme.
Ainsi, dupliquer une application sur deux environnements cloud distincts, équilibrer une charge de travail en s’appuyant sur une répartition entre deux cloud ou envisager un plan de reprise d’activité ou de continuité d’activité, devient en théorie, plus simple.
La virtualisation répondrait donc majoritairement à des besoins d’infrastructures là où la conteneurisation répondrait à des besoins d’hébergement d’applicatifs.
Une légère avance de la conteneurisation face à la virtualisation ?
En 2014, IBM publiait un comparatif de performance entre Docker et KVM. Il y est décrit que Docker égale ou excède les performances de la technologie de virtualisation open source KVM. La vélocité des containers Docker se rapprocherait même de celle des serveurs machines nus. En éliminant la couche de virtualisation, consommatrice en ressources, Docker permettrait de réduire la consommation de RAM de 4 à 30 fois.
Mais est-ce pour autant la fin de la virtualisation ? Visiblement non et pour plusieurs raisons.
La virtualisation de serveurs physiques a depuis longtemps été intégré au SI de nombreuses entreprises et ne semble pas interchangeable si facilement. Pour passer à un environnement entièrement conteneurisé, a fortiori de taille conséquente, cela nécessiterait de repenser totalement l’architecture virtualisée. La couche hyperviseur permet de partitionner efficacement différents systèmes d’exploitation sur un serveur, là où le procédé de conteneurisation va nécessiter que chaque serveur ait le même système d’exploitation.
Pour de nombreuses entreprises ayant recours à des services de gestion du réseau, de gestion de l’authentification, de gestion des postes de travail, de documents partagés ou encore de téléphonie, les technologies de virtualisation restent robustes et maîtrisées par les administrateurs. Il peut donc s’avérer difficile de repenser l’architecture IT dans une version conteneurisée.
Pour Jay Lyman, analyste principal du cabinet 451 Research, la persistance des données et la sécurité du multi-tenant sont également des points critiques dans la virtualisation d’applications, jouant a priori en faveur des VMs. C’est donc en partie sur cet aspect lié à la sécurité du multi-tenant, que le point de bascule s’opère entre des entreprises optant pour les conteneurs et d’autres pour les machines virtuelles.
Mais il est aussi reconnu que la conteneurisation, en plus d’être portable, apporte une vitesse et une flexibilité qui vient naturellement bousculer des certitudes établies depuis longtemps quant au parti pris pour la virtualisation. Christian Ligier, Responsable des ventes EMEA chez RedHat, met d’ailleurs en avant les avantages de la conteneurisation : « Le provisionnement d’un serveur physique nécessite plusieurs jours, celui d’une machine virtuelle 10 minutes et celui d’un conteneur 10 secondes, assure-t-il. Le futur est la livraison des services sur conteneurs qui offrent un véritable gain de temps pour sa mise en application mais aussi en termes d’image pour l’entreprise. » (Source.)
Les nouveaux défis de la virtualisation
Si les technologies de conteneurisation ne supplantent pas (encore) celles de virtualisation, ces dernières doivent relever de nouveaux défis pour pourvoir attester d’arguments fonctionnels et techniques leur permettant à plus long termes, de jouer à jeu égal avec les technologies de conteneurisation.
Exemples de points d’amélioration :
- L’attente des utilisateurs en matière de provisionnement de services sur des instances virtualisées est de plus en plus forte en termes de délai et de réactivité. Le besoin de déployer de nouvelles ressources dans des temps de plus en courts, pousse ainsi les administrateurs à se diriger vers les cloud publics comme AWS. L’objectif étant de réduire la complexité de gestion de l’infrastructure en accédant à des outils d’automatisation, des capacités de stockage, de trainement, de mémoire et de mise en réseau, dans des délais courts.
- Les équipes en charge de la virtualisation d’une infrastructure, en cas de dysfonctionnement, peuvent être amenées à manquer de visibilité sur l’intégralité des composants de la plateforme, dans la mesure où la répartition des responsabilités pour le maintien de la solution peut se faire entre des équipes serveurs, des équipes stockages, des équipes réseaux etc. Il sera donc important dans une logique de virtualisation, d’améliorer le support dédié à l’infrastructure virtualisée en fournissant notamment à l’ensemble des administrateurs un outil unique de monitoring global de la plateforme.
- Un dernier facteur d’amélioration, prérequis auprès de nombreuses entreprises en 2018, est le renforcement de la sécurité des infrastructures virtualisées, des applications et des données qui y sont hébergées. L’intégration d’un plan de reprise d’activité ou de continuité d’activité est dorénavant envisagée dans de nombreux cas de figure. La migration de machines virtuelles d’un environnement vers un autre, en matière de sécurité, fait l’objet d’attentes fortes parmi les DSI.
Dans une logique proche, certaines entreprises se tournent de plus en plus vers des processus automatisés d’externalisation de sauvegardes de machines virtuelles, pour anticiper en cas d’incident une récupération rapide de leurs instances virtuelles et des paramétrages associés.
Lancez votre projet d’infrastructure virtualisée. Contactez-nous.