🖥️ Virtualisation
L'Abstraction Matérielle : De la Machine Virtuelle au Conteneur
🔥 Mise en situation : La Bataille du 13ème Serveur
Année 2002. Le Datacenter de l'entreprise est rempli à 100%. Il y a 50 énormes serveurs physiques. Chaque serveur, qui coûte 10 000€, n'utilise en réalité que 5% à 15% de son processeur.
Pourtant, un développeur a besoin d'un nouveau serveur pour héberger un simple blog. L'administrateur système refuse de "polluer" le serveur de facturation avec l'OS du blog, et l'entreprise doit encore racheter un autre serveur massif... qu'elle laissera tourner à 5% de charge.
C'est le gaspillage financier et écologique absolu. La solution ? Insérer une fine couche logicielle miracle appelée "Hyperviseur", capable de feinter et de découper le serveur surpuissant en 20 "petits ordinateurs virtuels" indépendants.
⚠️ Rappel : L'Abstraction
Dans l'informatique, toute révolution vient de l'ajout d'une couche d'abstraction supplémentaire.
Avec la virtualisation, on a arrêté de lier physiquement le système d'exploitation à la carte mère physique ("Bare-metal"). La Virtualisation, c'est l'art de "mentir" à l'OS en lui faisant croire qu'il possède sa propre carte mère, alors qu'il tourne dans un logiciel (l'Hyperviseur).
📖 Les Types d'Hyperviseurs
L'Hyperviseur (ou VMM, Virtual Machine Monitor) est ce fameux logiciel magique. Il divise le CPU et la RAM de la machine physique pour les allouer à chaque Machine Virtuelle (VM). Il existe 2 grandes familles qui s'affrontent selon l'usage.
| Caractéristique | Type 1 (Bare Metal) 🏢 | Type 2 (Hosted) 💻 |
|---|---|---|
| Installation | Installé directement sur la carte mère (Il est l'OS). | Installé comme une application classique sur Windows / macOS / Linux. |
| Performance | Maximale absolue. Aucune surcouche. Idéal pour les Datacenters et le Cloud public. | Lenteur. L'OS hôte consomme des ressources avant même d'arriver à la VM. |
| Outils courants | VMware ESXi, Proxmox VE, Microsoft Hyper-V, KVM. | VMware Workstation, Oracle VirtualBox, Parallels Desktop. |
| Public Visé | Les entreprises, les serveurs de production, les fournisseurs Cloud. | Les développeurs pour tester un site web ou un malware en local. |
🚦 Analogie : La Colocation Compliquée de la Machine Virtuelle
Créer une Machine Virtuelle (VM), c'est lourd. Pourquoi ? Parce que chaque VM vient avec son propre Système d'Exploitation Complet (Guest OS).
Imaginez un camion (le Serveur Physique). Vous voulez transporter 3 colis (les Applications). Avec la stratégie VM, vous mettez chaque colis à l'intérieur d'une voiture, et vous mettez les 3 voitures dans le camion. L'OS (Windows/Ubuntu) de chaque VM pèse très lourd (2 à 20 Go) !
Le Conteneur (ex: Docker) résout ça. C'est l'équivalent de déposer directement vos colis (l'Application) dans les boîtes plastiques (le Conteneur) dans le camion, sans avoir à acheter une voiture pour chaque colis.
🛠️ L'Automatisme des VMs (Vagrant & Packer)
Avant l'explosion de Docker, on automatisait déjà les VMs pour éviter le fameux "ça marche sur ma machine". Deux outils de chez HashiCorp ont révolutionné cette époque :
- Packer : Permet de créer une image de VM (un "moule") pré-configurée avec tous les logiciels installés. On appelle ça le "Golden Image" ou "Baking".
- Vagrant : Permet de lancer cette VM localement sur son PC avec une seule commande (
vagrant up). C'était le précurseur spirituel dudocker-compose.
🛡️ Sécurité & Isolation : Pourquoi la VM résiste ?
Si les conteneurs sont si géniaux et légers, pourquoi utilise-t-on encore des VMs ? La réponse tient en un mot : Isolation.
🚨 Le Partage de Kernel : Les conteneurs partagent le même Kernel (noyau) Linux que la machine hôte. Si un pirate réussit à s'échapper du conteneur ("Container Escape"), il peut théoriquement attaquer directement le serveur hôte.
Les VMs utilisent une Hardware-Assisted Virtualization. Chaque VM possède son propre Kernel. Une faille dans une VM ne permet pas (sauf faille critique de l'hyperviseur) d'impacter les autres VMs ou l'hôte. C'est une barrière physique étanche.
Pour mixer le meilleur des deux mondes (Vitesse du Conteneur + Sécurité de la VM), de nouvelles technologies sont apparues :
- Firecracker (AWS) : Des "micro-VMs" ultra-rapides qui démarrent en 5 millisecondes, utilisées pour AWS Lambda.
- gVisor (Google) : Un noyau "bac à sable" sécurisé pour exécuter des conteneurs sans partager le kernel de l'hôte.
🐳 Le Saviez-vous ? Docker n'est qu'un "chef d'orchestre"
Docker ne crée pas lui-même le conteneur. Il délègue cela à un Container Runtime.
Il existe des standards appelés OCI (Open Container Initiative). C'est pour cela que vous pouvez lancer un conteneur créé avec Docker sur Kubernetes, qui utilise souvent containerd ou CRI-O. C'est une interopérabilité totale !
🎯 En Résumé
La virtualisation n'est pas morte, elle a évolué. Aujourd'hui, on installe d'abord une Machine Virtuelle massive via Proxmox ou sur AWS EC2, puis à l'intérieur de cet OS hôte, on va lancer des dizaines de Conteneurs Docker extra-légers pour maximiser et densifier l'utilisation du matériel sous-jacent.