> Tech > Docker : mais pour quoi faire ?

Docker : mais pour quoi faire ?

Tech - Par Renaud ROSSET - Publié le 12 mai 2016
email

Docker répond à une vraie problématique.

Docker : mais pour quoi faire ?

Embarquant une application ou un service au sein d’un container qui pourra s’exécuter sur n’importe quel type de serveur – aujourd’hui Linux et bientôt Windows Server 2016. L’idée est d’apporter une solution puissante pour faciliter le déploiement des applications dans les infrastructures Cloud de n’importe quelle taille mais aussi On-Premise. Le système d’exploitation sous-jacent est virtualisé vis-àvis du container contenant l’application qui accède aux couches basses du système d’exploitation via cette abstraction.

Pourquoi utiliser les containers ? Les géants du cloud que sont Microsoft avec Azure, ou Amazon sur AWS, ont déjà compris l’intérêt : grâce à la virtualisation du système d’exploitation, une VM qui pèse normalement des giga-octets ne pèse plus que quelques centaines de méga-octets dans un container. La maintenance en est facilitée et allégée car le système d’exploitation sous-jacent est virtualisé pour n containers. Le déploiement et le redémarrage sysd’un container se comptent en secondes et pas en dizaines de minutes avec les VM, et enfin, en éliminant la couche de virtualisation, la consommation des ressources physiques est minimisée de manière drastique. Les containers Docker déjà disponibles sur Linux seront donc disponibles aussi sous Windows Server 2016, mais ils ne permettront pas l’impossible. En effet, containers créés sous Linux ne pourront être portables sur Windows, et vice-versa. S’agissant d’une couche de virtualisation orientée système d’exploitation et applications, nous pouvons dire qu’il s’agit de l’ultime limite de Docker. Un container Linux nécessite donc une image de base Linux et tout aussi logiquement, un container Windows nécessite une image de base Windows Server.

(((IMG8345)))

Partenariat Docker / Microsoft : Microsoft porte Docker sous Windows en mode Open Source et accueille sur le cloud Azure les VM Linux LXC avec Docker et les containers de Windows Server 2016 TP3

Docker : Le concept

Le concept de fond est qu’une machine fonctionnant sous Windows Server 2016 est capable d’accueillir des containers Windows Server et que ces containers sont une nouvelle forme de virtualisation composée à la fois d’une partie virtualisation du système d’exploitation

et aussi d’une partie virtualisation des applications. Avec les containers, une isolation presque complète est créée entre l’application et le système d’exploitation sous-jacent. Pour y parvenir, les containers utilisent une abstraction basée sur l’utilisation d’espaces de noms incluant

toutes les ressources avec lesquelles une application peut interagir. Qu’il s’agisse de ressources de types fichiers, dossiers, ports, ou encore processus, le conteneur ne pourra accéder qu’aux ressources de son espace de nom virtuel. La figure suivante illustre la fonctionnalité Container

proposée par le Gestionnaire de serveur de Windows Server 2016 et une illustration de l’architecture logique sous Windows Server 2016.

(((IMG8346))) (((IMG8347)))

Fonctionnalité de Containers et positionnement des containers au sein de Windows Server

Composants Docker et Terminologie

L’environnement Docker dispose de sa propre terminologie que nous retrouverons donc avec les containers de Windows Server 2016. Ci-dessous, les termes essentiels utilisés avec les containers :

• Client : Le client permet à l’administrateur d’interagir avec le service Docker en local ou à distance pour toutes les opérations de création/suppression, démarrage/ arrêt, publication/suppression sur les containers.

• Machine hôte : Une machine hôte est une machine qui héberge des containers. Il peut s’agir d’une machine physique ou aussi d’une machine virtuelle appelée dans ce cas VM hôte.

• Référentiel central d’images : Un dossier mis à disposition contenant un ensemble de fichiers d’images. Aujourd’hui la version TP3 de Windows Server 2016 supporte uniquement un référentiel local à la machine hôte. La version finale devrait proposer une gestion centralisée des images afin de rendre disponible le référentiel d’images à N machines hôtes.

• Image de Système d’exploitation de type Container : A l’heure où ces lignes sont écrites, un container Windows est une image Windows Server 2016 en mode core. La version finale devrait proposer le support d’une image de type Nano Server.

• Image de type Container : Une image de type Container permet à l’administrateur de capturer l’état contenant les changements apportés à un container. Cette image peut ensuite être réutilisée à loisir pour recréer N instances du même container.

• Container de type Hyper-V : La version TP3 ne permet pas encore de créer de container Hyper-V mais nous savons déjà dans quelles situations il sera judicieux de les utiliser en lieu et place des containers Windows Server. Les containers Hyper-V sont – dans le principe, très différents des containers Windows Server dans le sens où leur seul but est de renforcer la sécurité des containers Windows Server. Ainsi, un conteneur Hyper- V peut être considéré comme un container Windows Server fonctionnant au sein de la partition Hyper-V. Ce type de container permettra de prendre en charge des environnements où les applications sont issues de différentes zones de confiance et où, alors, une forte isolation est exigée.

Les containers Hyper-V fourniront une virtualisation optimisée pour totalement séparer les containers les uns des autres et aussi vis-à-vis du système d’exploitation hôte sous-jacent. Microsoft a publié sur son site MSDN que les containers Hyper-V fourniraient les mêmes niveaux d’intégration et de management avec Docker qu’avec les containers Windows. Une application développée pour les containers Windows Server pourra être déployée en tant que container Hyper-V sans aucun changement. Au final, au moment du déploiement, il faudra choisir entre les 2 options en fonction du niveau d’isolation souhaité, sachant que très clairement, les containers Hyper-V ouvrent la voie à des scénarios de multi-tenants.

Téléchargez cette ressource

Guide de Sécurité IA et IoT

Guide de Sécurité IA et IoT

Compte tenu de l'ampleur des changements que l'IA est susceptible d'entraîner, les organisations doivent élaborer une stratégie pour se préparer à adopter et à sécuriser l'IA. Découvrez dans ce Livre blanc Kaspersky quatre stratégies efficaces pour sécuriser l'IA et l'IoT.

Tech - Par Renaud ROSSET - Publié le 12 mai 2016