Virtualisation et conteneurs
Définition
La virtualisation permet d'exécuter plusieurs systèmes d'exploitation (machines virtuelles) sur un même serveur physique grâce à un hyperviseur. Les conteneurs (Docker, Kubernetes) offrent une isolation plus légère en partageant le noyau de l'OS hôte, permettant un déploiement plus rapide et une densité plus élevée. Ces technologies sont à la base du cloud computing moderne.
Contexte
Sans virtualisation, un serveur physique exécute un seul OS — gaspillant la majorité de ses ressources. La virtualisation a permis le cloud computing (IaaS repose sur des VMs), tandis que les conteneurs accélèrent le déploiement applicatif (PaaS, microservices). La certification CCST attend du candidat qu'il comprenne les concepts fondamentaux de la virtualisation et son lien avec le cloud.
Détails techniques
Machines virtuelles (VMs)
Une VM est une émulation complète d'un ordinateur physique : elle possède son propre OS, CPU virtuel, RAM, stockage et interfaces réseau virtuelles.
| Composant | Description |
|---|---|
| Hyperviseur | Logiciel qui crée et gère les VMs |
| Guest OS | Système d'exploitation installé dans la VM |
| vCPU | Processeur virtuel alloué à la VM |
| vNIC | Interface réseau virtuelle (connectée à un switch virtuel) |
| vSwitch | Switch logiciel qui connecte les VMs entre elles et vers le réseau physique |
Types d'hyperviseurs
| Type | Description | Exemples |
|---|---|---|
| Type 1 (bare-metal) | S'installe directement sur le matériel (pas d'OS hôte) | VMware ESXi, Microsoft Hyper-V, KVM |
| Type 2 (hosted) | S'installe sur un OS existant (Windows, macOS, Linux) | VirtualBox, VMware Workstation |
Le cloud utilise exclusivement des hyperviseurs Type 1 pour la performance et l'efficacité.
Réseau virtuel
VM-A ──┐
VM-B ──┼── vSwitch ──── pNIC (interface physique) ──── Réseau physique
VM-C ──┘
| Concept | Description |
|---|---|
| vSwitch | Switch logiciel dans l'hyperviseur (VMware vSS, vDS ; Open vSwitch pour KVM) |
| Port group | Équivalent d'un VLAN sur le vSwitch — regroupe les ports VM par politique réseau |
| VLAN tagging | Le vSwitch peut taguer les trames 802.1Q pour intégrer les VMs dans les VLANs physiques |
| VxLAN | Encapsulation L2 over L3 pour étendre les segments virtuels à travers le datacenter |
Conteneurs
Un conteneur partage le noyau de l'OS hôte et n'embarque que l'application et ses dépendances :
| Critère | VM | Conteneur |
|---|---|---|
| Isolation | OS complet (forte) | Processus isolé (plus légère) |
| Taille | Go (OS + app) | Mo (app + libs uniquement) |
| Démarrage | Minutes | Secondes |
| Densité | ~10-50 VMs / serveur | ~100-1000 conteneurs / serveur |
| Overhead | Élevé (OS complet par VM) | Faible (noyau partagé) |
| Portabilité | Moyenne | Élevée (image identique partout) |
Écosystème conteneur :
| Technologie | Rôle |
|---|---|
| Docker | Moteur de conteneurs le plus populaire — build, run, share |
| Kubernetes (K8s) | Orchestrateur — déploiement, scaling, self-healing des conteneurs |
| Docker Compose | Orchestration locale multi-conteneurs (dev) |
| Helm | Gestionnaire de packages Kubernetes |
Réseau dans les conteneurs
| Concept | Description |
|---|---|
| Bridge network | Réseau par défaut Docker — NAT vers l'extérieur |
| Overlay network | Réseau multi-hôtes pour les conteneurs sur différents serveurs |
| CNI (Container Network Interface) | Plugin réseau Kubernetes (Calico, Flannel, Cilium) |
| Service mesh | Couche réseau dédiée à la communication inter-microservices (Istio, Linkerd) |
Exemple concret
Scénario : une entreprise migre son application monolithique vers une architecture microservices dans le cloud.
- Avant : une seule VM avec Tomcat, MySQL et le code applicatif. Déploiement long, scaling impossible de composants individuels.
- Après : l'application est découpée en 5 microservices, chacun dans un conteneur Docker :
- Frontend (Nginx) — conteneur 50 Mo
- API Gateway — conteneur 30 Mo
- Service Auth — conteneur 25 Mo
- Service Catalogue — conteneur 35 Mo
- Base de données MySQL — conteneur avec volume persistant
- Kubernetes orchestre les conteneurs sur un cluster de 3 nœuds (VMs IaaS) :
- Auto-scaling : si le frontend dépasse 80 % CPU, K8s lance des réplicas supplémentaires.
- Self-healing : si un conteneur crashe, K8s le redémarre automatiquement.
- Réseau : Calico (CNI) gère le réseau inter-pods avec des Network Policies pour la micro-segmentation.