Comparer les conteneurs aux machines virtuelles

Effectué

La virtualisation matérielle rend possible l’exécution simultanée de plusieurs instances isolées de systèmes d’exploitation sur le même matériel physique. Les conteneurs représentent l’étape suivante dans la virtualisation des ressources de calcul.

La virtualisation basée sur des conteneurs vous permet de virtualiser le système d’exploitation. Cette approche permet d’exécuter plusieurs applications dans la même instance d’un système d’exploitation tout en conservant l’isolation entre les applications. Les conteneurs au sein d’une machine virtuelle fournissent des fonctionnalités similaires aux machines virtuelles au sein d’un serveur physique.

Informations importantes sur les conteneurs par rapport aux machines virtuelles

Pour mieux comprendre la virtualisation basée sur les conteneurs, nous allons comparer les conteneurs et les machines virtuelles.

Comparer Containers Machines virtuelles
Isolement Les conteneurs fournissent généralement une isolation légère de l’hôte et des autres conteneurs, mais ils ne constituent pas une limite de sécurité aussi forte qu’une machine virtuelle. Une machine virtuelle offre une isolation complète par rapport au système d’exploitation hôte et aux autres machines virtuelles. Cette séparation est utile quand une limite de sécurité forte est critique, par exemple dans le cas de l’hébergement d’applications provenant de sociétés concurrentes sur le même serveur ou cluster.
Système d’exploitation Les conteneurs exécutent la partie mode utilisateur d’un système d’exploitation et peuvent être personnalisées pour contenir uniquement les services nécessaires à votre application. Cette approche vous permet d’utiliser moins de ressources système. Les machines virtuelles exécutent un système d’exploitation complet incluant le noyau, ce qui nécessite davantage de ressources système (processeur, mémoire et stockage).
Déploiement Vous pouvez déployer les conteneurs individuels à l’aide de Docker via la ligne de commande. Vous pouvez déployer plusieurs conteneurs à l’aide d’un orchestrateur comme Azure Kubernetes Service. Vous pouvez déployer des machines virtuelles individuelles à l’aide de Windows Admin Center ou du Gestionnaire Hyper-V. Vous pouvez déployer plusieurs machines virtuelles à l’aide de PowerShell ou de System Center Virtual Machine Manager.
Stockage persistant Les conteneurs utilisent des disques Azure à des fins de stockage local pour un nœud unique ou Azure Files (partages SMB) pour le stockage partagé par plusieurs nœuds ou serveurs. Les machines virtuelles utilisent un disque dur virtuel (VHD) pour le stockage local pour une seule machine unique ou un partage de fichiers SMB pour le stockage partagé par plusieurs serveurs.
Tolérance de panne En cas de défaillance d’un nœud de cluster, l’orchestrateur sur un autre nœud de cluster recrée rapidement les conteneurs s’exécutant sur le nœud. Les machines virtuelles peuvent basculer sur un autre serveur du cluster, où leur système d’exploitation redémarre sur le nouveau serveur.

Éléments à prendre en compte lors de l’utilisation des conteneurs

Les conteneurs offrent plusieurs avantages par rapport aux machines physiques et virtuelles. Passez en revue les avantages suivants et réfléchissez à la façon dont vous pouvez implémenter des conteneurs pour les applications internes de votre entreprise.

  • Tenez compte de la flexibilité et de la vitesse. Gagnez en flexibilité et en vitesse lors du développement et du partage de votre code d’application conteneurisée.

  • Envisagez d’effectuer des tests. Choisissez des conteneurs afin que votre configuration permette des tests simplifiés de vos applications.

  • Envisagez le déploiement d’application. Implémentez des conteneurs pour obtenir un déploiement simplifié et accéléré de vos applications.

  • Tenez compte de la densité de la charge de travail. Prenez en charge une densité de charge de travail plus élevée et améliorez l’utilisation de vos ressources à l’aide de conteneurs.

Comprendre les images conteneur

Tous les conteneurs sont créés à partir d’images conteneur. Une image conteneur est un package exécutable léger et autonome de logiciels, qui encapsule tout ce qui est nécessaire pour exécuter une application. Celle-ci comprend les composants suivants :

  • Code : Le code source de l’application.
  • Runtime : L’environnement requis pour exécuter l’application.
  • Outils système : Utilitaires nécessaires pour que l’application fonctionne.
  • Bibliothèques système : Bibliothèques partagées utilisées par l’application.
  • Paramètres : Paramètres de configuration spécifiques à l’application.

Lorsque vous créez une image conteneur, elle devient une unité portable qui peut s’exécuter de manière cohérente dans différents environnements informatiques. Ces images sont les blocs de construction des conteneurs, qui sont des instances de ces images s’exécutant au moment de l’exécution.