Virtualisation et Cloud Computing
Pr. Mostapha Zbakh
[email protected] 2022 - 2023
Objectifs:
La première partie de ce cours montre l’intérêt de la virtualisation, quoi et comment virtualiser.
Les différentes techniques de la virtualisation sont détaillées. La construction et la gestion d’une architecture
virtualisée sont aussi abordées.
La deuxième partie introduit les concepts du cloud computing et de ses services offerts. Elle présente de
manière détaillée, à travers quelques technologies :
La configuration du cloud,
Le déploiement d’applications pour le cloud,
Migration d’applications entre les différents clouds
Simulateur Cloud : cas de CloudSim
Virtualisation et Cloud Computing Pr M. Zbakh 2
Avant de commencer ? :
1. Virtualisation : définition, pourquoi on virtualise, qu’est ce qu’on virtualise?
2. Avec quels outils (solutions)?
3. Taux d’utilisations des outils en pourcentage? Comparaison des outils?
4. Différents types de virtualisation?
5. Domaines d’applications?
6. Cloud : Définition? Pourquoi , qu’est ce qu’on peut faire avec?
7. Les différents modes du cloud ?
8. Les différents architectures du cloud?
9. Les différents opérateurs du cloud?
10. Les différentes applications du cloud?
11. MapReduce in cloud?
12. Load balaning in cloud ?
13. Fog/Edge compting?
14. How to secure a virtualized architecture ?
15. How to secure a cloud ?
Virtualisation et Cloud Computing Pr M. Zbakh 3
Sommaire :
I. Introduction générale
II. Virtualisation
1. Introduction
2. Les hyperviseurs
Hyperviseur de type 1
Hyperviseur de type 2
3. Les différents types de la Virtualisation
Virtualisation complète
Para-virtualisation
Les Isolateurs
4. Historique de la virtualisation
5. Les principales solutions: XEN, KVM, VMware ESX, Hyper-V, OpenVZ, LXC
6. Domaines d’application
7. La Virtualisation de Stockage
8. Construction et gestion d’une infrastructure virtuelle, cas de Proxmox
9. Conteneurisation : Fonctionnement, Avantages et Inconvénients par rapport
à la virtualisation
10. Cas de Docker.
Virtualisation et Cloud Computing Pr M. Zbakh 4
III. Cloud Computing
1. Concepts, définitions et architecture du cloud computing
2. Multiplier les applications sur le cloud
3. Les services disponibles
4. Les architectures du cloud computing
5. Les composantes des plateformes PaaS et IaaS, SaaS
6. Les principales offres IaaS et PaaS
7. Les différents acteurs du Cloud
8. Les technologies Edge Computing & Fog Computing
9. OpenStack : Fonctionnement, Architecture logique, Architecture conceptuelle, Gestion d’accès
10. Autres technologies similaire : Vmware vCloud, Microsoft System Center, IBM SmartCloud
11. Déploiement d’applications pour le cloud
12. Cas d’Ansible : Fonctionnalités, Exemple de déploiement, Avantages et Inconvénients, Intégration de
politiques de sécurité
13. Slurm Workload Manager : Définitions et Fonctionnalités
14. Automatiser le déploiement d’application sur le Cloud
15. Migration d’applications entre les clouds
16. Cas du cloud Kubernetes
17. Simulateur Cloud : CloudSim
Virtualisation et Cloud Computing Pr M. Zbakh 5
IV. Sécurité de la virtualisation et du Cloud Computing
1. La sécurité en général
Les principes de la sécurité informatique
Les types d’attaques usuels
2. Sécurité de la virtualisation et du cloud
La sécurité dans la virtualisation
La sécurité dans le cloud
3. Les solutions de sécurité du cloud et de la virtualisation
Les solutions de sécurité : outils non techniques
Les solutions de sécurité : outils techniques
Les solutions de sécurité au niveau « hyperviseur »
Les solutions de sauvegarde, back-up, restauration
Les solution futures de cryptage et de chiffrement
Les autres approches
Virtualisation et Cloud Computing Pr M. Zbakh 6
Bibliographie
[1] Kenneth Hess, Amy Newman, Virtualisation en pratique, pearson, 2012
[2] N. GRASSA, « Cours Virtualisation et Cloud », http://n.grassa.free.fr/cours/cours_virtualisation_et_Cloud.pdf
[3] D.BRULEY. « Vmware : Vsphère et View », ENI, 2ème Edition.
[4] Linux Magazine : « Testez le Cloud », GNU/Linux Magazine 142.
[5] Livre blanc : Sécurité et Virtualisation, David GELIBERT , Farid SMILI , Jérôme DEROCK , Loïc RATSIHORIMANANA ,
Mickaël DREYER , Thomas GERVAISE, 2012
[6] J.R. Winkler, La sécurité dans cloud, techniques pour une informatique en nuage sécurisée, pearson, 2011
Virtualisation et Cloud Computing Pr M. Zbakh 7
Quelques produits (Virtualisation & Cloud):
Docker Container
Création et Gestion des machines virtuelles Automatiser le déploiement et la gestion des applications
conteneurisées
https://aws.amazon.com
Virtualisation et Cloud Computing Pr M. Zbakh 8
INTRODUCTION GÉNÉRALE
De nombreuses capacités apportées par les outils de la virtualisation, ce qui a poussé les
responsables informatiques de plusieurs entreprises de se tourner vers cette
technologie
Il s’agit de configurer une machine physique en y installant plusieurs machines virtuelles
D’où, la possibilité d’utiliser plusieurs systèmes d’exploitation sur une même machine.
Mais cette technologie prend toute son importance, surtout pour les serveurs en
optimisant la capacité et la puissance
Virtualisation et Cloud Computing Pr M. Zbakh 9
INTRODUCTION GÉNÉRALE
En réalité, ce n’est pas la virtualisation qui a attiré les entreprises, mais plutôt un
nouveau concept : « l’informatique dans les nuages », couramment appelé « le Cloud
Computing »
Ce principe offre à ses utilisateurs un moyen simple de stocker des données à la
demande, d’effectuer des traitements informatiques lourds.
La virtualisation n’est donc que le moyen de mettre au point une solution cloud
Virtualisation et Cloud Computing Pr M. Zbakh 10
INTRODUCTION GÉNÉRALE
Cependant aucun système n’est fiable, surtout en informatique. Le premier frein à
l’adoption du cloud est lié à la sécurité de leurs informations, comme on peut le voir à
travers des exemples de failles aujourd’hui (Sony, Amazon…)
Désormais, Il faut en plus penser aux problèmes concernant les contraintes
d’accessibilité et la dépendance au réseau
Et au-delà de la notion de confiance qu’on accorde au cloud computing, le problème du
cryptage des informations est, lui aussi, un réel soucis
Virtualisation et Cloud Computing Pr M. Zbakh 11
INTRODUCTION GÉNÉRALE
Face à cette tendance à vouloir adopter le cloud computing, plusieurs questions
peuvent être soulevées :
comment peut-on définir le cloud computing ?
Quels modèles et solutions existent ?
Pourquoi la virtualisation et le cloud sont des outils attractifs pour les
entreprises et quelles en sont les limites ?
Comment assurer l’intégrité des données ?
Comment fiabiliser l’accès et les échanges de données ?
Ce cours abordera de nombreux éléments permettant de:
comprendre ce qu’est le cloud computing,
avec quelles technologies il fonctionne,
la valeur ajoutée apportée aux entreprises
mais également les risques liés à son utilisation.
Il présentera également les problématiques de sécurité et les solutions
existantes.
Virtualisation et Cloud Computing Pr M. Zbakh 12
VIRTUALISATION
Virtualisation et Cloud Computing Pr M. Zbakh 13
VIRTUALISATION
Virtualisation et Cloud Computing Pr M. Zbakh 14
VIRTUALISATION
Virtualisation et Cloud Computing Pr M. Zbakh 15
VIRTUALISATION
Example with multi Core technology
Virtualisation et Cloud Computing Pr M. Zbakh 16
VIRTUALISATION
Virtualisation et Cloud Computing Pr M. Zbakh 17
VIRTUALISATION
Virtualisation et Cloud Computing Pr M. Zbakh 18
VIRTUALISATION
Un serveur est un ordinateur utilisé à distance depuis différents
postes de travail, ou autres serveurs
Un serveur possède des ressources matérielles, principalement
CPU, GPU, mémoire, disques et interfaces réseau
Ces ressources sont utilisées par des applications en s’appuyant
sur un système d’exploitation
Virtualisation et Cloud Computing Pr M. Zbakh 19
VIRTUALISATION
La virtualisation est un ensemble de techniques matérielles
et/ou logicielles qui autorisent l’exécution de plusieurs
applications indépendantes sur une même machine hôte
Grâce à la virtualisation, il est possible d’exécuter plusieurs
systèmes d’exploitation (OS invité) sur un même serveur
On parle d’environnement virtuel « Virtual Environment – VE »
ou de « Serveur privé virtuel :Virtual Private Server – VPS »
Virtualisation et Cloud Computing Pr M. Zbakh 20
VIRTUALISATION
Pour bénéficier de cette technologie, il faut équiper la machine
d’un logiciel de virtualisation permettant d’ajouter une couche de
virtualisation, appelée hyperviseur
L’hyperviseur masque les véritables ressources physiques de la
machine afin de proposer des ressources différentes et spécifiques
en fonction des applications existantes
Il y a une totale indépendance entre le matériel et les applications
Le logiciel de virtualisation simule autant de machines virtuelles
que de systèmes d’exploitation souhaité,
Virtualisation et Cloud Computing Pr M. Zbakh 21
Virtualisation et Cloud Computing Pr M. Zbakh 22
Virtualisation et Cloud Computing Pr M. Zbakh 23
Virtualisation et Cloud Computing Pr M. Zbakh 24
Chaque OS croit qu’il est installé seul sur la machine mais en réalité,
plusieurs OS peuvent fonctionner en parallèle en partageant les
mêmes ressources
Le principe de la virtualisation est donc un principe de partage :
les différents systèmes d’exploitation partagent les ressources du
serveur ( CPU, GPU, Mémoires, …)
Pour être utile de manière opérationnelle, la virtualisation doit
respecter deux principes fondamentaux :
Architecture virtualisée
Virtualisation et Cloud Computing Pr M. Zbakh 25
• Le cloisonnement : chaque système d’exploitation a un
fonctionnement indépendant, et ne peut interférer avec les
autres en aucune manière
• La transparence : le fait de fonctionner en mode virtualisé
ne change rien au fonctionnement du système d’exploitation
et a fortiori des applications
La transparence implique la compatibilité : toutes
les applications peuvent tourner sur un système virtualisé,
et leur fonctionnement n’est en rien modifié Architecture virtualisée
Virtualisation et Cloud Computing Pr M. Zbakh 26
HYPERVISEURS
Un hyperviseur est une plateforme de virtualisation qui permet à plusieurs
systèmes d’exploitation de fonctionner sur une même machine physique en
même temps
Deux types d’hyperviseurs :
HYPERVISEUR DE TYPE 1
Un hyperviseur de Type 1, ou natif, est un logiciel qui s’exécute
directement sur une plateforme matérielle. Cette plateforme est alors
considérée comme outil de contrôle de système d’exploitation
Un système d’exploitation secondaire peut, de ce fait, être exécuté au-
dessus du matériel
Virtualisation et Cloud Computing Pr M. Zbakh 27
HYPERVISEURS
L’hyperviseur de type 1 est un noyau hôte allégé et optimisé pour ne faire
tourner initialement que des noyaux de systèmes d’exploitation invités
adaptés et optimisés à cette architecture spécifique, ces systèmes invités
ayant "conscience" d’être virtualisés
Sur des processeurs ayant les instructions de virtualisation matérielle
(AMD-V et Intel VT), le système d’exploitation invité n’a plus besoin d’être
modifié pour pouvoir être exécuté dans un hyperviseur de type 1
Virtualisation et Cloud Computing Pr M. Zbakh 28
Examples : Xen, Oracle VM, ESX Server de Vmware.
Virtualisation et Cloud Computing Pr M. Zbakh 29
HYPERVISEUR DE TYPE 2
Un hyperviseur de Type 2 est un logiciel qui s’exécute à
l’intérieur d’un autre système d’exploitation
Un système d’exploitation invité s’exécutera donc en troisième
niveau au-dessus du matériel
Les systèmes d’exploitation invités n’ayant pas conscience
d’être virtualisés, ils n’ont pas besoin d’être adaptés
Exemples : VMware Workstation, VMware Fusion,
Hyperviseur open source QEMU, Microsoft Virtual PC et
Virtual Server, Virtual Box d’Oracle, Parallels Workstation de
SWsoft et Parallels Desktop
Virtualisation et Cloud Computing Pr M. Zbakh 30
TROIS TYPES DE VIRTUALISATION
VIRTUALISATION COMPLÈTE
La virtualisation complète permet de faire
fonctionner n’importe quel système d’exploitation
en tant qu’invité dans une machine virtuelle
Pour l’utilisateur final, ce type de virtualisation est
la plus simple à mettre en place et est la plus
pratique
Virtualisation complète
Virtualisation et Cloud Computing Pr M. Zbakh 31
PRINCIPE DE VIRTUALISATION COMPLÈTE
L’hyperviseur crée un environnement virtuel complet simulant un nouvel
ordinateur complet, avec du "faux matériel". Le système d’exploitation
invité (installé dans la machine virtuelle) ne communique qu’avec ce faux
matériel simulé
MAIS IL Y A DES LIMITATIONS …
Ce type de virtualisation ne permet de virtualiser que des systèmes
d’exploitation prévus pour la même architecture matérielle que le
processeur physique de l’ordinateur hôte
Par exemple, un ordinateur équipé d’un processeur Intel x86 sera
incapable de virtualiser un système d’exploitation prévu pour
fonctionner dans une architecture PowerPC.
Quelques hyperviseurs de virtualisation complète:
- VirtualBox
- VMWare Player, VMWare Workstation
- Parallels Desktop for Windows et Linux
- KVM 32
PARA-VIRTUALISATION
La paravirtualisation fait intervenir un hyperviseur
Il s’agit d’un noyau allégé au dessus duquel viendront se
greffer les systèmes invités
Contrairement à un système traditionnel de machines
virtuelles où la virtualisation est transparente, avec la
paravirtualisation, le système invité doit avoir conscience Para-virtualisation
qu’il tourne dans un environnement virtuel ce qui implique
d’employer un noyau modifié.
Virtualisation et Cloud Computing Pr M. Zbakh 33
PARA-VIRTUALISATION
Ce type de virtualisation permet des performances bien
plus importantes que la virtualisation totale assistée par
matériel vue précédemment
Quelques hyperviseurs de virtualisation assisté:
- XEN
- VMWare ESX/ESXi
- Hyper-V (Microsoft) Para-virtualisation
Virtualisation et Cloud Computing Pr M. Zbakh 34
ISOLATEURS
Un isolateur est un logiciel permettant d’isoler l’exécution des applications
dans ce qui sont appelés des contextes, ou bien zones d’exécution
Un isolateur permet ainsi de faire tourner plusieurs fois la même application
dans un mode multi-instance « plusieurs instances d’exécution »
Cette solution est très performante, du fait du peu d’overhead
« temps passé par un système à ne rien faire d’autre que se gérer »,
mais les environnements virtualisés ne sont pas complètement isolés
La performance est donc bonne, cependant
On ne peut pas vraiment parler de virtualisation de systèmes d’exploitation
Virtualisation et Cloud Computing Pr M. Zbakh 35
ISOLATEURS
Isolateur
Uniquement liés aux systèmes Linux, les isolateurs sont en fait composés
de plusieurs éléments et peuvent prendre plusieurs formes.
Virtualisation et Cloud Computing Pr M. Zbakh 36
ISOLATEURS
Exemples des Isolateurs:
• Linux-VServer (isolation des processus en espace utilisateur)
• Chroot (isolation changement de racine)
• BSD Jail (isolation en espace utilisateur)
• OpenVZ : libre (partitionnement au niveau noyau sous Linux)
• LXC : libre (usage des Groups du noyau Linux)
Isolateur
Virtualisation et Cloud Computing Pr M. Zbakh 37
Virtualisation et Cloud Computing Pr M. Zbakh 38
Virtualisation et Cloud Computing Pr M. Zbakh 39