> Tech > Le futur de la virtualisation applicative dans le cloud, et si on pensait docker ?

Le futur de la virtualisation applicative dans le cloud, et si on pensait docker ?

Tech - Par Cédric Bravo - Publié le 11 juin 2015
email

En octobre 2014, Microsoft Corp et Docker annonçaient la mise en œuvre d'un partenariat stratégique visant à intégrer la technologie Docker directement dans Windows Server Vnext.

Le futur de la virtualisation applicative dans le cloud, et si on pensait docker ?

Qu’est-ce vraiment que Docker ? Cette technologie va-t-elle révolutionner la façon de délivrer et de consommer les applications ?

Docker est une technologie de virtualisation applicative. Avant toute chose, il faut dire que la virtualisation applicative n’est pas vraiment une nouveauté, notamment sous Linux où cette technologie est développée depuis environ 15 ans. Alors la « Dockerisation » n’estelle qu’une nouvelle technologie de virtualisation applicative ? La réponse est oui. Mais avant de développer, il est peut être nécessaire de faire un peu d’histoire. Depuis la nuit des temps, les hommes ont survécu en chassant des animaux et en s’abritant dans des grottes. Puis, ils découvrirent le feu et un beau jour, ils décidèrent de virtualiser leurs applications… enfin en gros. Comme la nourriture ou le fait d’avoir un abri, la virtualisation applicative répond à un besoin essentiel des travailleurs du numérique : délivrer rapidement et facilement des programmes pour le reste de la planète.

Le problème

Dans la vraie vie, une même application peut avoir à s’exécuter dans des environnements très différents. Systèmes d’exploitation, librairie, emplacements etc. Quand un développeur conçoit et fait fonctionner une application sur sa station de travail, il doit réfléchir à la manière dont il va pouvoir délivrer cette application sur des machines qui n’auront pas forcément les mêmes caractéristiques ou les mêmes prérequis. Le « packaging », c’est-à-dire la manière dont l’application va être distribuée et installée représente dès lors un coût non négligeable. Aujourd’hui, ce système a atteint ses limites car il ne permet pas de faire tourner dans le même environnement des programmes qui ne disposent pas de prérequis communs ou qui n’utilisent pas les mêmes versions de librairie.

On est alors obligé de disposer d’une plateforme d’exécution différente. La virtualisation système (x86) a, un temps, constitué une réponse satisfaisante à ce problème en nous permettant de réduire le nombre de serveurs physiques nécessaires… mais le réveil est rude, car nous nous retrouvons aujourd’hui avec des milliards de machines virtuelles à gérer ! Vous l’aurez compris, l’enjeu de la virtualisation applicative est double. D’un côté, faciliter la mise à disposition des applications, et de l’autre, faire économiser des milliards à l’industrie du hosting en améliorant la densité des Datacenters.

Le concept

En créant une abstraction entre le matériel et le système d’exploitation, la virtualisation x86 nous a permis de supprimer les adhérences qui nous liaient au « monde physique ». En plus d’améliorer le taux d’utilisation du matériel, il est désormais possible de déplacer un serveur virtuel d’un Datacenter à un autre sans aucune interruption de service. Dans ce concept, l’application et son environnement d’exécution sont indissociables du système d’exploitation (on considère que l’OS fait partie intégrante de l’environnement d’exécution). La virtualisation applicative n’est que le prolongement de ce même concept d’abstraction. Tout comme un hyperviseur s’intègre entre le matériel et le système d’exploitation, le moteur de virtualisation applicative s’insère entre l’application et le kernel du système d’exploitation, créant un environnement d’exécution « virtuel ». L’application embarque non seulement son code, mais aussi l’ensemble des éléments nécessaires à son exécution (librairie, binaires etc.). On rend alors l’application indépendante de son système d’exploitation, ce qui facilite l’intégration et la cohabitation. On améliore dès lors la densité d’application par OS.

Docker va-t-il remplacer la virtualisation x86 ?

Soyons clair et concis, la réponse est non. La virtualisation applicative ne répond pas aux mêmes problématiques que la virtualisation x86 et n’offre pas non plus les mêmes garanties. La virtualisation applicative est une abstraction avec le système d’exploitation. Si elle permet de standardiser et de normaliser les échanges avec le Kernel, l’application a toujours besoin du système d’exploitation pour fonctionner. La virtualisation x86, quant à elle, nous assure l’abstraction nécessaire avec le monde physique et assure la mobilité et la haute disponibilité.

Virtualisation applicative et virtualisation x86, better together

Avec la virtualisation applicative, les applications partagent le même système d’exploitation. Cela implique entre autres, qu’elles partagent le même espace mémoire. Dans ces conditions, cette technologie n’est pas compatible avec le Multi-Tenants. L’isolation entre différents Tenants c’est justement ce que sait très bien faire la virtualisation x86. Ces deux technologies trouvent donc ici une parfaite complémentarité. Pour résumer, la virtualisation applicative est une technologie destinée à faciliter le déploiement et à améliorer la consolidation, mais pas à héberger de multiples tenants sur un même OS.

Comment expliquer l’engouement pour Docker et sa très forte progression ?

Open Source

La progression de Docker peut s’expliquer par plusieurs facteurs. Pour commencer, Docker est basé sur une technologie Open Source (Linux Container ou LXC), ce qui est un point important pour séduire les principaux fournisseurs de services du Cloud.

Standardisation

LXC est issu de partenariat entre de nombreux poids lourds de la « mise en container » comme Google, RedHat, Parallel. Tout comme Open Virtualization Format (OVF) définit le container standard d’une machine virtuelle, LXC entend définir une interface standardisée pour la virtualisation applicative.

The developpers, the developpers, the developpers…

Docker s’adresse principalement aux développeurs et leur fournit de nombreux outils. Build automatique, versionning partage communautaire… ce qui facilite leur travail et leur permet d’accélérer la mise à disposition de leur application. La grande variété de container partagé par la communauté permet d’imaginer qu’une application ne sera plus constituée d’un unique «container  applicatif », mais de multiples containers spécialisés chacun dans une fonction particulière. Le développement devenant une sorte de jeux de Lego.

Pour conclure…

On l’a compris, Microsoft qui amorce depuis quelques années un virage vers le Cloud ne pouvait rester éloigné de cette révolution en marche. Les principales technologies de virtualisation applicatives actuellement disponibles dans le monde Microsoft (ThinApp et App-V pour ne citer qu’elles) sont principalement tournées vers les ingénieurs système et sont donc finalement peu adaptées au Cloud Computing, royaume qui verra couronner l’informaticien de demain, à savoir, le développeur. La disponibilité de machines virtuelles Docker dans Azure, et le partenariat visant à intégrer cette technologie dans la prochaine version de Windows Server promet sans nul doute de définir la virtualisation applicative comme le standard de déploiement pour de très nombreuses charges applicatives dans la prochaine décennie.

Téléchargez gratuitement cette ressource

Comprendre et stopper les menaces chiffrées

Comprendre et stopper les menaces chiffrées

Comment les cybercriminels dissimulent leurs attaques sur votre réseau via SSL/TLS et comment vous protéger efficacement contre les menaces chiffrées.

Tech - Par Cédric Bravo - Publié le 11 juin 2015