Aller au contenu
Cloud high

Mutualisation et isolation : de la virtualisation aux conteneurs

18 min de lecture

Comment un fournisseur cloud peut-il héberger 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 vous explique les technologies qui rendent cela possible — de la virtualisation aux conteneurs.

  • Comprendre pourquoi le cloud mutualise les ressources (et pourquoi c’est avantageux)
  • Distinguer les différents niveaux d’isolation (physique, virtuelle, applicative)
  • Connaître le fonctionnement de la virtualisation et des hyperviseurs
  • Comprendre les conteneurs et en quoi ils diffèrent des machines virtuelles
  • Savoir choisir entre virtualisation et conteneurisation selon le contexte
  • Découvrir l’offre des fournisseurs européens et souverains

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. Ce 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 : le gaspillage devient colossal. C’est exactement ce qui se passait dans les datacenters traditionnels avant l’essor du cloud et de la virtualisation.

ModèleUtilisation moyenne des ressourcesCoût par application
1 serveur = 1 application10-20%Élevé (matériel dédié)
Virtualisation60-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 pour toutes les 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

Pour le client :

  • Coûts réduits (on ne paie que ce qu’on utilise)
  • Pas d’investissement initial en matériel
  • Élasticité (augmenter ou réduire les ressources à la demande)

Si mutualiser les ressources était simple, tout le monde le ferait depuis longtemps. Le défi majeur est de garantir l’isolation entre les différents 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
  • 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 :

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).

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
  • Gère les accès au matériel

Il existe deux types 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.

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 :

  • VMware vSphere/ESXi : leader historique, utilisé par de nombreux clouds privés
  • Microsoft Hyper-V : intégré à Windows Server, base d’Azure
  • KVM (Kernel-based Virtual Machine) : open source, intégré au noyau Linux, utilisé par Outscale, OVHcloud, Scaleway, GCP
  • Xen : open source, utilisé historiquement par AWS

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… 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.

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

Avantages :

La virtualisation apporte cinq bénéfices majeurs qui expliquent son adoption massive dans l’industrie. L’isolation forte est particulièrement importante pour les environnements multi-tenant où la sécurité est critique.

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…)
SnapshotsOn peut « photographier » 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 :

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.

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…)

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.

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, 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
    • Son propre réseau (network namespace) — sa propre interface réseau, ses propres ports
    • 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 (ex: 2 cœurs maximum)
    • Limite de RAM (ex: 4 Go maximum)
    • Limite de bande passante réseau ou disque
  3. Image conteneur : le packaging

    Une image conteneur 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.

Avantages :

Les conteneurs excellent dans les scénarios de déploiement rapide et de scaling horizontal. Leur légèreté permet d’atteindre des densités impossibles avec les VM.

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 tourne partout
ReproductibilitéL’image garantit un environnement identique partout

Limites :

Ces limites expliquent pourquoi les conteneurs ne remplacent pas totalement les VM. Dans les environnements à haute sécurité ou nécessitant plusieurs OS, la virtualisation reste pertinente.

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

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émarrage30s à plusieurs minutesQuelques millisecondes
Densité10-50 par serveur100-1000+ 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 stricteMicroservices, CI/CD, scaling
OrchestrationvSphere, OpenStack, ProxmoxKubernetes, Docker Swarm, Nomad

Choisir la virtualisation si...

  • Vous avez besoin d’une isolation maximale entre les 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)
  • 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 (monter/descendre en secondes)
  • Vous voulez optimiser les coûts (haute densité)
  • Vous pratiquez le CI/CD avec des déploiements fréquents
  • Vous voulez de la portabilité entre environnements (dev, staging, prod)

Dans la pratique, les architectures cloud modernes combinent souvent les deux approches. Cette architecture « VM + conteneurs » est devenue le standard de l’industrie car 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), OKE (Outscale), OVHcloud Managed Kubernetes ou Scaleway Kapsule.

Le dilemme « isolation forte vs légèreté » a poussé l’industrie à innover. L’objectif : obtenir une isolation proche de celle des VM, mais 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
FirecrackerMicroVM ultra-légère, démarre en < 125 msAWS Lambda, Fargate
gVisorNoyau Linux « en sandbox » pour conteneursGoogle Cloud Run
Kata ContainersConteneurs avec isolation VM légèreOpenStack, Red Hat
AWS NitroHyperviseur hardware dédiéAWS EC2

Ces technologies offrent une isolation proche des VM avec des performances proches des conteneurs.

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.

  • La mutualisation permet de partager les ressources physiques entre plusieurs clients, réduisant les coûts pour tous.

  • 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, mais 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é, mais 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 fournisseurs européens (Outscale, OVHcloud, Scaleway, Infomaniak, Hetzner…) offrent des alternatives souveraines aux hyperscalers américains.

  • Des technologies comme Firecracker et Kata Containers cherchent à offrir le meilleur des deux mondes (isolation VM + légèreté conteneur).