Vous êtes sur la page 1sur 66

Virtualisation et Coud Computing

Dr. Kéba Gueye


Email:keba.gueye@esp.sn

Dr K. GUEYE
Virtualisation et Coud Computing

 Concepts généraux sur la virtualisation


 Etude de quelques plateformes de virtualisation
 La conteneurisation
 Cloud Computing

Dr K. GUEYE
Virtualisation et Coud Computing
Objectif
Objectifs spécifiques
 savoir définir le concept de la virtualisation ;
 prendre connaissance des domaines de la virtualisation ;
 déterminer les avantages et les inconvénients de la virtualisation ;
 connaître les différentes méthodes de virtualisation ;
 comprendre les différents types de virtualisation.
 Connaitre les différentes plateforme de virtualisation
 Comprendre les outils de gestion des plateforme de virtualisation
 Comprendre le cloud computing
 Connaitre les plus grands fournisseurs du cloud
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Objectif
L’objectif de ce cours vise à donner aux étudiants une :
 Compréhension sur les principes de la virtualisation ;
 Manipulation des différents concepts de la virtualisation à travers des outils pratiques ;
 Découverte de la notion du Cloud Computing et ses applications ;
 Connaissance des plateformes Cloud les plus connues et de manipuler les services
offerts par au moins une de ses plateformes.
 Comprendre les outils de gestion des plateforme de virtualisation

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Bases de la virtualisation
 La virtualisation est une technologie fondamentale qui permet de créer des environnements
virtuels, indépendants des ressources physiques sous-jacentes, pour exécuter des applications et
des systèmes d'exploitation.

 Le concept de virtualisation est ancien dans le domaine informatique. La virtualisation de la


mémoire ou du stockage permet aux processeurs ou aux utilisateurs de disposer d’un espace dédié
alors que les ressources sont physiquement déportées.

 Depuis plusieurs années, la virtualisation et le Cloud Computing font partie des solutions pour
stocker de grandes quantités de données et les rendre disponibles pour un client indépendamment
de sa localisation et de l’appareil qu’il utilise.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Définition
 La virtualisation est une technique matérielle et logicielle qui permet d'exécuter sur une même
plateforme physique plusieurs systèmes d'exploitations et applications (machines virtuelles
invitées).
 La virtualisation consiste à créer des versions virtuelles de ressources informatiques, telles que
des serveurs, des systèmes de stockage, des réseaux et des applications. Ces ressources virtuelles
sont gérées par un logiciel appelé hyperviseur, qui isole et alloue les ressources physiques aux
machines virtuelles
Pour être utile de manière opérationnelle la virtualisation doit respecter deux principes fondamentaux:
 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.
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Terminologie
 Système Hôte: Le système hôte est la machine physique qui héberge les machines virtuelles.
 Hyperviseur: également appelé moniteur de machine virtuelle ou VMM(Virtual Machine
Manager), est un logiciel qui crée et exécute des machines virtuelles (VM). Un hyperviseur
permet à un ordinateur hôte de prendre en charge plusieurs machines virtuelles invitées en
partageant virtuellement ses ressources, telles que la mémoire et le traitement.
 Système Invité: Le système invité est l'instance du système d'exploitation qui s'exécute dans
l'environnement virtuel du système hôte. Il est encore appelé machine virtuelle (VM : Virtual
Machine).

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les domaines de la virtualisation
 La virtualisation d’applications
 La virtualisation d’applications est une technologie logicielle qui va permettre d’améliorer la
portabilité et la compatibilité des applications en les isolant du système d’exploitation sur lequel
elles sont exécutées.
 Elle consiste à encapsuler l’application et son contexte d’exécution système dans un environnement
cloisonné.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les domaines de la virtualisation
 La virtualisation d’applications
 La couche virtuelle ajoute des avantages au système virtualisé en permettant d’exécuter des
applications conçues pour d’autres systèmes. A titre d’exemple, le logiciel Wine1 permet d'exécuter
certains programmes Windows sous Ubuntu.
 La virtualisation d’applications peut aussi consister à rendre disponible une application installée sur
un serveur pour un client.
 Parmi les principaux acteurs de la virtualisation, on peut citer Citrix XENAPP 6, Microsoft APP-V
et VMWare ThinAPP.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les domaines de la virtualisation
 La virtualisation de réseaux
 La virtualisation de réseaux permet aux applications de s’exécuter sur un réseau virtuel comme si
c’était un réseau physique. Avec un réseau virtuel, les fonctions de commutation, le routage, le
contrôle d'accès, le pare-feu, la qualité de service (QoS) et l'équilibrage de charge sont
implémentées dans le logiciel.
 La virtualisation de réseau fait passer l'intelligence du matériel dédié au logiciel flexible.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les domaines de la virtualisation
 La virtualisation de stockage
 La virtualisation du stockage permet d’être indépendant de la localisation physique des données
en créant un espace logique de stockage. En effet, dans une machine virtuelle, les données sont
stockées sur un disque dur virtuel. Ce disque dur se présente sous forme de fichier dans le
système de fichiers de l'hôte :
 VHD chez Microsoft
 VDI chez Oracle
 VMDK chez VMWare
 OVF format ouvert

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les domaines de la virtualisation
 La virtualisation de stockage

 Les disques virtuels peuvent être statiques ou dynamiques.


 Dans le cas où le disque est statique, si on crée un disque de 50 Go, le fichier de disque virtuel
fera 50 Go sur le système hôte.
 Avec un disque dynamique, le fichier de disque virtuel se remplit au fur et à mesure qu'il est
utilisé. Un disque de 50 Go dans lequel il n'y a pas de données ne pèsera dans le système de
fichiers hôte pas grande chose.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les domaines de la virtualisation
 La virtualisation de stockage
 Grâce à la virtualisation de stockage, il est possible de réallouer dynamiquement de l’espace de
stockage. Ainsi, un serveur nécessitant un espace de stockage supplémentaire pourra rechercher
des ressources non allouées sur le disque logique. Inversement, un serveur nécessitant moins
d’espace de stockage pourra libérer cet espace et le rendre disponible pour d’autres serveurs.
 La virtualisation de stockage permet aussi :
 d’adjoindre un périphérique de stockage supplémentaire sans interruption des services ;
 de regrouper des unités de disques durs de différentes vitesses, de différentes tailles et de différents constructeurs.

 La virtualisation du stockage touche aussi les éléments de stockage dédié, comme les NAS
(Network-Attached Storage) ou SAN (Storage Area Network).

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les domaines de la virtualisation
 La virtualisation de serveurs
 La virtualisation de serveurs est un principe permettant de faire fonctionner simultanément, sur
un seul serveur physique, plusieurs serveurs virtuels. Cette technique permet aux entreprises
d’utiliser des serveurs virtuels en lieu et place de serveurs physiques. Si cette virtualisation est
faite au sein de la même entreprise, le but est de mieux utiliser la capacité de chaque serveur par
une mise en commun de leur capacité.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les domaines de la virtualisation
 La virtualisation de serveurs
 La virtualisation de serveurs permet de :
 regrouper plusieurs serveurs physiques sous-employés sur un seul hôte qui exécute des systèmes virtuels ;
 réduire la surface au sol, les équipements matériels, le besoin de climatisation et le nombre d'administrateurs ;
 réaliser des économies (locaux, consommation électrique, personnel) ;
 réduire les délais de mise à disposition de nouveaux serveurs ;
 simplifier l’administration et la gestion ;
 améliorer le niveau de service et la disponibilité des applications ;
 simplifier la migration des applications sur de nouveaux serveurs ;
 mettre en place un PRA (plan de reprise d’activité).
 s’inscrire dans la démarche Green IT.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Avantages et inconvénients de la virtualisation
Les avantages de la virtualisation sont nombreux.
Limiter le gaspillage de ressources,
réduire les coûts,
Cependant, il y a quelques limites qu’il est important de passer en revue. En effet, plusieurs environnements virtuels
s’exécutent sur une unique machine physique. Si cette machine tombe en panne, alors les services fournis par les
environnements virtuels sont interrompus.
Par ailleurs, bien que la virtualisation soit implémentée sur des machines puissantes, elle peut réduire les
performances des applications. Suivant le type de virtualisation envisagé, cette perte de performances peut ou non
être significative.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les 3 méthodes de virtualisation
 L'isolateur

 Un isolateur est installé dans un système d’exploitation existant. Il permet de cloisonner des
applications qu’on souhaite virtualiser dans des zones d’exécution mémoire différentes. Ces
zones génèrent un contexte propre à chaque application. L’isolation n’est pas une technique de
virtualisation au sens propre du terme. L’isolation permet d’obtenir des environnements qui
semblent se comporter comme des VM, mais qui partagent un même noyau. On parle ici de
conteneur. Un conteneur fait tourner une distribution sur une distribution.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les 3 méthodes de virtualisation
 L'émulateur
 Dans l’émulation, la machine physique « hôte » héberge de multiples VMs en leur donnant accès
à ses ressources matérielles de façon optimale et selon des règles de partitionnement ajustables.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les 3 méthodes de virtualisation
 L'hyperviseur
 Hyperviseur de Type 1

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.
Ce type d’opération est le plus utilisé dans les centres de données, car il s’agit d’une technique où la
couche hyperviseur repose directement sur le matériel et tous les systèmes d’exploitation virtualisés
sont exécutés dessus. Dans ce cas, les machines virtuelles ont un accès direct au matériel.
exemple: Microsoft Hyper-V, VMware vSphere, Xen Server, Proxmox, Oracle VM, ESX Server de
Vmware, etc.
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les 3 méthodes de virtualisation
 L'hyperviseur
 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. Il s’agit d’un type d’opération implémenté via un système d’exploitation, c’est-à-dire un
système d’exploitation qui s’exécute sur le matériel et qui, à son tour, la couche hyperviseur est
effectuée sur ce système d’exploitation. Un hyperviseur de type 2 est également appelé hyperviseur
hébergé. Quelques exemples de tels hyperviseurs sont:
Vmware Workstation, Vmware Fusion, Hyperviseur open source QEMU, les produits Microsoft
Virtual PC et Virtual Server, Virtualbox d’Oracle, Parallels Workstation de Swsoft et Parallels
Desktop…
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les différents types de virtualisation
 La virtualisation complète

La virtualisation dite 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
plus pratique.
Principe:
L’hyperviseur crée un environnement virtuel complète simulant littéralement un nouvel ordinateur complet, avec du
faux matériel. A quelques rares exceptions, le système d’exploitation invité (installé dans la machine virtuelle) ne
communique qu’avec ce faux matériel simulé, rendant étanche l’environnement virtualisé.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les différents types de virtualisation
 La virtualisation complète
Limitation
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

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Concepts de base de la virtualisation et étude de quelques hyperviseurs
 Les différents types de virtualisation
 La para-virtualisation
La para-virtualisation est très proche du concept de la virtualisation complète, dans le sens où c’est
toujours un système d’exploitation complet qui s’exécute sur le matériel émulé par une machine
virtuelle. La para-virtualisation évite d'utiliser un système hôte complet pour faire la virtualisation.
Les performances sont bien meilleures en para-virtualisation qu'en virtualisation complète.
Quelques hyperviseurs de para-virtualisation:
-Xen
-ESX/ESXi
-Hyper-V
-KVM

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Etude de quelques plateformes de virtualisation
Les plateformes de virtualisation
Xen
 Xen est une solution de virtualisation open source développée initialement par le département
informatique de l’Université de Cambridge. Son développement est aujourd’hui activement
sponsorisé par Citrix, qui a racheté l’éditeur initial XenSource.
 Citrix distribue une version commerciale de Xen, nommée Citrix XenServer, particulièrement
adaptée à la virtualisation des OS Microsoft Windows et Linux RHEL et SLES. Elle est dotée
d’une interface d’administration avancée, et d’un accès au support technique. Quant aux
fonctionnalités, elles sont les mêmes que dans la version distribuée librement.
De grandes sociétés comme IBM ont contribué au développement de Xen, et de gros efforts ont été
faits par Citrix pour assurer une comptabilité parfait avec Windows, compatibilité aujourd’hui
reconnue par Microsoft.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Etude de quelques plateformes de virtualisation
Les plateformes de virtualisation
QEMU-KVM
KVM (Kernel-based Virtual Machine) est une solution de virtualisation complète open source intégrée
au sein du noyau Linux depuis la version 2.6.20. KVM est un projet issu de QEMU dont il utilise une
version modifiée. Les développements sont très actifs et KVM est maintenant considéré comme un
hyperviseur. Même si on fait souvent référence à l'hyperviseur KVM, il s'agit en réalité d'une
combinaison QEMU-KVM.
KVM permet de faire fonctionner de nombreux systèmes invités :
 toutes les versions de Windows à partir de Windows 2000 ;
 toutes les distributions Linux.
Pour utiliser KVM, la machine doit être pourvue d’un processeur compatible. La majorité des
processeurs Intel et AMD récents sont compatibles avec KVM.
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Etude de quelques plateformes de virtualisation
Les plateformes de virtualisation
Proxmox
Proxmox est une puissante plate-forme de virtualisation open-source basée sur QEMU/KVM et LXC
pour les conteneurs avec une seule interface web.
 Hyper-V
Hyper-V est la plateforme de virtualisation Microsoft qui permet de créer des infrastructures virtuelles
sous Windows ou / et Linux. Hyper-V permet de faire cohabiter de manière isolée plusieurs systèmes
d’exploitation sur une même machine physique (Hyperviseur).
Autrement dit, il permet une consolidation de serveurs afin de profiter au maximum de leurs ressources
matérielles.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Etude de quelques plateformes de virtualisation
Les plateformes de virtualisation
OpenVZ
Une des solution les plus avancées et matures dans le domaine de l’isolation est OpenVZ. Ce produit se présente sous
la forme d’un patch pour le noyau Linux, et d’un ensemble d’outils d’administration. Le patch du noyau permet à un
système GNU/Linux de gérer des contextes virtualisés. Les outils d’administrations permettent de créer, d’instancier,
et de controler les environnements virtuels.
Certaines distributions Linux proposent des versions packagées d’OpenVZ. En particulier, la distributions Debian
GNU/Linux, dans les versions Lenny et Squeeze, permet dès l’installation du serveur physique de mettre en place
cette solution en quelques secondes via son système de packages. Il faut ce pendant noter que OpenVZ a été remplacé
par LXC dans la version Squeeze, paru en 2013.
Le projet OpenVZ fournit aux systèmes GNU/Linux une méthode de virtualisation. Cette virtualisation se situe au
niveau du noyau de l’OS. Cela rend possible l’exécution de multiples instances d’OS GNU/Linux sur la même
machine. Ces instances fonctionnant de façon complètement sécurisées et partageant intelligemment les ressources du
serveur hôte.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Etude de quelques plateformes de virtualisation
Les plateformes de virtualisation
LXC
LXC est une solution de virtualisation de type isolateur. Cette solution permet la virtualisation par
container au niveau du noyau. LXC est très récent et remplace Linux-Vserver et OpenVZ. Aussi, LXC
est dès à présent intégré au noyau, ce qui n’a jamais été le cas des deux solutions citées précedement
(OpenVZ et Hyper-V).
L’isolateur tire avantage de la possibilité, unique sous UNIX et Linux, de partager le noyau avec
d’autres processus du système. Cette virtualisation à noyau partagé utilise une fonctionnalité nommée
chroot. Cette fonctionnalité modifie le système de fichiers racine d’un processus pour l’isoler de
manière à fournir une certaine sécurité. On parle alors de

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Etude de quelques plateformes de virtualisation
Les outils de gestion des plateformes de virtualisation
 API libvirt
Libvirt est une boîte à outils pour gérer les plateformes de virtualisation. Il propose un service
(libvirtd), un ensemble d’utilitaires comme virtmanager, virtinstall, virtviewer et surtout un shell
interactif dédié à la gestion des machines virtuelles : virsh.
Libvirt se connecte à l’hyperviseur local et peut ainsi être utilisée soit en local, soit à distance via
SSH. L’API libvirt se place donc comme une interface entre le ou les hyperviseurs et le matériel.
Libvirt supporte entre autres KVM, QEMU, Xen, Virtuozzo, VMWare ESX, LXC. Il est également
utilisé par de nombreuses applications y compris openstack, archipell, etc.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Etude de quelques plateformes de virtualisation
Les outils de gestion des plateformes de virtualisation
 Virt-manager
Écrite en langage Python, l’interface Virt-manager est un outil d’administration
graphique permet d’effectuer quasiment toute la gestion des machines virtuelles
sur un poste local, mais également entre plusieurs hyperviseurs.
Virt-manager est capable de se connecter sur tout serveur faisant tourner le
service libvirtd. Il est donc possible d’utiliser cette interface sur un poste et de
piloter ainsi plusieurs hôtes de virtualisation. Cette fonctionnalité permet d’utiliser
un poste client doté d’une distribution Linux orientée bureau et de se connecter à
des serveurs distants via SSH.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Etude de quelques plateformes de virtualisation
Les outils de gestion des plateformes de virtualisation
 Kimchi
Kimchi est un outil léger et facile à installer offrant une interface graphique basée sur le Web pour la gestion des
machines virtuelles KVM. Kimchi gère les machines virtuelles KVM via l’API libvirt. L'interface de gestion est
accessible sur le Web à l'aide d'un navigateur qui prend en charge le HTML5.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Définition
 La virtualisation par conteneurs ( également connue sous le nom de conteneurisation) constitue
une alternative à la virtualisation système. Il s'agit d'une approche qui s'appuie directement sur les
fonctionnalités du noyau (Kernel) pour créer des environnements virtuels ( Virtual Environment-
VE) isolés les uns des autres.
 Ces VE sont appelés conteneurs, tandis que les fonctionnalités fournies par le noyau du système
d'exploitation sont les groupes de contrôles ( cgroups) et les espaces de noms (namespaces)
Les namespaces permettent de contrôler et de limiter la quantité de ressources utilisée pour un processus,
tandis que les cgroups gèrent les ressources d'un groupe de processus.
Un conteneur fournit donc les ressources nécessaires pour exécuter des applications comme si ces
dernières étaient les seuls processus en cours d'exécution dans le système d'exploitation de la machine
hôte.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Vue d'ensemble des conteneurs
 Les conteneurs constituent une solution pour la gestion des ressources entre les applications.
Le terme est dérivé des conteneurs d'expédition, une méthode standard pour stocker et expédier tout type de cargaison.
 Le concept de base des conteneurs est né en 1979 avec la fonction Unix chroot. Cette dernière
permet de créer plusieurs sessions isolées sur une même machine, de façon à partager parallèlement
les ressources de processus et de stockage de la machine. Vu cette caractéristique particulière de la
fonction chroot, celle-ci peut être considérée comme étant le précurseur de la conteneurisation.
 Cependant, c'est à partir de 2013 que Docker a rendu simple le développement et le déploiement
des conteneurs tout en les standardisant.
 Docker résout un problème de longue date dans le cloud computing : la portabilité des applications.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Les conteneurs Docker
 Docker est l'incarnation la plus moderne de la conteneurisation. Il s'agit d'un projet ouvert
développé par la société Dotcloud (renommée par la suite Docker) sur la base de LXC.
Fondamentalement, Docker étend LXC avec le Docker daemon.
 Ce dernier est une API (Application Programming Interface) installée entre le noyau du système
d'exploitation et les VEs, qui, ensemble, exécutent des processus isolés : processeur, mémoire,
entrées/ sorties (E/ S), réseau, etc.
 Depuis la version 0.9 en 2014, Docker n'utilise plus LXC comme environnement d'exécution par
défaut. Il l'a remplacé par sa propre bibliothèque Libcontainer.
 Docker est un écosystème complexe mais intuitif pour le développement des conteneurs, Il est
riche en fonctionnalités, notamment son système d'image, ses registres et son interface de lignes de
commande.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Les conteneurs Docker

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Les conteneurs Docker
Docker client
Le client docker est le principal moyen d'interaction de nombreux utilisateurs docker avec l’application docker. Le
client Docker peut communiquer avec plusieurs démons et peut être installé sur un autre environnement différent de
là où s’exécute de docker daemon appelé Docker Host.
Docker daemon
Le démon Docker (dockerd) écoute les demandes de l'API Docker et gère les objets Docker tels que les images, les
conteneurs, les réseaux et les volumes. C’est un composant essentiel qui a les responsabilités d’effectuer toutes les
opérations liées à un conteneur comme la création, l’exécution et l’arrêt de celui-ci.
Docker registry
Un registre Docker stocke des images Docker. Docker Hub est un registre public que tout le monde peut utiliser et
Docker est configuré pour rechercher des images sur Docker Hub par défaut. Au cas où vous utilisez Docker
Datacenter (DDC), il inclut Docker Trusted Registry (DTR).
Dr. Kéba GUEYE
Virtualisation et Coud Computing
La conteneurisation
Comparaison entre machine virtuelle et conteneur Docker
La virtualisation traditionnelle utilise un hyperviseur pour créer de nouvelles machines
virtuelles ( VM) et pour assurer l'isolation entre elles.
Toutefois, la conteneurisation Docker ne nécessite que l'installation du logiciel Docker
sur le noyau du système d'exploitation de la machine hôte. Néanmoins, il existe une
certaine similitude entre ces deux instances virtuelles : elles sont toutes des systèmes
autonomes qui, en réalité, utilisent un système supérieur (celui de la machine hôte) pour
réaliser leurs tâches.
Cependant, la principale différence entre elles est que la VM doit contenir tout un
système d'exploitation (un système invité) alors que les conteneurs se contentent
d'utiliser le système d'exploitation sur lequel ils s'exécutent

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Comparaison entre machine virtuelle et conteneur Docker
La figure suivante montre la structure d'une VM et celle d'un conteneur Docker.
Le conteneur Docker représente une amélioration des capacités de LXC. Ainsi, il n'émule
pas l'environnement matériel hôte. Il peut être déployé facilement sur une machine virtuelle
comme sur une machine physique.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Comparaison entre machine virtuelle et conteneur Docker

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Comparaison entre machine virtuelle et conteneur Docker
Comme le montre le tableau ci-après, un conteneur peut être créé et détruit presque en
temps réel et introduisant ainsi une surcharge de tâches négligeable vis-à-vis de
l'utilisation des ressources ( CPU, RAM, E/ S) de la mémoire de la machine hôte.
Par rapport aux VM, les conteneurs présentent des avantages en termes de gestion de
réseau, de mémoire vive, de stockage, de vitesse de démarrage, de déploiement et de
migration. Par contre, ces derniers souffrent du faible isolement de la machine hôte.
En effet, si le conteneur Docker est compromis, alors l'attaquant peut obtenir un accès
complet au système d'exploitation de la machine hôte. D'où le besoin d'environnements
robustes et sécurisés pour les conteneurs Docker.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Comparaison entre machine virtuelle et conteneur Docker

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
PLATEFORMES D'ORCHESTRATION DE CONTENEURS DOCKER
Les conteneurs Docker constituent une méthode de virtualisation légère au niveau du
système d'exploitation qui permet de lancer une application et ses dépendances à travers
un ensemble de processus isolés du reste du système. Cette méthode permet d'assurer le
déploiement rapide et stable des applications dans n 'importe quel environnement
informatique.
En plein essor depuis quelques années, les conteneurs Docker ont modifié la façon dont
nous développons, déployons et maintenons des logiciels. Leur légèreté et flexibilité ont
favorisé l'apparition de nouvelles formes d'architectures qui organisent les applications
au sein de conteneurs Docker, prêts à être déployés sur un cluster (groupe) de machines
virtuelles ou physiques. Toutefois, cette nouvelle approche requiert des nouveaux outils
d'orchestration de conteneurs Docker.
Dr. Kéba GUEYE
Virtualisation et Coud Computing
La conteneurisation
PLATEFORMES D'ORCHESTRATION DE CONTENEURS DOCKER
Caractéristiques d'un orchestrateur de conteneurs
Manipuler quelques conteneurs Docker sur une seule machine est une tâche facile.
Lorsqu'il s'agit de faire passer ces conteneurs en production (sur un ensemble d'hôtes distribués), de nombreuses
questions se posent :
Comment gérer les déploiements et leurs emplacements?
Comment gérer l'équilibrage des charges?
Comment gérer la communication entre les conteneurs ?
Comment gérer la découverte de services?
Comment gérer les mises à jour ?
Comment gérer la montée en échelle ?
Comment gérer le stockage nécessaire à la persistance des données ?
Comment gérer la configuration et les secrets?
Mais aussi, comment gérer les dysfonctionnements?

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
PLATEFORMES D'ORCHESTRATION DE CONTENEURS DOCKER
Caractéristiques d'un orchestrateur de conteneurs
 Tout gérer de manière manuelle n'est pas concevable, car il serait difficile d'assurer la viabilité, la
maintenance et la pérennité du système. Un outil autonome capable de répondre à ces besoins est
donc requis. Cet outil constituera la plateforme d'orchestration de conteneurs.
Il existe plusieurs orchestrateurs, par exemple, Fleet, Mesas Apache, Swarm, Kubernetes, etc.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
PLATEFORMES D'ORCHESTRATION DE CONTENEURS DOCKER
quelques plateformes de conteneurisation
Il existe plusieurs plateformes de conteneurisation:
 Sous Linux:
Docker, Rkt de CoreOS, LXC, LXD de Canonical, Linux Vserver, OpenVZ, RunC, etc.
 Conteneur dans d’autres systèmes d’exploitation:
FreeBSD Jail, Oracle Solaris Zones, Hyper-V Container, Microsoft Drawbridge, WinDocks,
Sandboxie, Turbo, VMware ThinApp,

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Les conteneurs Docker
Avantages de la conteneurisation
La conteneurisation ou virtualisation par conteneur a les avantages suivants:
Légèreté : les conteneurs partagent le noyau hôte,
Flexible: les applications les plus complexes peuvent être conteneurisées,
Elasticité: il n’est pas nécessaire d’allouer une quantité donnée de ressources, les
conteneurs peuvent faire une utilisation plus efficace et dynamique des ressources du
serveur
Portable: les conteneurs permettent aux développeurs de créer localement des applications
et de les déployer plus rapidement sur n’importe quel environnement.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
La conteneurisation
Les conteneurs Docker
Mise en place d’une plateforme Docker
Il existe trois façons différentes d’installer la plateforme de conteneurs Docker sur un
système :
 Installation manuelle via le package DEB,
 Installation à partir du dépôt Docker,
 Installation à partir du repository d’Ubuntu.
On a trois versions de docker :
 Docker Community Edition (Linux seulement),
 Docker Desktop (Mac ou Windows),
 Docker Enterprise (Linux seulement). Docker Desktop et Docker Community Edition (CE) sont deux versions
de Docker gratuites.
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Cloud Computing
Qu'est-ce que le cloud ?
Le cloud computing (l'informatique en nuage) correspond à l’accès à des
services informatiques (serveurs, stockage, mise en réseau, logiciels) via
Internet (le « cloud » ou « nuage ») à partir d’un fournisseur.
Il peut être public, privé ou hybride (un mix entre le cloud public et le cloud
privé).
Le terme « nuage » exprime la notion de « cacher » l’infrastructure, le
fonctionnement interne et sa localisation géographique.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Caractéristiques du cloud
l'élasticité : adaptation automatique à la demande de la capacité de stockage et
puissance de calcul, selon le besoin du consommateur, tant qu'il peut payer.
l'ouverture : accessibles via Internet pour un ordinateur, un téléphone, une
tablette ...
la mutualisation : combiner des ressources hétérogènes (matériel, logiciel,
trafic réseau) pour servir plusieurs consommateurs à qui les ressources sont
automatiquement attribuées
le paiement à l'usage

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Les différents types de cloud
À la base, il existe trois catégories de services :
IaaS (Infrastructure as a Service) : accès à un ensemble de serveurs virtualisés
PaaS (Platform as a Service) : accès à un environnement d’exécution dédié aux
développeurs via un IaaS
SaaS (Software as a Service) : accès à un logiciel sous forme de service
D'autres services sont également disponibles : DaaS, NaaS, STaaS, CaaS,
WaaS, ...

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Représentation des différents modèles

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Représentation des différents modèles
IaaS
L’Infrastructure en tant que Service (IaaS) est la composante de plus bas niveau du
cloud computing :
un fournisseur héberge la totalité des composantes d’une infrastructure (les
serveurs, le réseau et le stockage);
la couche d’infrastructure est composée principalement d’environnements
virtualisés;
on y installera ensuite les systèmes d’exploitation et les applications.
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Cloud Computing
Représentation des différents modèles
IaaS
L’Infrastructure en tant que Service (IaaS) est la composante de plus bas niveau du
cloud computing :
Dans ce modèle, l’entreprise accède à des ressources physiques (serveurs,
stockage, réseau) se trouvant délocalisées chez le fournisseur du cloud mais
garde la main sur l’ensemble du système d’exploitation et surtout des logiciels
applicatifs. Cela peut par exemple lui permettre de déployer à la demande des
serveurs virtuels ou d’offrir à ses clients une plateforme pour ses propres
logiciels.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Représentation des différents modèles
PaaS
La Plate-forme en tant que Service (PaaS), qui se situe juste au-dessus d’IaaS,
consiste à mettre à disposition un environnement prêt à l’emploi :
le système d’exploitation et les outils d’infrastructure sont ici sous la
responsabilité du fournisseur;
on conserve le contrôle des applications et on peut ajouter ses propres outils.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Représentation des différents modèles
PaaS
La Plate-forme en tant que Service (PaaS), qui se situe juste au-dessus d’IaaS,
consiste à mettre à disposition un environnement prêt à l’emploi :
Si la délocalisation est poussée plus loin, le cloud va intégrer l’infrastructure mais
aussi l’ensemble des logiciels de base permettant l’exploitation et le
développement. Cela permet à l’entreprise de se concentrer sur ses logiciels
applicatifs en laissant au fournisseur la gestion du système.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Représentation des différents modèles
SaaS
Le Software as a Service (SaaS) permet de déporter une application chez un
fournisseur.
SaaS est un modèle d'exploitation commerciale des logiciels dans lequel ceux-ci
sont installés sur des serveurs distants plutôt que sur la machine de l’utilisateur.
Les clients ne paient pas de licence d'utilisation pour une version, mais utilisent
librement le service en ligne ou, plus généralement, payent un abonnement.
Les principales applications actuelles de ce modèle sont : la visioconférence, la
messagerie et les logiciels collaboratifs, etc.
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Cloud Computing
Représentation des différents modèles
SaaS
Le dernier modèle déporte l’intégralité du logiciel chez le fournisseur qui offre
alors un service applicatif à l’entreprise : logiciel de messagerie, service d’achat
pour une boutique en ligne, gestion de documents… Il n’y a plus de
développement mais uniquement du paramétrage. Cette solution est envisageable
pour une entreprise qui n’a pas forcément les moyens humains pour développer
son propre logiciel ou pour garantir une disponibilité permanente de son
infrastructure.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Représentation des différents modèles
SaaS
Le dernier modèle déporte l’intégralité du logiciel chez le fournisseur qui offre
alors un service applicatif à l’entreprise : logiciel de messagerie, service d’achat
pour une boutique en ligne, gestion de documents… Il n’y a plus de
développement mais uniquement du paramétrage. Cette solution est envisageable
pour une entreprise qui n’a pas forcément les moyens humains pour développer
son propre logiciel ou pour garantir une disponibilité permanente de son
infrastructure.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Avantages/Inconvénients
Les caractéristiques du cloud computing
Plusieurs catégories d’inconvénients
intéressantes sont :
existent :
 la réduction du coût total de possession
 l’utilisation des réseaux publics : sécurité,
des systèmes informatiques;
qualité, disponibilité;
 la facilité d’augmenter ou de diminuer
 la localisation des données : maîtrise,
les ressources;
garantie d’utilisation, juridiques;
 la maintenance, la sécurisation et les
 l’enfermement propriétaire (vendor lock-
évolutions des services sont à la charge
in).
du fournisseur.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Coût
Le cloud computing est un modèle de consommation de ressources informatiques
« à la demande » (« as a service »).
Les ressources distantes sont louées au forfait ou à la demande (le plus souvent par
tranche d’utilisation) selon des critères techniques (puissance, bande passante,
etc.) et des options de disponibilité, de redondance, de sécurité et de service.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Exemples de fournisseurs
➔ AWS (Amazon Web Services)
➔ Microsoft Azure
➔ Google Cloud Platform
➔ IBM Bluemix
➔ Mais aussi : OVH, Orange Business Services, etc.
En 2017, AWS occupe le premier rang des acteurs du cloud computing, avec 34 %
de parts de marché (IaaS et PaaS), distançant largement Microsoft Azure (11 %),
Google Cloud (8%) ou IBM cloud computing (6 %), selon le Synergy Group.

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Exemples de fournisseurs
Amazon Web Services (AWS)
AWS (Amazon Web Services) est une division d’Amazon.com, spécialisée dans les services
de cloud computing à la demande pour les entreprises et particuliers.
AWS propose plus de 90 services, comprenant le calcul, le stockage, le réseau, la base de
données, l’analyse de données, des services applicatifs, du déploiement, de la gestion de
système, de la gestion d’applications mobiles, des outils pour les développeurs et pour
l’internet des objets (IoT).
Les services les plus populaires sont Amazon Elastic Compute Cloud (EC2) et Amazon
Simple Storage Service (S3).
AWS offre une plate-forme d’infrastructure complète (IaaS).
Dr. Kéba GUEYE
Virtualisation et Coud Computing
Cloud Computing
Comparaison AWS vs Google Cloud
➔ Les services de base d'AWS :
 Calcul : Amazon Elastic Compute Cloud (EC2)
 Stockage : Amazon Simple Storage Service (S3) et Amazon Elastic Block Store (EBS)
 Mise en réseau : Amazon Virtual Private Cloud (VPC)
 Bases de données : Amazon Relational Database Service (RDS) et Amazon DynamoDB

➔ Les services de base de Google Cloud :


 Calcul : Google Compute Engine et Google App Engine
 Stockage : Google Cloud Storage
 Mise en réseau : Google Virtual Private Cloud
 Bases de données : Google Cloud SQL, Google Firestore et Google Cloud Bigtable

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Offres gratuites

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Offres gratuites

Dr. Kéba GUEYE


Virtualisation et Coud Computing
Cloud Computing
Critiques
Pour Richard Stallman (créateur projet GNU et licence GPL, développeur de GNU
Emacs, GCC, gdb et Make), l'informatique dans
le nuage « est un piège », les utilisateurs perdent le contrôle de leurs applications. Il le
considère comme un concept publicitaire sans
intérêt, rejoignant les critiques exprimées par Larry Ellison (fondateur d'Oracle) selon
lequel il s'agit d'un phénomène de mode.
Steve Wozniak (cofondateur d'Apple) prévoit également des problèmes avec le
développement croissant du cloud computing et l'externalisation des données

Dr. Kéba GUEYE

Vous aimerez peut-être aussi