Loupe

Tout savoir sur les conteneurs – Partie I

Qu’est ce que la  virtualisation de machines (VM) ?

Le monde de l’informatique a connu une première révolution avec la généralisation de la virtualisation. Aujourd’hui, la majorité des professionnels du domaine IT sont familiers avec ce concept.

Pour les autres, voici un bref rappel.

La virtualisation consiste à utiliser efficacement les ressources d’un ordinateur physique (hyperviseur) en créant plusieurs machines virtuelles. Ces machines virtuelles se partagent les ressources telles que le processeur, la mémoire vive, le stockage, …

conteneurs cloud

Un des inconvénients majeurs de la virtualisation est que la couche du « Système d’exploitation » est dupliquée dans chaque machine virtuelle. En effet, si vous avez 10 machines virtuelles avec Windows Server 2012R2 installés, vous avez donc 10 copies des fichiers de Windows Server 2012R2, une pour chaque machine virtuelle.

Pour pallier à ce problème, une nouvelle technologie est née : les conteneurs.

Conteneurs : évolution de la virtualisation

Le concept de conteneurs n’est pas nouveau, les bases de la technologie existent depuis le début des années 2000. L’arrivée de Docker en 2013 a permis de fédérer ces technologies pour former un écosystème global. En plus de la création et gestion des conteneurs, Docker apporte des outils pour simplifier les processus de déploiement et d’administration avec notamment un dépôt d’images publiques. Petit bémol, le « Docker Engine », la couche logicielle qui fait fonctionner les conteneurs, n’est disponible que pour Linux.

Afin d’apporter la technologie des conteneurs dans l’écosystème Microsoft, les Windows Containers vont faire leur apparition sur Windows Server avec la version 2016. Actuellement en Technical Preview 4, cette fonctionnalité est déjà disponible et offre un aperçu de la puissance et simplicité d’utilisation des conteneurs.

Les conteneurs Windows sont manageables en Powershell, et grâce à la collaboration entre Microsoft et Docker, sont entièrement compatible avec ce dernier. Vous pourrez-donc gérer vos Windows Containers avec les commandes et l’API Docker.

Les conteneurs reposent sur plusieurs bonnes pratiques :

  • Un conteneur doit être le plus éphémère possible.

Un conteneur doit pouvoir être stoppé, détruit et recréé avec une configuration et une charge administrative minimale. Il devient alors simple de mettre à l’échelle ou de redonder un service : déploiement d’un nouveau conteneur.

  • Un conteneur n’exécute qu’un seul processus.

L’objectif d’un conteneur est de n’assurer qu’un seul rôle. Une application web sera donc composée de plusieurs conteneurs : un pour la partie front end et un autre pour la partie base de données. Les conteneurs seront liés entre eux pour établir la communication.

En respectant ces bonnes pratiques, nous pouvons proposer simplement et rapidement des services hautement disponibles et évolutifs.

Après cette entrée en matière, penchons-nous sur la partie technique des conteneurs.

conteneurs cloud openhost

Les conteneurs reposent directement sur le système d’exploitation. Nous constatons que la duplication de la couche logicielle a disparu et, cerise sur le gâteau, les dépendances entre les conteneurs peuvent être partagées, optimisant au maximum l’espace de stockage.

Cependant, les conteneurs ne sont pas une solution miracle. Malgré le fait que les conteneurs soient isolés entre eux, la technologie utilisée est différente de celle des machines virtuelles.

Les machines virtuelles utilisent des extensions du processeur pour assurer l’isolation. Elles ne partagent pas le système d’exploitation assurant ainsi un haut niveau d’isolement. Les conteneurs, quant à eux, sont isolés par le système d’exploitation, partageant ainsi la même couche logicielle. Au final, ils offrent un niveau plus faible d’isolation que celui de la virtualisation.

Hyper-V Containers : le meilleur des deux mondes

La virtualisation et les conteneurs ont chacun leurs avantages et inconvénients. Ne serait-il pas intéressant de combiner les points forts de ces deux technologies ? Je vous présente donc les « Hyper-V Containers ».

Les Hyper-V Containers sont des conteneurs standards, au même titre que les Windows Container. La principale différence se situe dans le processus d’isolation. Les Hyper-V Containers utilisent les machines virtuelles Hyper-V pour fournir le haut niveau d’isolation associé à la virtualisation.

De plus, une nouvelle version de Windows Server va voir le jour avec la version 2016 : Nano Server. Nano Server est un système d’exploitation minimaliste, encore plus léger que Windows Server Core. Avec Nano, pas d’interface graphique, il est impossible de se connecter localement sur la machine. L’administration se fait entièrement à distance à l’aide du PowerShell et de WMI. Le système d’exploitation a été réduit au strict minimum réduisant ainsi le nombre de mises à jour et de redémarrages. Pour couronner le tout, Microsoft a optimisé Nano Server pour son utilisation avec les conteneurs Hyper-V.

conteneurs hyper v

Les conteneurs représentent une véritable avancée du mode de consommation de l’informatique. Avec la montée en puissance de l’univers du Cloud et du SaaS, les conteneurs ont un vrai rôle à jouer. Construits dans la lignée du Cloud, les conteneurs sont une évolution logique du monde informatique et offriront, dans un futur proche, des services complètement agnostiques du système d’exploitation et du matériel.

Autres actualités