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, …
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.
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 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.
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.
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.
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.
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.
Important L’année 2021 a vu l’arrêt progressif de notre service de messagerie Exchange 2016 hébergé par Openhost. Nous vous proposons de migrer vos messageries (ou celles de vos clients) sur Exchange Online, également connu sous le nom d’Office 365. En savoir plus Pour bon nombre d’entre nous, la messagerie électronique est certainement l’outil de travail […]
Lire la suiteDéfinition de ce qu'est un TENANT dans l'univers du cloud Microsoft 365 et Azure.
Lire la suiteLes étapes de l’externalisation Nos équipes sont souvent confrontées à la question de l’externalisation du système informatique de l’entreprise vers le cloud : comment celle-ci se déroule-t-elle ? Comment s’effectue la migration des données vers le cloud ? Comment aborder cette externalisation des données sereinement ? Y-a-t-il un risque de perte de données ? Externaliser […]
Lire la suite