0% ont trouvé ce document utile (0 vote)
72 vues39 pages

Cours - Virtualisation

Transféré par

kylaodou
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)
72 vues39 pages

Cours - Virtualisation

Transféré par

kylaodou
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

La

virtualisation

Oumarou KABORE
Consultant Ingénieur DevOps & Cloud
Sommaire 1. Généralités
2. Présentation de l’hyperviseur
3. Pratiques sur les Machines virtuelles
4. Vagrant – Automatisation de VMs
5. Machine virtuelle & cloud
6. Docker vs Machine virtuelle
Questions

La virtualisation
selon vous!
Généralités Historique

Le mot "virtuel" a connu une évolution au cours des dernières


années. Pas le mot lui-même, bien sûr, mais son usage s'est élargi
parallèlement à l'expansion de l'informatique, notamment avec
l'utilisation généralisée d'Internet et des smart phones. Les
applications en ligne nous ont permis de faire des achats dans des
magasins virtuels, d'examiner des lieux de vacances potentiels
grâce à des visites virtuelles, et même de conserver nos livres
virtuels dans des bibliothèques virtuelles. De nombreuses
personnes investissent un temps considérable et de l'argent réel
pour explorer et s'aventurer dans des mondes entiers qui n'existent
que dans l'imagination de quelqu'un et sur un serveur de jeux.

La première virtualisation à grande échelle a été réalisée sur les


mainframes IBM dans les années 1960.

La virtualisation est l’une des clés principales qui a donné naissance


aux services cloud en pleine expansion ces dernières années.
Généralités Définitions

• Selon les ingénieurs d’IBM, une machine virtuelle (VM) peut virtualiser toutes les
ressources matérielles, y compris les processeurs, la mémoire, le stockage et la
connectivité réseau. Un moniteur de machine virtuelle (VMM), qui est aujourd'hui
communément appelé hyperviseur, est le logiciel qui fournit l'environnement dans
lequel les VMs fonctionnent.

• Une définition simpliste serait de dire que la virtualisation est un ensemble de


technologies qui permettent d’obtenir tout type de ressources virtuelles (abstraites)
dont le fonctionnement et les performances très proches des ressources physiques à
partir desquelles elles ont été créées.

• La virtualisation utilise un logiciel (hyperviseur) qui simule les fonctionnalités du


matériel afin de créer un système virtuel.
Généralités Types de virtualisation

Virtualisation de serveurs Virtualisation de poste de travail


La virtualisation de serveurs est le type de virtualisation La virtualisation d’un poste de travail permet d’utiliser et
le plus répandu. Elle permet de créer facilement de de stocker des fichiers à des endroits auxquels tous les
nouveaux serveurs pour le déploiement de nouveaux membres d’une équipe peuvent accéder facilement.
services, créer des environnements de tests ou mieux Cela permet aux employés de travailler à distance en cas
gérer la répartition de ressources d’un serveur physique de problème.

Virtualisation d’applications Autres


D’autres types de virtualisation existent tels que la
Grâce à la virtualisation des applications, les utilisateurs
virtualisation de stockage, virtualisation des réseaux et la
peuvent accéder à une application qui n’est pas installée
virtualisation des données.
sur leur ordinateur.
Cette virtualisation est essentielle au travail à distance. Les
employés peuvent ainsi travailler depuis chez eux en
profitant de leurs outils professionnels
Généralités Avantages de la virtualisation

Moins de serveurs Meilleure sécurité


Le nombre de serveurs Les services applicatifs peuvent
physiques est réduit grâce aux être déployés de façon
VMs cloisonnée sur différentes VMs
assurant ainsi plus de sécurité
par le fait de l’isolation

Meilleure disponibilité Meilleure performance


Capacité de migrer les machines Scalabilité verticale sans downtime
à chaud en déplaçant une VM et possibilité d’équilibrer la charge
d’un serveur physique à un entre plusieurs VMs limitant les
autre sans besoin de la stopper ruptures de service

Economie financière Tremplin vers le cloud privé


Economie sur les coûts de La possibilité d’automatiser la
licence, possibilité de tester création de VMs à la demande
également de nouveaux services pour les services de votre
sans rien payer en remplaçant entreprise
les serveurs de test par des VM
Hyperviseur Description

Un hyperviseur est un arbitre des ressources. C'est un


logiciel qui se situe entre les ressources physiques Virtual Virtual Virtual
d'un serveur physique et les machines virtuelles qui Machine Machine Machine
fonctionnent sur ce serveur. En plus de l'allocation
Guest OS Guest OS Guest OS
des ressources, les hyperviseurs fournissent un
environnement virtuel pour ces charges de travail, Virtual Machine Monitor (VMM) or Hypervisor
permettent des réseaux virtuels pour la
communication entre les charges de travail et avec le
monde extérieur, et offrent diverses formes de Physical Server or Host
clustering pour la haute disponibilité.
Hyperviseur Rôles

Abstraction Performance Contrôleur

Fournir un Fournir cet Conserver


environnement environnement le contrôle
identique à avec un coût complet des
l'environnement minimal de ressources
physique performance du système

Virtualization Essentials 2nd Edition By Matthew Portnoy


Hyperviseur Types d’hyperviseur (1/2)
Virtual
Machine
Un hyperviseur de type 1 s'exécute directement sur le matériel
du serveur sans système d'exploitation en dessous. Comme il n'y
Hypervisor
a pas d'autre couche logicielle intermédiaire entre l'hyperviseur
et le matériel physique, on parle aussi d'implémentation "bare-
metal". Sans intermédiaire, l'hyperviseur de type 1 peut Physical server
communiquer directement avec les ressources matérielles de la
pile située en dessous de lui, ce qui le rend beaucoup plus Type 1
efficace que l'hyperviseur de type 2.

Exemples: vSphere, ESXi and ESX, Microsoft Hyper-V, Oracle VM


Virtual
Server, Citrix Hypervisor.
Machine

Hypervisor
Un hyperviseur de type 2 est en soi une application qui
fonctionne au-dessus d'un système d'exploitation traditionnel. OS
L’hyperviseur s’appuie sur l’os qui gère déjà toutes les ressources
matérielles. Physical server

Exemples: VMware Player, VMware Workstation, and Microsoft Type 2


Virtual Server, VirtualBox
Hyperviseur Types d’hyperviseur (2/2)

Les hyperviseurs de type 2 sont également moins fiables


car il y a plus de points de défaillance : tout ce qui affecte
la disponibilité du système d'exploitation sous-jacent peut
également avoir un impact sur l'hyperviseur et les invités
qu'il prend en charge. Par exemple, les correctifs standard
du système d'exploitation qui nécessitent un
redémarrage du système forceraient également le
redémarrage de toutes les machines virtuelles sur cet
hôte.

Un déploiement d'hyperviseur de type 2 utilise davantage


de ressources physiques qu'un hyperviseur de type 1,
dans la mesure où le système d'exploitation sous-jacent
consomme des ressources système en plus de celles
consommées par les activités de l'hyperviseur.
VM

Pratiques sur les VMs


Prérequis À faire

• Avoir au moins 4 Gb • Télécharger et Installer VirtualBox:


RAM
Lab1 • Avoir au moins 25 Gb
[Link]
d’espace disque libre
• Télécharger Ubuntu Desktop image:
• [Link]

• Créer une machine virtuelle (2Go RAM/25Go Disque)


basée sur Ubuntu Desktop et utilisant VirtualBox
comme hyperviseur.
Prérequis À faire

• Créer un répertoire nommé lab2 dans votre home


Lab2 directory de la VM
• Créer un point de montage entre lab2 et un
répertoire nommé data sur le bureau de la machine
hôte
• Déposer des fichiers dans le répertoire data de la
machine hôte et s’assurer qu’ils sont aussi disponibles
dans le répertoire lba2 de la VM.
Prérequis À faire

Lab3 • Lab1 réussi • Sur la machine virtuelle Ubuntu lab1 crée Installer un
serveur Nginx
• S’assurer que le service Nginx est démarré et
accessible sur la VM
• Faire les configurations nécessaires pour exposer le
service sur la machine hôte.
Prérequis À faire

Lab4 • Lab1 & 3 réussi


• Ajouter une clé SSH à la VM
• Se connecter à distance (depuis la machine hôte) à la
VM en utilisant la clée SSH
• Taper la commande curl localhost:80 et s’assurer que
le service Nginx est accessible
Vagrant Présentation

Vagrant est un logiciel libre et open-source


développé par Hashicorp pour la création et la
configuration des environnements de
développement virtuels.

Vagrant est compatible avec différents providers


dont virtualBox, vmware, docker etc.

La configuration nécessaire à vagrant pour


provisionner les ressources est contenue dans un
fichier nommé Vagrantfile

Docs: [Link]
Vagrant Fonctionnement

VM 1
Vagrant utilise des boxes pour la création des
Ubuntu machines virtuelles.

Une boxe est le format de package des


environnement vagrant. Elle peut être vu comme les
images iso utilisée pour la création des VMs.

La boxe à utiliser est spécifiée dans le Vagrantfile, la


machine virtuelle est alors instanciée selon les
Ubuntu Box spécifications dans la configuration.

Registry des boxes:


[Link]
VM 2

Ubuntu
Vagrant Vagrantfile

La fonction principale du fichier Vagrantfile


est de décrire le type de machine requis
pour un projet, ainsi que la manière de
configurer et de provisionner ces
machines.
Les fichiers Vagrant sont portables sur
toutes les plateformes supportées par
Vagrant. Exemple de Vagrantfile

On a la possibilité d’y définir l’hyperviseur


sur lequel la VM doit être créée, de préciser
la configuration réseau, l’installation des
packages à appliquer à la création etc.
Vagrant commandes

Initialisation du Vagrantfile: vagrant init


Téléchargement de box vagrant en local: vagrant box add box_name
Lister les boxes en local: vagrant box list
Suppression de box: vagrant box remove box_name
Création d’une VM à partir d’un Vagrantfile: vagrant up
Connexion ssh à la VM: vagrant ssh
Arrêt de la VM: vagrant halt
Suppression de la VM: vagrant destroy

Plus de commandes sur: [Link]


Prérequis À faire

• Avoir installé • Télécharger Vagrant 2.3.4


Lab1 VirtualBox • Lancer la commande: vagrant box add ubuntu/bionic64
• Vérifier que la box a bien été ajoutée (vagrant box list)
Prérequis À faire

• VirtualBox installé • Initialiser un Vagrantfile à partir de la box ubuntu/bionic64


Lab2 • Vagrant installé • Modifier le Vagrantfile et changer le hostname à miage
• Définissez l’adresse IP de la VM à [Link]
• Configurer le network et forwarder le port 1235 vers le port
80 de la VM
• Créer la VM
Prérequis À faire

• Installer nginx sur la VM


Lab3 • Lab2 réussi • Vérifier que le service nginx actif sur la VM
• Ngnix est-il accessible sur la machine hôte à localhost:1235
• Modifier le Vagrantfile pour que l’installation de Nginx soit
automatique à la création de la VM
Prérequis À faire

• Lab3 réussi
Lab4 • vmware installé
• Créer une nouvelle VM à l’image de ce qui a été fait au lab3
en utilisant vmware comme hyperviseur
• Utiliser la box centos/7
Prérequis À faire

• Lab2 réussi
Lab5 • Dans un même Vagrantfile modifier la configuration du lab3
pour créer 2 VMs de même type
Prérequis À faire

• Modifier et fixer des adresses IP privées pour les 2 machines


• Lab5 réussi créées en lab5
Lab6 • Modifier le hostname des machines respectivement en
miage-dev et miage-test
• Générer une nouvelle clé SSH et l’associer à la machine
miage-dev
• Se connecter à la machine miage-dev depuis la machine
miage-test en utilisant la nouvelle clé SSH
VM & Cloud Définition

Le cloud computing ou encore cloud public désigne la


livraison de ressources et de services informatiques à la
demande par le biais d’internet.
Contrairement au cloud privé où l’entreprise dispose de
ses entrepôts de données où elle maintient ses serveurs,
le cloud public donne accès à des ressources gérées par
un fournisseur qui se charge de la maintenance et la
sécurisation de l’infrastructure.

Le cloud se base sur des outils de virtualisation pour la


création des VMs.
VM & Cloud Types de cloud

Le cloud public Le cloud privé

✓ L’infrastructure est gérée par ✓ L’infrastructure est gérée par


le fournisseur l’entreprise
✓ Le fournisseur est garant de la ✓ L’entreprise assure la sécurité
sécurité du cloud (sécurité logicielle et physique des
des équipements) équipements
✓ Le cloud est ouvert au public ✓ Le cloud est réservé aux uniques
✓ Les data centers sont activités de l’entreprise
généralement plus importants ✓ Les data centers sont construits
et disponibles sur tous les pour répondre aux stricts besoins
continents de l’entreprise

On parle de cloud hybride lorsqu’une entreprise, en plus de son cloud privé,


décide de louer des services dans le cloud public.

2
8
VM & Cloud Types de services cloud

Infrastructure as a Service (IaaS): Platform as a Service (PaaS):


Fournit l’accès aux ressources offre des services applicatifs
informatiques élémentaires telles adaptés aux besoins variés tels que
que la capacité de traitement, les CRM.
capacité de stockage et mise en
réseau. Exemples: AWS EC2,
Microsoft Azure VM.

Software as a Service (SaaS): XaaS


Destiné aux équipes de Le « tout en tant que service »
développement logiciel. Cette offre (XaaS) L'idée est que toutes les
fournit l’infrastructure de fonctions IT peuvent être
traitement plus une couche de transformées en services pour les
plateforme de développement. grandes entreprises.
Docker Présentation

Docker est une plate-forme logicielle qui vous


permet de concevoir, tester et déployer des
applications rapidement. Docker intègre les logiciels
dans des unités normalisées appelées conteneurs,
qui rassemblent tous les éléments nécessaires à leur
fonctionnement, dont les bibliothèques, les outils
système, le code et l'environnement d'exécution.

Avec Docker, vous pouvez facilement déployer et


dimensionner des applications dans n'importe quel
environnement, avec l'assurance que votre code
s'exécutera correctement.

Docs: [Link]
Docker Docker vs VM

Conteneur applicatif

App 1 App 2 App 3


App 1 App 2 App 3
Socle app Socle app Socle app

Socle app Docker


VS

OS OS

VM sans Docker VM avec Docker

*Socle app représente le socle applicatif,


les outils et dépendances nécessaires au fonctionnement de chaque appli
Docker Concepts de base

Image : Une application empaquetée avec ses dépendances (socle techniques,


utilitaires applicatifs etc.) est appelée image docker.

Dockerfile: C’est le fichier qui contient toute la configuration ayant permis la


création de l’image.

Layer: Les images sont constituées de couches, chaque couche apportant une
modification (ajout/suppression) de ressource dans l’image.

Registry: Les images sont sauvegardées dans un dépôt public ou privé appelé
registry. Docker hub est le registry officiel docker, il en existe d’autres tels que AWS
ECR, Google container registry, Azure container registry.

Conteneur (container): Un container est une instanciation d’une image docker et


représente l’application en cours d’exécution.
Docker Avantages

Consommation réduite des ressources CPU RAM

Plus de containers: Plusieurs containers peuvent être lancés dans une


même VM ce qui optimise l’utilisation mutualisée des ressources

Reduction du coût du matériel: Plus besoin d’approvisionner


différentes VM pour isoler les applications

Déploiement très rapide


Docker commandes

Télécharger une image en local: docker pull image_name


Lancer un container: docker run image_name
Builder une image: docker build -t tag_name -f Dockerfile .
Tagger une image: docker tag old_tag new_tag
Pusher une image dans le registry: docker push image_name
Stopper un container: docker container stop container_name
Supprimer un container: docker container rm container_name
Lister les images: docker image ls
Supprimer un image: docker rmi image_name

Plus de commandes sur: [Link]


Prérequis À faire

• Docker installé
• Ou utilisé playwith
Lab1 docker Lancer un container nginx et vérifier l’accessibilité du
service, image de base: bitnami/nginx:1.23.3
Mapping des ports: 80:8080
Prérequis À faire

• Docker installé
• Ou utilisé playwith
Lab2 docker
Image docker à utiliser: bitnami/nginx:1.23.3
Modifier la page d’accueil de Nginx en montant un
volume contenant un fichier [Link]
Le volume doit être monté au path /app du container
Prérequis À faire

Lab3 Modifier le port d’écoute du conteneur pour qu’il écoute


sur 8081 au lieu de 8080
Surcharger la config du serveur en montant un volume
tel que décrit dans le docker hub de l’image
[Link]
Prérequis À faire

Lab3 Dockerfile

Construire une nouvelle image qui embarque tous les


fichiers ([Link], [Link]) utilisés dans les labs
précédents
Prérequis À faire

Lab4
Docker-compose

Example d’utilisation : Installation d’un site wordpress

Vous aimerez peut-être aussi