CC Rappel
CC Rappel
Virtualisation
Partie 1 : Fondements Cloud Computing
M2 SSII FAD
Enseignant :Dr. Aymen Ayari
Email : [Link]@[Link]
Whatsapp: +21620077317
Agenda 11
1. Motivations
2. Définition du Cloud Computing
3. Les caractéristiques du Cloud Computing
4. Les technologies clés
5. Les modèles de services Cloud
6. Les modèles de déploiement Cloud
7. Cas d’étude
8. Les défis du Cloud Computing
9. Cloud versus Fog versus Edge
Computing
Chapitre 1 : Introduction à la sécurité sur le Cloud
Conception de la sécurité
Politiques de sécurité
Chapitre 3 : Sécurisation des Infrastructure
Structure d’une application web 3-tier
Utilisation d’un Cloud virtuel privé
(VPC)
journalisation
Chapitre 6 : Réponse à un incident et gestion de la situation
Identifier an incident
Exemples de services qui supportent la phase de découverte et d’identification
CAPEX
OPEX
Quelques définitions
“An emerging IT development, deployment and delivery model, enabling realtime delivery of
products, services and solutions over the internet “ (IDC 2008)
“the idea of delivering personal and business productivity applications from centralized
servers “(Merrill Lynch 2008)
Définition du Cloud Computing (3/3) 14
Conclusions
1. Motivations
2. Définition du Cloud Computing
3. Les caractéristiques du Cloud Computing
4. Les technologies clés
5. Les modèles de services Cloud
6. Les modèles de déploiement Cloud
7. Cas d’étude
8. Les défis du Cloud Computing
9. Cloud versus Fog versus Edge
Computing
Caractéristiques du Cloud Computing (NIST) (1/6) 16
Notes
Notes
Source:Derrik Rountree and Ilena Castrillo. The Basics of Cloud Computing. 2014, Elsevier.
Caractéristiques du Cloud Computing (NIST) (3/6) 18
Notes
Notes
Notes
1. Motivations
2. Définition du Cloud Computing
3. Les caractéristiques du Cloud Computing
4. Les technologies clés
5. Les modèles de services Cloud
6. Les modèles de déploiement Cloud
7. Cas d’étude
8. Les défis du Cloud Computing
9. Cloud versus Fog versus Edge
Computing
Les technologies clés (1/5) 23
•Les technologies clés qui ont poussé vers l’évolution rapide du Cloud
Computing sont :
• La Virtualisation
• Les Services Web et architecture orientée service
• Les services Web 2.0 & mashup
Les technologies clés (2/5) 24
1. Virtualization
•Virtualisation
• Services Web et Architectures orientées service
• Web 2.0 et mashup
•Les appareils (périphériques) d’accès au Cloud
• Les technologies de connexion Internet haut débit, etc.
Agenda 28
1. Motivations
2. Définition du Cloud Computing
3. Les caractéristiques du Cloud Computing
4. Les technologies clés
5. Les modèles de services Cloud
6. Les modèles de déploiement Cloud
7. Cas d’étude
8. Les défis du Cloud Computing
9. Cloud versus Fog versus Edge
Computing
Les modèles de services Cloud (1/9) 29
• Les services Cloud sont offerts sous forme de trois types de base :
Niveau Utilisateur
Les fournisseurs de services Cloud hébergent les
Description applications dans le Cloud. Ces applications sont
accessibles aux utilisateurs via connexion Internet.
Exemples Google Docs, Google Drive, OneDrive, Box,
Exemples
Dropbox, etc.
Les modèles de services Cloud (3/9) 31
Niveau Développeur
Les développeurs peuvent faire la conception, le
Description développement et le test des applications qui s’exécutent
dans l’infrastructure du fournisseur de service Cloud.
Heroku, Amazon AWS Elastic Beanstalk Cloud Foundry,
Exemples Google App Engine, etc.
Les modèles de services Cloud (5/9) 33
Exemples Amazon EC2, Google Compute Engine, Azure Virtual Machines (VMs)
Les modèles de services Cloud (7/9) 35
1. Motivations
2. Définition du Cloud Computing
3. Les caractéristiques du Cloud Computing
4. Les technologies clés
5. Les modèles de services Cloud
6. Les modèles de déploiement Cloud
7. Cas d’étude
8. Les défis du Cloud Computing
9. Cloud versus Fog versus Edge
Computing
Les modèles de déploiement Cloud (1/18) 39
•Conformité
- La conformité Cloud compliance consiste à respecter les lois et
réglementations applicables à l'utilisation du cloud.
- L’utilisateur n’a pas de visibilité des opérations exécutées dans la partie back-
end.
•Audit
- Capacités d’audit limitées : pas d’accès direct aux journaux système,
impossible de mettre en œuvre une alerte back-end.
Les modèles de déploiement Cloud (7/18) 45
Cloud privé
Notes
Définition NIST du Cloud privé
• The cloud infrastructure is provisioned for exclusive use by a singleorganization
Cloud communautaire
Notes
consumers from organizations that have shared concerns (e.g., mission, security
requirements, policy, and compliance considerations).
•It may be owned, managed, and operated by one or more of the organizations in the
community, a third party, or some combination of them, and it may exist on or off
premises.
Les modèles de déploiement Cloud (14/18) 52
•Conformité
- Tous les membres sont soumis à toutes les réglementations de conformité
auxquelles chaque organisation participante est soumise.
➡
Certains membres peuvent être soumis à des réglementations qu’ils neconnaissent
pas.
•Audit
- Tous les membres ont des capacités d'audit complètes pour effectuer n'importe
quelle action.
➡
Besoin de trouver un accord entre les membres sur qui exécutera quelles activités.
Les modèles de déploiement Cloud (15/18) 53
Cloud hybride
Notes
Définition NIST du Cloud hybride
•The cloud infrastructure is a composition of two or more distinct cloud infrastructures
(private, community, or public) that remain unique entities, but are bound together by
standardized or proprietary technology that enables data and application portability
(e.g., cloud bursting for load balancing between clouds).
Les modèles de déploiement Cloud (18/18) 56
•Audit
- Besoin d'un mécanisme pour assurer la corrélation du journal des événements
entre le système interne (privé) et externe (public) pour effectuer des actions
d’audit.
Agenda 64
1. Motivations
2. Définition du Cloud Computing
3. Les caractéristiques du Cloud Computing
4. Les technologies clés
5. Les modèles de services Cloud
6. Les modèles de déploiement Cloud
7. Cas d’étude
8. Les défis du Cloud Computing
9. Cloud versus Fog versus Edge
Computing
Les défis du Cloud Computing (1/2) 65
• Capacités de gestion
- Un fort potentiel d'amélioration de services fournis est nécessaire : évolutivité,
l'équilibrage de charge.
Spring
2020
Introduction à la virtualisation 6
Spring
2020
Introduction à la virtualisation 7
Notes
Spring
2020
Terminologi 8
e
Machine hôte = machine exécutant les différents systèmes virtuels. Le système hôte
est le système d’exploitation principal installé sur la machine hôte.
Machine invitée = machine virtuelle (VM) s’exécutant dans l'environnement de
virtualisation. Les machines virtuelles s’exécutent sur une machine hôte.
Notes
La machine virtuelle est appelée encore serveur privé virtuel (Virtual Private
Server, VPS) ou environnement virtuel (Virtual Environment, VE).
La machine hôte considère les machines virtuelles comme des applications
auxquelles elle alloue les ressources.
Spring
2020
Avantages 11
Sécurité
• Possibilité d’isoler un système (OS virtuel) et l’arrêter en cas d’attaque
informatique sans que cela influence la machine hôte.
Déploiement et migration facile des machines virtuelles.
• Le processus de création des machines virtuelles est plus rapide.
• Possibilité de source modèle et de clonage.
Simplification de l’administration
• Disposition d’une console de gestion des machines virtuelles et possibilité
de faire le monitoring des performances de chaque VM en tempsréel.
Isolation logicielle des utilisateurs d’une même machine physique.
Spring
2020
Domaines d’application 13
• Virtualisation de serveur
• Virtualisation de poste de travail
• Virtualisation d’application
• Virtualisation de stockage
• Virtualisation du réseau
Spring
2020
Domaines d’application 14
La virtualisation des
serveurs
• Premier domaine d’application de la technique de virtualisation.
• qualifiée de virtualisation de système d’exploitation.
• Consiste à l’allocation d’une partie du matériel de la machine hôte aux
machines virtuelles.
•
La virtualisation de poste de
•travail
Evolution de la virtualisation des serveurs.
• Le poste de travail virtualisé est appelé encore bureauvirtuel.
• La virtualisation des postes de travail permet de déplacerle système d’exploitation,
les applications et les paramètres de l’utilisateur des stations clientes vers le centre
de données.
•
•
L’utilisateur n’a que se connecter à l’environnement de la
machine via unterminal. L’approche la plus connue est VDI
(Virtual Desktop Infrastructure) : consiste à héberger une image
de PC virtuel sur un serveur.
Exemples de solutions de virtualisation de poste de travail :
VMware View, Citrix XenDesktop, NEC Virtal PC Center, etc.
Spring
2020
Domaines d’application 16
La virtualisation des
•applications
Consiste à la création d’un environnement virtuel propre à l’application: systèmes
de fichiers, clés de registre, etc.
•
L’application virtuelle fonctionne dans une “capsule” isolée du système
d’exploitation hôte et des autres aplications qui s’exécutent directementsur le
•
système.
Exemples de solutions de virtualisation d’applications : VMware ThinApp, Citrix
XenApp, etc.
Notes
• Les clés de registre ainsi que le système de fichiers sont copies réalisées à partir
du système d’exploitation sur lequel l’application s’est exécutée (environnement
propre à son exécution)
Spring
2020
Domaines d’application 17
La virtualisation des
applications
Spring
2020
Domaines d’application 18
La virtualisation de
•stockage
Appelée encore abstraction du stockage.
•
Consiste à la fédération ou groupement de plusieurs ressources de stockage
hétérogènes et indépendantes en une seule ressource centralisée.
•
Des volumes logiques ou encore disques de stockage virtuels sont ainsi crées à
•
partir de la ressource centralisée.
Les données stockées sur un serveur peuvent être réparties sur plusieurs
emplacements physiques indépendants.
Notes
Spring
2020
Domaines d’application 19
La virtualisation du
Consiste à partager une même infrastructure réseau physique entre plusieurs
•réseau
Notes
Spring
2020
Rappel : Niveaux de privilèges (anneaux CPU) 21
Chaque niveau de privilège impose des restrictions sur l’accèsau matériel : plus le
niveau est bas, plus le programme a du contrôle
Spring
2020
Rappel : Niveaux de privilèges (anneaux CPU) 22
Spring
2020
Rappel : Système d’exploitation, Application 23
Système
d’exploitation
• Ensemble de programmes fonctionnant en mode superviseur.
• Le mode superviseur permet l’interaction directe de l’OS avec lacouche
Applicatio
•n Une application est exécutée par le microprocesseur en mode utilisateur . Une
• application se sert de fonctions fournies par l’OS pour solliciter l’accès à des
ressources matérielles
Spring
2020
Rappel : Système d’exploitation, Application 24
Système d’exploitation
Interface physique
Matériel / Logiciel
Materiel
Spring
2020
Rappel : Niveaux de privilèges (anneaux CPU) 25
Spring
2020
Couche de virtualisation 26
Spring
2020
Pré-requis de la virtualisation : Popek&Goldberg 27
Notes
• Texte de Popok&Goldberg
Any program run under the VMM should exhibit an effect identical with that
demonstrated if the program had been run on the original machine directly,
with the possible exception of differences caused by the availibility of system
resources and differences caused by timing dependencies.
Spring
2020
Pré-requis de la virtualisation : Popek&Goldberg 28
Notes
• Texte de Popok&Goldberg
Spring
2020
Pré-requis de la virtualisation : Popek&Goldberg 29
Notes
• Texte de Popok&Goldberg
Spring
2020
Les types d’hyperviseurs 30
Spring
2020
Les types d’hyperviseurs 31
Virtualisatio Para-Virtualisatio
n n
Virtualisation
logicielle
(Software based)
Virtualisation par
Conteneurisation
(Containerisation)
Spring
2020
Les techniques de virtualisation 33
Virtualisatio Para-Virtualisatio
n n
Virtualisation
logicielle
(Software based)
Virtualisation par
Conteneurisation
(Containerisation)
Spring
2020
Virtualisation Complète 34
Notes
Materiel
Spring
2020
Les techniques de virtualisation 36
Virtualisatio Para-Virtualisatio
n n
Virtualisation
logicielle
(Software based)
Virtualisation par
Conteneurisation
(Containerisation)
Spring
2020
Virtualisation Logicielle : Software based 37
Appelée virtualisation par traduction binaire (Binary translation) et est plutôt une
technique d’émulation adoptée en absence de support de virtualisationmatérielle et qui
consiste à la traduction d’un jeu d’instruction d’une architecture source (OS invité) vers
une architecture de destination (OS hôte).
Technique apportée par VMware pour les architectures x86 en 1999.
Les instructions exécutées par les systèmes invités peuvent être réparties en
instructions critiques et non critiques.
Le VMM interceptent les instructions des systèmes invités et les analyse pour
identifier les instructions sensibles ou privilégiées.
•Les instructions non critiques sont des instructions qui ne contrôlent pas le
matériel et qui ne menacent pas la sécurité système, ainsi s’exécutent
directement sur le matériel.
•Les instructions critiques sont émulées : les instructions qui sont normalement
des instructions
privilégiées afin privilégiées (anneau
de pouvoir les 0) sont
exécuter traduites
sur le en des
processeur instructions
physique.
La virtualisation complète combine ainsi la translation binaire et l’accès direct.
Spring
2020
Virtualisation Logicielle : Software based 38
Anneau 2
Traduction
Materiel binaire
Spring
2020
Les techniques de virtualisation 39
Virtualisatio Para-Virtualisatio
n n
Virtualisation
logicielle
(Software based)
Virtualisation par
Conteneurisation
(Containerisation)
Spring
2020
Virtualisation assistée par matériel : Hardware Assisted 40
Virtualization
Spring
2020
Virtualisation assistée par matériel : Hardware Assisted 41
Virtualization
AMD-V Intel VT-x
Pour pouvoir virtualiser un système d’exploitation 64 bits, le microprocesseur
de l’ordinateur doit être doté de la technologie de la virtualisation assistée
matériellement.
La technologie de virtualisation est identifiée par AMD-V pour les
microprocesseurs AMD et Intel VT-x pour les microprocesseurs Intel et doit être
activée dans le menu SETUP du BIOS/UEFI.
Spring
2020
Virtualisation assistée par matériel : Hardware Assisted 42
Virtualization
Spring
2020
Les techniques de virtualisation 43
Virtualisatio Para-Virtualisatio
n n
Virtualisation
logicielle
(Software based)
Virtualisation par
Conteneurisation
(Containerisation)
Spring
2020
Para-virtualisation 44
Spring
2020
Para-virtualisation 46
OS OS OS
Privilégié Invité Invité
Hyperviseur
Materiel
Spring
2020
Les techniques de virtualisation 47
Les OSs invités émettent des requêtes Les OS invités communiquent directement avec
pour l’accès au hardware l’hyperviseur à travers les drivers
Spring
2020
Les techniques de virtualisation 48
Virtualisatio Para-Virtualisatio
n n
Virtualisation
logicielle
(Software based)
Virtualisation par
Conteneurisation
(Containerisation)
Spring
2020
Les conteneurs 49
Motivations?
La virtualisation par création des machines virtuelles comportant un OS complet
(système de fichiers, drivers, bibliothèques, etc. ) ainsi que l’application entraine
un gaspillage de mémoire et alourdit la charge du système ce qui limite le nombre
possible des instances virtuelles.
La solution alternative à la création des VMs n’est qu’une nouvelle forme du
cloud computing qui gagne de plus en plus une grande popularité : les
conteneurs / containers.
Alors que chaque serveur virtuel porte son propre OS invité, les conteneurs
s'exécutent par-dessus d’un seul système d'exploitation installé sur leserveur
hôte.
Spring
2020
La virtualisation par conteneurisation 50
Les conteneurs sont des éléments informatiques offrant un niveau élevé
d’isolation les uns des autres. Chaque conteneur est limité à son propre
"espace de noms"; il ne voit que son propre système de fichiers et sa propre
mémoire.
Le conteneur virtualise seulement l’environnement d’exécution : le
processeur, la mémoire et le système de fichiers.
Dans cette approche, le noyau de l’OS hôte exécute directement plusieurs
instances virtuelles sans passer par une couche logicielle supplémentaire.
Seul l’OS hôte se charge des appels matériels.
Les conteneurs sont fournis à partir d'images de conteneurs.
Les fournisseurs cloud offrent des bibliothèques d’images de conteneurs
standards, ainsi que la prise en charge de la création et du stockage
d’images personnalisées.
Solution très performante et économique en mémoire mais partage du noyau
: mauvaise isolation.
Exemples : chroot, Linux Vserver, OpenVZ , Docker.
Spring
2020
VM Versus Conteneur 51
Source :[Link]
Spring
2020
VM Versus Conteneur 52
Spring
2020
Les principales solutions de virtualisation 53
XEN
Spring
2020
Les principales solutions de virtualisation 54
XEN : Architecture
Les fonctions d’administration de Xen sont implémentées sur une machine
virtuelle privilégiée, dom0 (domain 0), lancée directement après démarrage de
l’hyperviseur.
“dom0” est un système d’exploitation complet avec noyau modifié pour
assurer la communication avec l’hyperviseur sous-jacent.
L’hyperviseur gère l’accès CPU, mémoireet les interruptions.
“dom0” a un accès direct à la couche matérielle et gère tous les accès aux E/
S système et l’intéraction avec les autres VMs.
“dom0” supervise et contrôle (démarrage, arrêt) les autres VMs non
privilégiées et appelées “domU (User domain, Unprivileged domain)“. Deux
types de virtualisation sont possibles pour la création des “domU” :
para-virtualisation et matériellement assistéé (Hardware-assisted Virtualized
Machine - HVM)
Spring
2020
Les principales solutions de virtualisation 55
XEN :
Architecture
Source :
[Link]
Spring
2020
Les principales solutions de virtualisation 56
VMware ESXi
Spring
2020
Les principales solutions de virtualisation 58
Hyper-V
Hyperviseur de type 1.
Hyper-V, connu sous le nom de Windows Server Virtualisation et est la
plateforme de virtualisation Microsoft qui permet de créer desinfrastructures
virtuelles sous Windows.
Hyper-V est à base d’un hyperviseur 64 bits de la version de Windows Server
2008.
Systèmes d'exploitation supportés : diverses versions de Linux (Suse et Red
Hat), FreeBSD et Windows.
Hyper-V repose sur le concept de partitions : une partition représente uneentité
étanche disposant des ressources processeurs et mémoire.
Deux types de partitions sont définies :
•Partition parent : partition principale qui permet la gestion complète des
partitions enfants et la gestion des ressources matérielles.
•Partitions enfants : sont crées par l'hôte et contiennent des systèmes
d'exploitation invités qui s'exécutent avec la partition parent.
Spring
2020
Les principales solutions de virtualisation 59
Source :[Link]
Spring
2020
Les principales solutions de virtualisation 60
Docker
Docker est un projet open source écrit en GO et hébergé sur GitHub ( https://
[Link]/docker).
Le projet a été initialement développé par la startup DotCloud
Docker permet de lancer des applications dans des conteneurs logiciels :
exécuter un code à l’intérieur d’un conteneur indépendamment de lamachine
hôte.
Spring
2020
Les principales solutions de virtualisation 61
Lexique Docker
Conteneur : image exécutable d’un environnement complet : code, librairies, outils et
configuration.
Image : ensemble de read-only fichiers contenant un système de base et une
application.
Docker HUB : dépôt public d’images mises à disposition par Docker (http://
[Link])
Dockerfile : fichier texte de description d’une image.
Docker Compose : fichier texte (yaml) de description d’un ensemble de conteneurs.
Docker Machine : outil de déploiement des hôtes Docker sur différentes plateformes
(Mac, Windows).
Orchestrateur : gère un pool de ressources serveurs (Swarm, Kubernetes,..).
Registry : dépôt privé d’images Docker.
Notes
Un orchestrateur de conteneurs permet aux utilisateurs de contrôler le démarrage et l’arrêt des
conteneurs, les regrouper en clusters et coordonner tous les processus composant une application.
Spring
2020
Les principales solutions de virtualisation 62
Docker
Source :[Link]
Spring
2020
Les principales solutions de virtualisation 63
Kubernetes (K8s)
Kubernetes est une plateforme pour automatiser le déploiement, la mise à l'échelle et la
gestion des applications conteneurisées.
Kubernetes a été crée par Google en 2014 et publièe en 2015.
Parallèlement à sa publication, Google s'est associé à la Linux Foundation pour
former la Cloud Native Computing Foundation (CNCF), et a proposé Kubernetes
comme technologie de base.
Kubernetes prend en charge Docker et d’autres technologies.
Kubernetes permet de prendre en charge plusieurs Kernels et
gérer ainsi les conteneurs sur ces différents serveurs.
Disponible sur les plateformes cloud : Google Container Engine,
Azure, AWS EKS, Bluemix, etc.
Notes
Le nom Kubernetes tire son origine du grec ancien, signifiant capitaine ou pilôte et
est la racine de gouverneur et cybernetic. K8s est l’abréviation dérivée par le
remplacement des 8 lettres “ubernete” par “8” Spring
2020
Les principales solutions de virtualisation 64
Kubernetes (K8s)
Kubernetes orchestre l’environnement des conteneurs à l’aide des
fonctionnalités telles que :
• La gestion des services applicatifs sur plusieurs serveurs.
• La planification de l’exécution des conteneurs dans un cluster.
• Garantir l’intégrité du conteneur.
• Equilibrage de charge.
• Passage à l’échelle : évolutivité.
• Assurer le monitoring.
Spring
2020