Aller au contenu
Cloud high

Mutualisation et isolation cloud : VM, conteneurs, micro-VMs

22 min de lecture

Comment un fournisseur cloud héberge-t-il des milliers de clients sur les mêmes serveurs physiques sans qu'ils ne se voient entre eux ? La réponse tient en deux concepts fondamentaux : la mutualisation (partager les ressources pour réduire les coûts) et l'isolation (garantir que chaque client dispose de son espace privé et sécurisé). Ce guide explique les technologies qui rendent cela possible — de la virtualisation classique aux micro-VMs comme Firecracker — et fait le lien avec la grille XaaS (IaaS, CaaS, FaaS) qui s'appuie directement sur ces mécanismes.

  • Comprendre pourquoi le cloud mutualise les ressources et avec quels avantages
  • Distinguer les niveaux d'isolation (physique, matérielle, système, applicative)
  • Connaître le fonctionnement de la virtualisation et des hyperviseurs
  • Comprendre les conteneurs et leurs mécanismes (namespaces, cgroups)
  • Identifier les micro-VMs émergentes (Firecracker, gVisor, Kata)
  • Faire le lien avec les modèles XaaS (IaaS sur VM, CaaS sur containers, FaaS sur micro-VM)

Prérequis : aucun. Ce guide part de zéro et explique chaque concept progressivement.

Imaginez une entreprise qui achète un serveur physique pour faire tourner une application. Le serveur dispose de 32 cœurs CPU et 128 Go de RAM. Mais l'application n'utilise en moyenne que 15 % de ces ressources — le reste est gaspillé, tout en consommant de l'électricité et en occupant de l'espace dans le datacenter.

Multipliez ce scénario par des milliers d'applications dans une organisation : le gaspillage devient colossal. C'est exactement ce qui se passait dans les datacenters traditionnels avant l'essor de la virtualisation et du cloud.

ModèleUtilisation moyenneCoût par application
1 serveur = 1 application10–20 %Élevé (matériel dédié)
Virtualisation (VM)60–80 %Moyen (partagé)
Conteneurisation80–95 %Faible (très dense)

Le principe est simple : au lieu de dédier un serveur physique à chaque application, on partage ce serveur entre plusieurs applications ou plusieurs clients. Chacun utilise les ressources dont il a besoin, quand il en a besoin.

L'analogie de l'immeuble : plutôt que de construire une maison individuelle pour chaque famille (coûteux en terrain et en construction), on construit un immeuble avec plusieurs appartements. Chaque famille dispose de son espace privé, mais les fondations, la toiture et les parties communes sont partagées.

La mutualisation apporte des avantages aux deux parties.

Pour le fournisseur cloud : meilleure rentabilité de l'infrastructure, économies d'échelle sur l'achat de matériel, optimisation de la consommation énergétique (PUE de 1,1–1,2 chez les hyperscalers et souverains européens contre 2,0 dans une salle serveur d'entreprise classique).

Pour le client : coûts réduits (paiement à l'usage seul), pas d'investissement initial en matériel, élasticité (augmentation ou réduction des ressources à la demande). Cette mécanique est ce qui rend possible les 5 promesses du cloud que je détaille dans Définition et promesses du cloud.

Si mutualiser les ressources était simple, tout le monde le ferait depuis longtemps. Le défi majeur est de garantir l'isolation entre les utilisateurs qui partagent le même matériel :

  • Sécurité : le client A ne doit jamais pouvoir accéder aux données du client B.
  • Performance : une application gourmande ne doit pas ralentir ses voisins (effet noisy neighbor).
  • Stabilité : un crash d'une application ne doit pas affecter les autres.

L'analogie de l'immeuble (suite) : dans un immeuble, chaque appartement a ses murs, sa serrure, son compteur électrique. Le voisin bruyant ne doit pas vous empêcher de dormir, et une fuite d'eau chez lui ne doit pas inonder votre appartement.

Il existe plusieurs façons d'isoler des charges de travail (workloads) sur une infrastructure partagée. Chaque niveau offre un compromis distinct entre isolation, performance et densité.

NiveauTechnologieIsolationPerformanceDensité
PhysiqueServeur dédiéMaximaleMaximaleTrès faible
MatérielleVirtualisation (VM)ForteBonneMoyenne
SystèmeConteneursMoyenneExcellenteÉlevée
ApplicativeProcessus / sandboxingFaibleVariableTrès élevée

Plus on monte dans le tableau, plus l'isolation est forte mais plus on sacrifie en densité (nombre de workloads par serveur) et en performance (overhead de la couche d'isolation). Le bon compromis dépend de votre contexte — sécurité, conformité, budget, profil de charge.

3. La virtualisation : des serveurs dans le serveur

Section intitulée « 3. La virtualisation : des serveurs dans le serveur »

La virtualisation consiste à créer des machines virtuelles (VM) qui se comportent comme des ordinateurs complets et indépendants, mais qui tournent en réalité sur un seul serveur physique. Chaque VM dispose de son propre système d'exploitation, de sa mémoire virtuelle, de ses disques virtuels.

L'analogie : c'est comme diviser un grand terrain en plusieurs parcelles, chacune avec sa maison complète (fondations, murs, toit). Les maisons sont indépendantes, mais elles partagent le même terrain.

Pour créer et gérer des machines virtuelles, on utilise un logiciel spécialisé appelé hyperviseur. C'est lui qui découpe les ressources physiques (CPU, RAM, disque) en ressources virtuelles, alloue ces ressources aux différentes VM, assure l'isolation entre les VM, et gère les accès au matériel.

Il existe deux grandes familles d'hyperviseurs.

L'hyperviseur s'installe directement sur le matériel, sans système d'exploitation intermédiaire. C'est le standard dans les datacenters et le cloud public.

Caractéristiques : performance optimale (pas de couche OS intermédiaire), sécurité renforcée (surface d'attaque réduite), gestion centralisée des VM.

Exemples :

  • KVM (Kernel-based Virtual Machine) : open source, intégré au noyau Linux depuis 2007, utilisé par Outscale, OVHcloud, Scaleway, GCP, DigitalOcean, Hetzner.
  • VMware vSphere / ESXi : leader historique propriétaire, utilisé par de nombreux clouds privés et environnements VMware Cloud.
  • Microsoft Hyper-V : intégré à Windows Server, base d'Azure.
  • Xen : open source, utilisé historiquement par AWS (en transition vers Nitro) et Oracle Cloud.

Quand vous créez une machine virtuelle, voici ce qui se passe sous le capot.

  1. Allocation des ressources virtuelles

    L'hyperviseur réserve une partie des ressources physiques pour la VM : 4 vCPU (cœurs virtuels), 8 Go de RAM virtuelle, 100 Go de disque virtuel. Ces ressources sont découpées dans le pool de ressources du serveur physique.

  2. Création du matériel virtuel

    L'hyperviseur simule tout le matériel d'un ordinateur : carte mère virtuelle, BIOS/UEFI virtuel, carte réseau virtuelle, contrôleur de disque virtuel. La VM croit tourner sur un vrai ordinateur.

  3. Installation du système d'exploitation

    Vous installez un OS complet dans la VM : Linux, Windows, FreeBSD, etc. Cet OS ne sait pas qu'il tourne dans une VM — pour lui, c'est un ordinateur normal.

  4. Isolation par l'hyperviseur

    L'hyperviseur intercepte tous les accès au « matériel » et les traduit en accès réels. Il garantit que la VM ne peut accéder qu'à ses propres ressources, jamais à celles des autres VM. C'est la base de la sécurité multi-tenant.

La virtualisation a révolutionné la gestion des datacenters depuis les années 2000. Comme toute technologie, elle présente des compromis qu'il faut comprendre pour bien l'utiliser.

Avantages :

AvantageExplication
Isolation forteChaque VM a son propre noyau OS — une faille dans une VM n'affecte pas les autres
Flexibilité OSChaque VM peut avoir un OS différent (Linux, Windows, BSD)
SnapshotsPhotographier l'état d'une VM et y revenir plus tard
Migration à chaudDéplacer une VM d'un serveur à un autre sans interruption
MaturitéTechnologie éprouvée depuis 20+ ans

Limites :

LimiteExplication
OverheadChaque VM embarque un OS complet (plusieurs Go de RAM, du CPU pour le noyau)
Démarrage lentUne VM démarre en dizaines de secondes à plusieurs minutes
Densité limitéeOn peut héberger 10–50 VM par serveur, rarement plus
Gestion complexeChaque VM est un serveur à administrer (mises à jour, patches, sécurité système)

Ces limites ont motivé l'émergence de la conteneurisation. L'overhead d'un OS complet par VM devient problématique quand on veut exécuter des centaines de microservices.

Un conteneur est une forme d'isolation plus légère qu'une VM. Au lieu de virtualiser tout le matériel et d'installer un OS complet, le conteneur partage le noyau de l'OS hôte et n'embarque que l'application et ses dépendances.

L'analogie : si la VM est une maison complète sur un terrain partagé, le conteneur est plutôt une cabine préfabriquée. Elle offre un espace privé, mais partage les fondations, l'électricité et la plomberie avec les autres cabines.

Virtualisation vs Conteneurisation : la différence visuelle

Section intitulée « Virtualisation vs Conteneurisation : la différence visuelle »

Comparaison architecturale entre virtualisation (à gauche) et conteneurisation (à droite)

Cette illustration montre la différence fondamentale entre les deux approches.

Virtualisation (gauche) : chaque VM embarque son propre système d'exploitation complet, y compris le noyau. L'hyperviseur fait le lien entre les VM et le matériel physique. Plus de couches = plus d'overhead, mais isolation maximale.

Conteneurisation (droite) : tous les conteneurs partagent le même noyau de l'OS hôte. Le container runtime (Docker, containerd, CRI-O, Podman) gère l'isolation. Moins de couches = démarrage rapide et haute densité, mais isolation plus légère.

Les conteneurs reposent sur des fonctionnalités du noyau Linux qui permettent d'isoler des processus sans virtualiser le matériel.

  1. Namespaces — l'isolation des ressources

    Les namespaces créent des « vues » séparées du système pour chaque conteneur. Chaque conteneur a l'impression d'avoir son propre système de fichiers (mount namespace), ses propres processus (PID namespace) — le processus 1 du conteneur n'est pas le vrai PID 1 de l'hôte —, son propre réseau (network namespace), ses propres utilisateurs (user namespace).

  2. Cgroups — le contrôle des ressources

    Les cgroups (control groups) limitent et comptabilisent les ressources que peut utiliser un conteneur : limite de CPU (par exemple 2 cœurs maximum), limite de RAM (4 Go maximum), limite de bande passante réseau ou disque.

  3. Image conteneur — le packaging

    Une image conteneur au format OCI (Open Container Initiative) est un package qui contient tout ce dont l'application a besoin : binaires, bibliothèques, fichiers de configuration. Elle est construite couche par couche, ce qui permet de réutiliser les couches communes entre plusieurs images.

  4. Container runtime — l'exécution

    Le runtime (Docker Engine, containerd, CRI-O, Podman) utilise les namespaces et cgroups pour lancer et gérer les conteneurs à partir des images.

Les conteneurs ont été popularisés par Docker en 2013, mais les technologies sous-jacentes (namespaces, cgroups) existent dans Linux depuis 2008. Leur adoption a explosé avec les architectures microservices et cloud-native.

Avantages :

AvantageExplication
LégèretéPas d'OS complet à embarquer — une image fait souvent 50–500 Mo
Démarrage instantanéUn conteneur démarre en millisecondes
Haute densitéDes centaines de conteneurs sur un seul serveur
PortabilitéBuild once, run anywhere — l'image OCI tourne identique partout
ReproductibilitéL'image garantit un environnement identique entre dev / staging / prod

Limites :

LimiteExplication
Même noyauImpossible de faire tourner Windows et Linux sur le même hôte
Isolation plus faibleLe noyau partagé est un risque potentiel
Complexité orchestrationGérer des milliers de conteneurs nécessite Kubernetes ou équivalent
Stockage éphémèrePar défaut, les données sont perdues quand le conteneur s'arrête (besoin de volumes persistants)

Ce tableau synthétise les différences clés entre les deux technologies. Gardez à l'esprit que ces valeurs sont indicatives — les performances réelles dépendent de votre configuration et de vos workloads. L'important est de comprendre les ordres de grandeur pour faire un choix éclairé.

CritèreMachine VirtuelleConteneur
IsolationForte (hyperviseur + OS séparé)Moyenne (namespaces / cgroups)
TaillePlusieurs Go (OS complet)Dizaines à centaines de Mo
Démarrage30 s à plusieurs minutesQuelques millisecondes
Densité10–50 par serveur100–1 000+ par serveur
OSChaque VM peut avoir un OS différentTous partagent le même noyau
Overhead CPU/RAM5–15 %< 2 %
Cas d'usageWorkloads lourds, isolation stricte, OS hétérogènesMicroservices, CI/CD, scaling horizontal
OrchestrationvSphere, OpenStack, ProxmoxKubernetes, Docker Swarm, Nomad

Choisir la virtualisation si...

  • Vous avez besoin d'une isolation maximale entre workloads.
  • Vous devez faire tourner des OS différents (Linux + Windows).
  • Vous migrez des applications legacy conçues pour des serveurs.
  • Vous avez des contraintes réglementaires strictes (données sensibles, audit ANSSI).
  • Vous voulez des snapshots et de la migration à chaud.

Choisir les conteneurs si...

  • Vous développez des microservices ou des applications cloud-native.
  • Vous avez besoin de scaling rapide (montée et descente en secondes).
  • Vous voulez optimiser les coûts par haute densité.
  • Vous pratiquez le CI/CD avec des déploiements fréquents.
  • Vous voulez de la portabilité entre environnements (dev, staging, prod) et entre clouds.

Dans la pratique, les architectures cloud modernes combinent souvent les deux approches. Cette architecture VM + conteneurs est devenue le standard de l'industrie parce qu'elle offre le meilleur des deux mondes.

Architecture hybride combinant virtualisation et conteneurisation

Ce schéma illustre comment un serveur physique héberge plusieurs clients isolés.

L'hyperviseur (KVM) crée une frontière infranchissable entre les clients A et B. Même si un attaquant compromet entièrement la VM du client A, il ne peut pas atteindre le client B. Cette isolation forte justifie la facturation séparée et les garanties de sécurité des fournisseurs cloud.

Kubernetes à l'intérieur de chaque VM orchestre les conteneurs. Le client A fait tourner 3 microservices (API, Worker, DB), le client B en fait tourner 4 (Front, API, Cache, DB). Les conteneurs démarrent en millisecondes et peuvent être répliqués automatiquement selon la charge.

La densité est optimisée : un seul serveur physique peut héberger des dizaines de VM, chacune contenant des dizaines de conteneurs — soit potentiellement des centaines de microservices par machine.

C'est exactement ce que font les services Kubernetes managés comme EKS (AWS), AKS (Azure), GKE (GCP), OKS (Outscale), OVHcloud Managed Kubernetes ou Scaleway Kapsule.

Maintenant que vous comprenez les mécanismes techniques, faisons le lien explicite avec la grille XaaS des modèles de service. Chaque modèle s'appuie sur une technologie d'isolation distincte.

Modèle XaaSTechnologie d'isolation principaleExemple
IaaSVirtualisation (VM via hyperviseur)EC2, Outscale FCU, Compute Engine
CaaSConteneurs sur Kubernetes ou plateforme containerEKS, OKS, Cloud Run, ECS Fargate
PaaSConteneurs ou VM masqués par la plateformeApp Service, Scalingo, Clever Cloud
FaaSMicro-VMs (Firecracker, gVisor)AWS Lambda, GCP Cloud Run jobs
SaaSApplication multi-tenant (isolation logique)Gmail, Slack, Salesforce

Ce tableau aide à comprendre pourquoi le FaaS scale aussi vite — la micro-VM démarre en moins de 125 ms, contre 30 s pour une VM classique. Et pourquoi le CaaS atteint des densités que l'IaaS ne peut pas — les conteneurs partagent le noyau, l'IaaS non. La grille XaaS complète est détaillée dans IaaS, PaaS, SaaS, FaaS, CaaS.

7. Les technologies émergentes : micro-VMs et au-delà

Section intitulée « 7. Les technologies émergentes : micro-VMs et au-delà »

Le dilemme « isolation forte vs légèreté » a poussé l'industrie à innover. L'objectif : obtenir une isolation proche des VM, avec des temps de démarrage et une consommation de ressources proches des conteneurs. Ces technologies sont particulièrement importantes pour les offres serverless où le fournisseur doit isoler des milliers de fonctions de clients différents sur les mêmes serveurs.

TechnologieDescriptionUtilisé par
FirecrackerMicro-VM ultra-légère, démarre en < 125 ms, écrite en RustAWS Lambda, AWS Fargate
gVisorNoyau Linux en sandbox pour conteneurs, intercepte les syscallsGoogle Cloud Run, GKE Sandbox
Kata ContainersConteneurs avec isolation VM légère via QEMU/KVMOpenStack, OpenShift, Confidential Containers
AWS NitroHyperviseur hardware dédié + cartes NitroAWS EC2, EKS Nitro

Ces technologies offrent une isolation proche des VM avec des performances proches des conteneurs. Elles sont la raison technique pour laquelle AWS Lambda peut isoler 100 fonctions de clients différents sur un même serveur sans faille de sécurité connue depuis 2018.

Unikernels — la spécialisation poussée à l'extrême

Section intitulée « Unikernels — la spécialisation poussée à l'extrême »

Les unikernels poussent la spécialisation encore plus loin : au lieu d'embarquer un OS généraliste, on compile l'application avec uniquement les fonctions du noyau dont elle a besoin. Le résultat est une image ultra-légère (quelques Mo) qui démarre en millisecondes.

Exemples : MirageOS, OSv, Unikraft.

Le niveau d'isolation à mettre en place dépend de la nature du voisinage : héberge-t-on des charges qui appartiennent à plusieurs organisations différentes (multi-tenant), ou uniquement à la sienne ? La réponse oriente le choix entre virtualisation, containers, ou combinaison des deux.

Workload multi-tenant sensible : VM + containers est le défaut historique. Lorsque plusieurs clients distincts partagent une même infrastructure, faire tourner leurs containers sur un kernel commun expose à un risque : la compromission du kernel hôte mettrait en jeu tous les containers de tous les clients. La couche VM intermédiaire ajoute un overhead modeste (de l'ordre de 1 à 3 %) et fournit une frontière d'isolation matérielle que les fournisseurs cloud ont éprouvée à très grande échelle. Ce modèle reste le défaut historique pour le multi-tenant sensible.

Workload mono-tenant : containers sur Kubernetes managé sont souvent suffisants. Quand toute la charge appartient à la même organisation (ses containers, son cluster, son compte cloud), l'isolation kernel est généralement suffisante. Ajouter une VM par container alourdit l'opérationnel sans bénéfice de sécurité tangible. C'est le modèle courant pour les architectures cloud-native d'une seule entreprise — sujet détaillé dans Containers managés (CaaS).

Technologies de micro-VM : choisies par les fournisseurs, pas par l'utilisateur. Les technologies comme Firecracker, gVisor ou Kata Containers combinent isolation VM et légèreté de containers. Elles sont utilisées par les fournisseurs cloud dans leurs offres FaaS et CaaS pour isoler des charges multi-tenant à grande échelle. L'utilisateur final n'a généralement pas à les choisir explicitement : il bénéficie de cette isolation par construction quand il déploie sur un service managé qui les emploie en interne.

Bonnes pratiques de décision. Avant de choisir un niveau d'isolation, se poser quatre questions : qui sont mes voisins sur la même infrastructure ?, quelles données mon application traite-t-elle ?, quelle est ma capacité opérationnelle à durcir un kernel partagé ?, quelles obligations réglementaires s'appliquent à mes charges ?. Les réponses orientent généralement vers un modèle simple — pas vers un empilement défensif systématique.

  • La mutualisation permet de partager les ressources physiques entre plusieurs clients, réduisant les coûts pour tous — c'est le modèle économique fondamental du cloud public.
  • L'isolation garantit que chaque client dispose d'un espace sécurisé et que les problèmes d'un voisin n'affectent pas les autres.
  • La virtualisation (VM) offre une isolation forte via un hyperviseur, avec un overhead significatif (OS complet par VM).
  • Les conteneurs partagent le noyau de l'OS hôte et offrent légèreté et rapidité, avec une isolation plus légère.
  • Les architectures modernes combinent VM et conteneurs : VM pour l'isolation entre clients, conteneurs pour la densité à l'intérieur.
  • Les modèles XaaS s'appuient directement sur ces technologies : IaaS sur VM, CaaS sur containers, FaaS sur micro-VMs (Firecracker).
  • Les fournisseurs européens souverains (Outscale, OVHcloud, Scaleway) utilisent KVM open source — un argument de souveraineté technologique.
  • Les micro-VMs (Firecracker, gVisor, Kata) cherchent à offrir le meilleur des deux mondes : isolation VM + légèreté conteneur.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn