Conteneurs Windows Server vs conteneurs Hyper-V : quelles sont les différences
Les administrateurs Windows doivent apprendre à discerner les bienfaits respectifs des conteneurs Windows Server et Hyper-V.
Les conteneurs constituent l'une des fonctionnalités les plus importantes de Windows Server 2016. Mais elles se classent aussi parmi les plus déconcertantes, et ce pour deux raisons. Tout d'abord, le concept est nouveau pour Windows, même s'il existe depuis longtemps dans le monde de l'open source. Ensuite, Microsoft introduit simultanément deux types différents de conteneurs : les conteneurs Windows Server et les conteneurs Hyper-V.
Pour comprendre le fonctionnement des conteneurs, vous devez connaître les principes de base de la virtualisation des serveurs. Les conteneurs ne doivent pas être confondus avec des machines virtuelles (VM), bien qu'ils représentent une forme de virtualisation.
C'est grâce à des serveurs plus puissants que la virtualisation a pu voir le jour
A une époque, les capacités matérielles des serveurs étaient relativement modestes. Il fallait un matériel dédié pour exécuter les charges de travail. Par la suite, les serveurs sont devenus beaucoup plus puissants ; aujourd'hui, les applications, même nombreuses, ne consomment qu'une infime partie des ressources dont dispose un serveur. L'émergence de la virtualisation des serveurs a permis de mieux utiliser le matériel en autorisant l'exécution simultanée de plusieurs charges de travail dans des VM. Ces dernières jouaient le rôle de barrières d'isolement, chaque machine possédant en propre un système d'exploitation, un disque dur virtuel, de la mémoire allouée, etc.
Puis, le mouvement a commencé à s'inverser : alors que les VM avaient été conçues à l'origine pour améliorer le taux d'utilisation du matériel, les utilisateurs ont commencé à en créer à tour de bras, de sorte que les limites matérielles ont de nouveau été atteintes. En effet, un serveur physique ne peut héberger qu'un nombre donné de charges de travail avant de se trouver à court de ressources.
Avec l'amélioration des techniques de virtualisation, les fournisseurs d'hyperviseurs ont cherché à augmenter le nombre de VM qu'un serveur physique pouvait accueillir. Ainsi, ces fournisseurs ont introduit des fonctionnalités comme l'allocation dynamique de disques durs virtuels (Thin Provisioning) et la surallocation de mémoire. Les conteneurs sont comparables à ces fonctionnalités car ils permettent à un serveur d'accueillir des charges de travail supplémentaires.
Les conteneurs mettent la virtualisation à la diète
Intéressons-nous aux différences entre serveurs virtuels et conteneurs. Un serveur virtuel est conçu pour être autonome, avec son propre système d'exploitation, ses applications et ses ressources matérielles. Si un problème survient dans une VM, il ne touchera pas les autres car le serveur virtuel se comporte comme une barrière d'isolement.
Le problème des VM est qu'elles occupent plus d'espace que nécessaire. Prenons l'exemple d'un serveur d'application. Il contient l'application et un système d'exploitation dédié. Ce dernier consomme de l'espace de stockage, de la mémoire, des cycles de CPU et d'autres ressources matérielles. Si cela ne présente pas de difficulté particulière pour les hôtes comportant quelques VM seulement, imaginez le cas d'un hôte devant faire tourner un grand nombre de VM, chacune d'entre elles exécutant le même système d'exploitation.
La technique des conteneurs vise à résoudre ce problème de volume en utilisant une instance unique du système d'exploitation, partagée par tous les conteneurs. Un conteneur ressemble à une application virtualisée dans la mesure où il renferme les fichiers binaires et de configuration de l'application, mais côté système d'exploitation, il ne stocke que les composants modifiés par l'application, tels que les entrées du registre ou les pilotes spécifiques dont elle a besoin.
Microsoft propose un choix de conteneurs
Pourquoi Microsoft introduit-il à la fois des conteneurs Windows Server et des conteneurs Hyper-V ? Cette question appelle plusieurs réponses différentes, mais la plupart concernent la fiabilité.
Les conteneurs Windows Server utilisent le système d'exploitation hôte. C'est certainement acceptable pour exécuter les applications fiables, mais guère souhaitable pour celles qui ne le sont pas. En revanche, les conteneurs Hyper-V offrent une barrière d'isolement supplémentaire, chaque conteneur possédant sa propre copie des fichiers binaires du système d'exploitation. La seule véritable différence entre un conteneur Hyper-V et une VM Hyper-V est que le premier peut être géré par Docker, mais pas la seconde.
Les conteneurs sont un mécanisme d’amélioration de l’efficacité grâce au partage des fichiers binaires du système d'exploitation. Cette approche améliore non seulement la capacité de l'hôte, mais facilite également la gestion des correctifs, car il y a moins de systèmes d'exploitation à mettre à jour.