Technologies de Virtualisation : Machines
Virtuelles et Conteneurs
1. Machines Virtuelles (VM)
Définition
Une machine virtuelle est une émulation complète d'un système informatique physique, avec son propre
système d'exploitation, bibliothèques et applications. Elle s'exécute sur un hyperviseur qui gère
l'allocation des ressources physiques sous-jacentes.
Types d'hyperviseurs
Type 1 (Bare Metal) : S'exécute directement sur le matériel (VMware ESXi, Microsoft Hyper-V, KVM)
Type 2 (Hosted) : S'exécute sur un système d'exploitation hôte (Oracle VirtualBox, VMware
Workstation)
Domaines d'application
Consolidation de serveurs : Hébergement de multiples serveurs virtuels sur une seule machine
physique
Environnements de test et développement : Création rapide d'environnements isolés
Reprise après sinistre : Réplication et sauvegarde simplifiées
Infrastructure cloud (IaaS) : AWS EC2, Azure VMs, Google Compute Engine
Virtualisation de postes de travail (VDI) : Centralisation des bureaux virtuels
Avantages
Isolation complète : Chaque VM dispose de son propre système d'exploitation et noyau
Compatibilité étendue : Peut exécuter pratiquement n'importe quel système d'exploitation
Sécurité renforcée : Isolation forte entre VMs et entre VMs et l'hôte
Maturité technologique : Outils de gestion éprouvés et écosystème riche
Migration à chaud : Capacité à déplacer des VMs entre serveurs physiques sans temps d'arrêt
Limitations
Page 1 of 4
Empreinte ressource importante : Chaque VM nécessite son propre système d'exploitation
complet
Démarrage lent : Temps de boot significatif (minutes)
Surcharge de performance : Performance légèrement inférieure au bare metal
Gestion des licences complexe : Chaque VM peut nécessiter sa propre licence OS
Densité limitée : Nombre restreint de VMs par serveur physique
2. Conteneurs
Définition
Les conteneurs sont des unités d'exécution légères qui partagent le noyau du système d'exploitation
hôte mais s'exécutent dans des espaces isolés, avec leurs propres systèmes de fichiers, processus et
ressources réseau.
Technologies principales
Docker : Plateforme de conteneurisation la plus populaire
Containerd : Runtime de conteneur de niveau industriel
CRI-O : Runtime optimisé pour Kubernetes
Podman : Alternative sans démon à Docker
LXC/LXD : Conteneurs système Linux
Orchestrateurs
Kubernetes : Orchestrateur de conteneurs dominant
Docker Swarm : Solution d'orchestration native Docker
Amazon ECS/EKS : Services de conteneurs AWS
Azure Container Instances/AKS : Solutions conteneur Microsoft
Google Kubernetes Engine (GKE) : Service Kubernetes géré
Domaines d'application
Applications cloud-natives : Services microservices distribués
DevOps et CI/CD : Pipeline d'intégration et déploiement continus
Applications web scalables : Montée en charge rapide
Edge computing : Déploiement léger sur appareils à ressources limitées
PaaS et FaaS : Solutions Platform-as-a-Service et Functions-as-a-Service
Avantages
Page 2 of 4
Légèreté : Empreinte ressource minimale (MB vs GB pour les VMs)
Démarrage ultra-rapide : En secondes ou millisecondes
Haute densité : Des centaines de conteneurs peuvent s'exécuter sur un seul hôte
Portabilité : "Build once, run anywhere"
Approche DevOps : Intégration facilitée dans les pipelines CI/CD
Infrastructure as Code : Déploiement déclaratif et reproductible
Limitations
Isolation moins forte : Partage du noyau avec l'hôte
Dépendance au noyau hôte : Limité aux applications compatibles avec le noyau
Sécurité : Surface d'attaque potentiellement plus grande
Persistance des données : Gestion des données stateful plus complexe
Maturité relative : Écosystème plus récent que celui des VMs
3. Technologies hybrides
Machines virtuelles légères
Firecracker (AWS) : VMs micro optimisées pour les fonctions serverless
gVisor (Google) : Couche d'isolation entre conteneurs et noyau
Kata Containers : Conteneurs s'exécutant dans des VMs légères
Caractéristiques
Combinent la sécurité des VMs avec la légèreté des conteneurs
Proposent des mécanismes d'isolation renforcés
Démarrage rapide mais avec une isolation comparable aux VMs
4. Comparaison des performances
Critère
Machines Virtuelles
Conteneurs
Taille
Gigaoctets
Mégaoctets
Temps de démarrage
Minutes
Secondes
Performance
Proche du natif
Quasi-natif
Densité
Dizaines par hôte
Centaines par hôte
Isolation
Complète
Partielle
Page 3 of 4
Critère
Machines Virtuelles
Conteneurs
Portabilité
Limitée
Élevée
Surcharge mémoire
Élevée
Faible
5. Cas d'usage recommandés
Préférer les machines virtuelles pour :
Applications nécessitant différents systèmes d'exploitation
Workloads nécessitant une isolation totale
Applications legacy difficiles à conteneuriser
Environnements avec des contraintes réglementaires strictes
Solutions nécessitant des ressources garanties
Préférer les conteneurs pour :
Applications cloud-natives et microservices
Environnements de développement et test
Déploiements à haute densité
Services nécessitant une mise à l'échelle rapide
Applications modernes à déploiement fréquent
Page 4 of 4