1 Introduction
Ce document résume le cours Virtualisation, Cloud & HPC dispensé à l’ENSIAS. Le
cours,
d’une durée de 20 heures, couvre les concepts fondamentaux de la virtualisation,
l’utilisation de
Docker pour la conteneurisation, les principes du Cloud Computing et les bases du
calcul haute
performance (HPC) avec MPI.
2 Fondements de Docker
Docker est une plateforme de conteneurisation permettant de déployer des
applications dans
des environnements isolés.
2.1 Architecture de Docker
L’architecture de Docker repose sur :
— Docker Registry : Stocke les images Docker (ex. Docker Hub).
— Docker Engine : Gère les conteneurs et les images.
— Docker Machine : Automatise la création de machines virtuelles pour Docker.
2.2 Commandes Docker courantes
— docker run -p 80:2023 : Mappe le port 80 du conteneur au port 2023 de l’hôte.
— docker pull : Télécharge une image depuis un registre.
— docker build : Construit une image à partir d’un Dockerfile.
— docker service update –image <imgName> : Met à jour une image de service.
— docker rm -f : Supprime un conteneur, même en cours d’exécution.
2.3 Dockerfile
Un Dockerfile contient les instructions pour construire une image. Les commandes
clés incluent :
— FROM : Spécifie l’image de base.
— CMD : Définit la commande exécutée au démarrage du conteneur.
2.4 Utilisation avancée
— Les conteneurs en pause peuvent être arrêtés.
— Docker Swarm et Docker Images sont utilisés pour gérer les conteneurs à grande
échelle.
— Adresse IP par défaut dun hôte Docker : [Link]/16.
1
3 Virtualisation
La virtualisation permet d’exécuter plusieurs systèmes d’exploitation sur une seule
machine
physique.
3.1 Types de virtualisation
— Hyperviseur de type 1 : Logiciel s’exécutant directement sur le matériel (ex.
KVM,
VirtualBox).
— Hyperviseur de type 2 : Logiciel s’exécutant sur un système d’exploitation hôte.
3.2 Avantages
La virtualisation complète permet d’exécuter des systèmes indépendants de
l’architecture
matérielle de l’hôte et facilite l’invitation de systèmes dans des machines
virtuelles.
4 Cloud Computing
Le Cloud Computing offre des ressources informatiques à la demande via Internet.
4.1 Types de Cloud
— Cloud privé : Ressources dédiées à une seule organisation.
— Cloud public : Ressources partagées entre plusieurs utilisateurs (ex. AWS,
Azure).
— Cloud hybride : Combinaison de clouds privés et publics.
4.2 Modes d’utilisation
— SaaS (Software as a Service) : Applications hébergées (ex. Google Apps).
— PaaS (Platform as a Service) : Plateforme de développement (ex. Heroku).
— IaaS (Infrastructure as a Service) : Infrastructure virtuelle (ex. AWS EC2).
4.3 Sécurité
Le chiffrement des données est essentiel pour protéger les services Cloud publics
contre le
vol de données.
5 Calcul Haute Performance (HPC) avec MPI
Le cours inclut un exercice pratique sur MPI (Message Passing Interface) pour le
calcul
distribué.
5.1 Exercice pratique
L’exercice consistait à écrire un programme MPI pour calculer la somme des éléments
d’un
tableau distribué entre plusieurs processus :
— Un tableau de 40 entiers est réparti entre 4 processus.
— Chaque processus calcule une somme partielle.
— La somme finale est calculée par le processus racine.
2
6 Conclusion
Ce cours fournit une base solide sur la virtualisation, la conteneurisation avec
Docker, le
Cloud Computing et le calcul distribué avec MPI. Ces technologies sont essentielles
pour le
déploiement d’applications modernes, la gestion d’infrastructures scalables et
l’optimisation des
performances dans des environnements distribués.