Depuis plusieurs mois, un raz de marée déferle sur le petit monde de la virtualisation avec l'arrivée de Docker. .
Docker, la révolution est en marche…
Docker se présente comme la prochaine évolution des environnements virtualisés et promet une exploitation encore plus fine des ressources de votre infrastructure. La révolution est en marche et vous ne l’arrêterez pas…
La virtualisation étant devenue un standard de fait, on l’exploite à différent niveaux et pour différentes raisons (Infrastructure, Sécurité, Optimisation, Développement, Maquette, Déploiement, Qualification…). J’en passe et des meilleurs…
La virtualisation telle que nous la connaissons de nos jours
Rappelons que le principe le plus répandu de la virtualisation permet d’avoir un serveur physique qui mutualise l’exécution de plusieurs systèmes d’exploitation et des applications associées. Ce package est appelé machine virtuelle (Système d’exploitation + Applications + Configuration).
Les avantages sont nombreux :
- Economie de ressources (matériel, espace, électricité…).
- Isoler chaque application pour éviter les conflits potentiels.
- Affecter les ressources adéquates à la machine virtuelle en fonction des besoins de l’application.
- Contrôler l’impact sur les ressources lors des éventuels dysfonctionnements.
- Déployer facilement la machine virtuelle mais aussi, l’exporter, la sauvegarder, la restaurer.
- Limiter l’adhérence au matériel pour offrir une administration simplifiée. On peut ainsi déplacer facilement une machine virtuelle d’un serveur physique à l’autre.
Mais des inconvénients persistent :
- L’exécution du module de virtualisation consomme des ressources.
- Les ressources associées aux systèmes d’exploitation hébergés dans les machines virtuelles consomment beaucoup de ressources et sont proportionnelles au nombre de serveurs hébergés.
- Les ressources associées aux composants nécessaires aux applications sont elles aussi proportionnelles au nombre de serveurs hébergés.
- La machine virtuelle incluant la configuration du système d’exploitation, la duplication atteint rapidement ces limites liées aux conflits des machines qui sont, par exemple, membres d’un domaine Active Directory.
Ainsi, à grande échelle, ce sont des centaines voire des milliers de machines virtuelles qui s’exécutent en parallèle avec autant de systèmes d’exploitation et de ressources perdus car dupliqués.
Ce que propose Docker Docker est un projet initialement créé par Solomon Hykes (Français ayant fait ses études à Epitech mais n’ayant pas trouvé les financements en France pour développer son projet ici … sic…) par l’intermédiaire de sa société DotCloud. Suite au succès de la plateforme, les fondateurs de DotCloud décidèrent de rendre le projet Open Source par l’intermédiaire de Docker Inc.
L’idée de base de Docker est de créer des conteneurs applicatifs permettant de faciliter le déploiement des applications.
En effet, Docker ne se positionne pas au même niveau qu’un Hyperviseur comme Hyper-V ou VMware. Les composants de virtualisation de Docker ne vont pas virtualiser du matériel mais plutôt les ressources que le système d’exploitation met à disposition des applications
Comme le montre le schéma ci-dessus, l’implémentation de Docker va limiter les couches applicatives successives par lesquelles l’application doit passer pour s’exécuter et donc permettre une meilleure exploitation des ressources.
Les premiers benchmarck, notamment réalisés par IBM sont sans appel : Docker égale ou excède les performances des technologies de virtualisation (KVM dans le cas des tests de IBM) et ce dans tous les cas testés. Les performances étant alors très proches de celles des serveurs physiques.
En éliminant la couche Hyperviseur, Docker permet naturellement de réduire la consommation de RAM de 4 à 30 fois selon les scénarios. Ce qui contribue à optimiser l’utilisation des serveurs et leur consommation d’énergie qui reste l’un des principaux postes de dépenses des datacenters.
Docker va s’exécuter sur un système d’exploitation qui peut lui-même être virtualisé et va exploiter les applications packagées dans des conteneurs. Les conteneurs intègrent donc l’application, les prérequis de ces applications (middleware, bibliothèques, …) et éventuellement la configuration initiale.
Actuellement, l’implémentation de Docker s’appuie sur des librairies Linux et son déploiement sur Windows ou Mac OS X passe par des machines virtuelles déployées par l’assistant d’installation de Docker. Mais cela va bientôt changer…
Docker permet, au lieu d’administrer des instances de machines virtuelles, d’administrer des instances applicatives que l’on pourra déplacer, dupliquer, déployer sur une autre plateforme Docker à partir du moment où les composants requis, qui ne sont pas embarqués dans le conteneur, soient présents sur la plateforme cible.
Les avantages de la plateforme Docker
• L’application est packagée de manière spécifique dans le conteneur afin d’intégrer le minimum nécessaire à son bon fonctionnement. D’où une économie en espace disque.
• Un seul système d’exploitation mutualisé pour optimiser les ressources et l’exécution des applications. On a ainsi, par exemple, une seule configuration réseau accompagné de ses paramétrages de sécurité.
• Exécution de plusieurs versions de la même application mais dans des instances isolées
• Déploiement et transport des applications facilités et bénéficiant de la taille réduite des conteneurs et de l’abstraction matériel/système.
Docker pourrait permettre de basculer une application entre les clouds d’Amazon, Google et Microsoft très facilement…
Implémentation de Docker sous Windows
En prenant un peu de recul sur les précédentes descriptions, on peut sentir monter un sentiment de déjà vu … Docker présente à peu de chose près les même avantages / caractéristiques que App-V, ThinApp et consort. Ces technologies appelées communément Virtualisation applicative, permettent de packager une application pour en faciliter le déploiement.
App-V, par exemple, est issu du rachat de SoftGrid par Microsoft en 2000 et permet de séquencer une application afin d’en contrôler son installation (streaming), son lancement (bulle applicative évitant les conflits) et son exécution (les personnalisations de l’application par l’utilisateur restent propres à l’utilisateur).
L’application peut être déployée sur un serveur (Service de bureau à distance) ou directement sur les postes de travail. La comparaison entre Docker et App-V est donc facile, car les deux technologies sont construites avec le double objectif de simplifier l’installation et l’exécution du programme.
Malgré cela, Docker et Microsoft ont annoncé un partenariat fort dans lequel Microsoft va intégrer les technologies Docker directement dans ces différents produits. Les premiers résultats se matérialisent par un client Docker disponible nativement sur Windows via la plateforme GitHub et par des hôtes Docker (sous Linux) s’exécutant sur Windows Azure directement administrable via les outils Docker.
Et le meilleur arrive avec une intégration de la technologie directement dans Windows Server 2016 permettant d’exécuter des conteneurs au format Docker. L’implémentation va s’appuyer sur une couche appelée « Operating System Virtualization Layer » qui reprend les principes de App-V avec la virtualisation d’accès aux ressources du système d’exploitation. Selon Microsoft, deux types de conteneurs seront disponibles sur Windows Server 2016, les conteneurs Windows et les conteneurs Hyper-V.
(((IMG8178)))
La principale différence entre les deux implémentations se caractérise par une fonctionnalité supplémentaire dans les conteneurs Hyper-V permettant une exploitation optimale dans les environnements d’hébergement multi-tenants. Dans ces déploiements à grande échelle, la capacité de gérer complètement la séparation des conteneurs de la clientèle permet de fournir la sécurité et les ressources appropriées.
Par contre, rien ne laisse penser que les conteneurs sur Windows seront compatibles avec les conteneurs sous Linux et réciproquement. Cela semble logique car la structure des fichiers et les composants des deux systèmes sont trop éloignés l’un de l’autre.
Actuellement les technologies de Docker ne sont pas présentes dans les previews de Windows Server 2016. Microsoft planifie pour le moment les premières implémentations dans la prochaine version preview avec les conteneurs Windows. L’implémentation des conteneurs Hyper-V devrait arriver plus tard dans l’année. De plus, on suppose qu’une intégration à la technologie Nano Server arrivant aussi avec Windows Server 2016 fera l’objet d’une attention particulière par Microsoft.
Téléchargez cette ressource
Livre blanc Sécurité et Stockage des documents
Découvrez dans ce livre blanc Kyocera les outils logiciels qui permettent une approche holistique et efficace de la collecte, du stockage, de la gestion et de la sécurisation des documents en entreprise.