0% ont trouvé ce document utile (0 vote)
5 vues19 pages

Module 2 Virtualisation and Conteneurisation

Ce module aborde la virtualisation et la conteneurisation, en expliquant les principes fondamentaux, les types d'hyperviseurs, et les différences entre machines virtuelles et conteneurs. Il présente également Docker comme la solution standard pour la conteneurisation, ainsi que Docker Compose pour la gestion d'applications multi-conteneurs. Les points clés soulignent l'importance de la virtualisation pour l'optimisation des ressources et la complémentarité entre VMs et conteneurs.

Transféré par

ayoubhammou77
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues19 pages

Module 2 Virtualisation and Conteneurisation

Ce module aborde la virtualisation et la conteneurisation, en expliquant les principes fondamentaux, les types d'hyperviseurs, et les différences entre machines virtuelles et conteneurs. Il présente également Docker comme la solution standard pour la conteneurisation, ainsi que Docker Compose pour la gestion d'applications multi-conteneurs. Les points clés soulignent l'importance de la virtualisation pour l'optimisation des ressources et la complémentarité entre VMs et conteneurs.

Transféré par

ayoubhammou77
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CLOUD COMPUTING

Module 2

Virtualisation et
Conteneurisation
Objectifs pédagogiques
À l'issue de ce module, vous serez capable de :

Comprendre les principes fondamentaux de la Distinguer les hyperviseurs de type 1 et type 2


virtualisation

Maîtriser les concepts de conteneurisation avec Comparer machines virtuelles et conteneurs


Docker

Créer et gérer des images et conteneurs Docker Utiliser Docker Compose pour les applications multi-
conteneurs
PARTIE 1

LA VIRTUALISATION
1.1 Introduction à la virtualisation
La virtualisation est une technologie permettant de créer une
version virtuelle d'une ressource informatique : serveur,
système d'exploitation, stockage ou réseau. Elle constitue le
socle technologique du cloud computing.
Définition
La virtualisation consiste à faire fonctionner plusieurs systèmes d'exploitation ou applications sur un même serveur
physique, comme s'ils s'exécutaient sur des machines distinctes. Chaque environnement virtuel est isolé des autres.
Historique
Années 1960 1
IBM développe les premières techniques de virtualisation sur
mainframes (CP-40, VM/370)

2 1999
VMware lance Workstation, première solution de virtualisation
x86 commerciale
2003 3
Xen, premier hyperviseur open source performant

4 2007
KVM intégré au noyau Linux

2008 5
Microsoft lance Hyper-V
Avantages de la virtualisation

Consolidation des serveurs Réduction des coûts Flexibilité


Réduction du nombre de machines Économies sur le matériel, l'énergie, l'espace Provisionnement rapide de nouvelles
physiques (ratio typique 10:1 à 20:1) datacenter machines virtuelles

Isolation Haute disponibilité


Chaque VM est isolée, une panne n'affecte pas les autres Migration à chaud, snapshots, réplication
1.2 Les hyperviseurs
L'hyperviseur (ou VMM - Virtual Machine Monitor) est la couche logicielle qui permet de créer et gérer les machines
virtuelles. Il abstrait les ressources matérielles et les distribue aux VMs.

Hyperviseur de Type 1 (Bare-metal)


S'exécute directement sur le matériel, sans système d'exploitation hôte. Offre les meilleures performances et est utilisé en production.

VMware ESXi : Leader du marché entreprise, solution mature et complète (vSphere)


Microsoft Hyper-V : Intégré à Windows Server, bonne intégration écosystème Microsoft
KVM (Kernel-based Virtual Machine) : Open source, intégré au noyau Linux, utilisé par les clouds publics
Xen : Open source, utilisé par AWS (version modifiée), Citrix XenServer
Hyperviseur de Type 2 (Hosted)
S'exécute comme une application sur un système d'exploitation hôte. Plus simple à installer, utilisé pour le développement et les tests.

VMware Workstation/Fusion Oracle VirtualBox Parallels Desktop


Solution professionnelle pour Windows/Mac Gratuit, open source, multi-plateforme Optimisé pour macOS, excellent pour
Windows sur Mac
Comparaison Type 1 vs Type 2
Critère Type 1 Type 2

Performance Excellente (accès direct) Bonne (overhead OS)

Installation Complexe (serveur dédié) Simple (comme une app)

Usage Production, datacenter Dev, test, poste de travail

Sécurité Élevée (surface réduite) Moyenne (dépend de l'OS)


1.3 Gestion des ressources virtualisées

CPU virtuel (vCPU) Mémoire virtuelle


Les processeurs virtuels sont mappés sur les cœurs physiques. Chaque VM dispose d'une mémoire RAM dédiée. Des techniques comme le
L'hyperviseur ordonnance l'accès au CPU entre les VMs. Le sur- memory ballooning, la déduplication (KSM - Kernel Same-page Merging) et
provisionnement (overcommitment) permet d'allouer plus de vCPUs que de le swap permettent d'optimiser l'utilisation. Le sur-provisionnement
cœurs physiques, avec un ratio recommandé de 4:1 à 8:1 selon les charges. mémoire est plus risqué que le CPU.

Stockage virtuel Réseau virtuel


Disques virtuels : Fichiers (VMDK, VHD, QCOW2) représentant des vSwitch : Commutateur virtuel connectant les VMs entre elles et au
disques réseau physique
Thin provisioning : Allocation dynamique, le fichier grandit avec l'usage vNIC : Carte réseau virtuelle avec sa propre adresse MAC
Thick provisioning : Espace pré-alloué, meilleures performances VLAN : Segmentation logique du réseau
Snapshots : Capture de l'état du disque à un instant T SR-IOV : Accès direct au matériel réseau pour de meilleures
performances
1.4 Fonctionnalités avancées

Live Migration (vMotion) DRS (Distributed Resource Scheduler)

Déplacement d'une VM en fonctionnement vers un autre hôte sans Équilibrage automatique de charge entre hôtes
interruption

Fault Tolerance
High Availability (HA)
VM miroir synchrone pour zéro interruption
Redémarrage automatique des VMs sur un autre hôte en cas de
panne
PARTIE 2

LA
CONTENEURISATIO
N
2.1 Introduction aux conteneurs
La conteneurisation est une méthode de virtualisation au
niveau du système d'exploitation. Contrairement aux VMs,
les conteneurs partagent le noyau de l'OS hôte, ce qui les
rend plus légers et plus rapides à démarrer.
Principes fondamentaux

Isolation des processus Limitation des ressources


Chaque conteneur a sa propre vue du système (namespaces Linux) Contrôle du CPU, mémoire, I/O via cgroups

Système de fichiers en couches Portabilité


Images immuables avec couches superposées (UnionFS) "Build once, run anywhere" - même comportement partout
Machines virtuelles vs Conteneurs
Critère Machine Virtuelle Conteneur

Taille Go (OS complet) Mo (app + dépendances)

Démarrage Minutes Secondes

Isolation Forte (noyau séparé) Bonne (noyau partagé)

Densité 10-20 VMs/serveur 100+ conteneurs/serveur

OS invité Tout OS Même famille que l'hôte


2.2 Docker
Docker, lancé en 2013, a démocratisé la conteneurisation en la rendant accessible aux développeurs. C'est aujourd'hui le
standard de facto pour la création et l'exécution de conteneurs.

Architecture Docker
Docker Engine : Le runtime qui exécute les conteneurs (containerd + runc)
Docker Daemon (dockerd) : Service qui gère les objets Docker (images, conteneurs, réseaux)
Docker CLI : Interface en ligne de commande pour interagir avec le daemon
Docker Registry : Dépôt d'images (Docker Hub, registres privés)

Concepts clés
Image : Template immuable contenant l'application et ses dépendances. Construite à partir d'un Dockerfile, composée de couches (layers).

Conteneur : Instance en cours d'exécution d'une image. Éphémère par défaut, peut être arrêté, redémarré, supprimé.

Dockerfile : Fichier texte contenant les instructions pour construire une image. Chaque instruction crée une couche.

Volume : Mécanisme de persistance des données en dehors du conteneur.


Commandes Docker essentielles

docker pull nginx docker run -d -p 80:80 nginx

Télécharger une image Lancer un conteneur

docker ps docker build -t myapp .

Lister les conteneurs actifs Construire une image

docker exec -it <id> bash docker logs <id>

Entrer dans un conteneur Voir les logs


2.3 Docker Compose
Docker Compose permet de définir et gérer des applications multi-conteneurs. Un fichier YAML décrit tous les services,
réseaux et volumes nécessaires.

Exemple de [Link]
version: '3.8'
services:
web:
build: ./app
ports:
- "8080:80"
depends_on:
- db
db:
image: postgres:14
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:

Commandes Docker Compose

docker compose up -d docker compose logs -f

Démarrer tous les services Suivre les logs

docker compose down docker compose ps

Arrêter et supprimer État des services


Points clés à retenir
1 La virtualisation permet de consolider les serveurs et d'optimiser l'utilisation des ressources matérielles.

2 Les hyperviseurs de type 1 offrent les meilleures performances pour la production, le type 2 est adapté au
développement.

3 Les conteneurs sont plus légers et rapides que les VMs car ils partagent le noyau de l'OS hôte.

4 Docker a standardisé la conteneurisation avec le concept d'images immuables et portables.

5 Docker Compose simplifie le déploiement d'applications multi-conteneurs.

6 VMs et conteneurs sont complémentaires : VMs pour l'isolation forte, conteneurs pour la densité et l'agilité.

Références
Documentation Docker : [Link]
VMware vSphere Documentation
Linux Containers (LXC) : [Link]
The Docker Book - James Turnbull

Vous aimerez peut-être aussi