SlideShare une entreprise Scribd logo
1  sur  73
Télécharger pour lire hors ligne
Promotion 2017/2018
www.univ-oran.dz
‫قسم‬‫اآللي‬ ‫اإلعالم‬
Département d’Informatique
Domaine : Mathématiques & Informatique
Spécialité : Réseaux Informatiques et Système d’Information
Mémoire de Fin d’Etudes
Pour l’Obtention du Diplôme de
Master en Informatique
Présenté par :
KHADIDJA BOUKREDIMI
Session Juin 2018
THEME
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES
RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
Encadré par : Pr B. YAGOUBI
Co-encadré par : Mr S. MAKHLOUF
Jury
Président : Mme F. BELLOUNAR
Examinateur : Pr M. GUEZOURI
Code Master : 03/2018
Dédicaces
Ce modeste travail est dédié à :
Mes chers parents qui m’ont soutenu et encouragé tout au long de mes
années d’études. Qu’Allah vous garde et vous accorde longue vie, santé,
bonheur et prospérité.
Mes très chères sœurs Amina, Nour El Houda, Fatima et son mari.
Mes amis(e) du Club Team Open Minds.
À tous mes enseignants qui ont grandement contribué à l’enrichissement de
mes connaissances.
À tous les membres de la promotion de Master 2 RESIN 2017–2018.
À toutes les personnes qui m’ont apporté de l’aide.
Sincèrement Khadidja
Remerciements
J
e remercie Allah le tout puissant, le maître des cieux et de la terre, de m’avoir éclairer le
chemin et donner le courage et la volonté ainsi que la patience et la force de mener à bien ce
travail.
Ce travail a été effectué au Laboratoire d’Informatique d’Oran (LIO) dirigé par monsieur le
Professeur Bouziane BELDJILALL. Que je tiens à remercier profondément.
Je tiens à remercier particulièrement Mr Belabbas YAGOUBI, Professeur à l’université d’Oran
1, Ahmed BEN BELLA, de m’avoir encadrer.
Je tiens à exprimer mes vifs remerciements à Mr Sid Ahmed MAKHLOUF, Maître-Assistant
à l’université d’Oran 1, Ahmed BEN BELLA, qui m’a co-encadré et m’a fait profiter de son ex-
périence et qui a contribué à structurer ce travail par ses corrections, ses conseils et ses critiques.
Sa connaissance approfondie m’a permis de mener à bien ce travail.
Mes sincères remerciements et respects aux membres du jury qui m’ont honoré en acceptant
d’évaluer ce travail.
— Je remercie Mme Fatima zohra Bellounar maître de conférences B au département d’in-
formatique à l’université d’Oran 1, Ahmed BEN BELLA, qui m’a fait l’honneur d’avoir
accepté de présider ce jury.
— Je remercie, Mr Mustapha Guezouri, Professeur à l’université d’Oran 1, Ahmed BEN
BELLA, d’avoir accepté d’examiner ce travail.
Je n’oublie pas non plus nos Enseignants, qui tout au long du cycle d’études à l’Université
d’Oran 1, Ahmed BEN BELLA, nous ont transmis leur savoir.
Je remercie mes chères amies Nesrine Hanane REKKAB et Fatima YOUCEF qui m’ont ac-
cordé de leurs temps pour réviser ce manuscrit, je les remercie également d’avoir pu me soutenir
et m’encourager.
Je remercie aussi Abdeldjalil FORTAS d’avoir partager avec moi des ressources qui ont été
utile à ce travail.
Je ne saurai oublier ma famille qui m’a toujours soutenu dans tous mes choix. Vous constituez
une grande partie de mes motivations et j’espère toujours vous faire honneur. Un remerciement
particulier à mon père et ma mère pour tout l’amour inconditionnel, le soutien et la confiance
qu’ils m’ont apporté afin d’affronter ces années de labeur avec une grande confiance. Je leur
serai toujours reconnaissante pour tous leurs efforts et leurs sacrifices. Du fond du coeur, merci.
Je tiens en dernier lieu à exprimer ma reconnaissance et ma gratitude à toutes les personnes
qui ont contribué de près ou de loin à l’aboutissement de ce travail.
Résumé
Le Cloud Computing est le modèle de business qui permet un accès facile, à la demande aux
ressources où les utilisateurs peuvent stocker leurs données dans des centres d’hébergement gé-
rés par des entreprises tiers (les fournisseurs de Cloud). L’intérêt principal de cette stratégie pour
les utilisateurs réside dans le fait qu’ils ne paient que pour les services effectivement consom-
més. Par ailleurs, le Cloud s’appuie sur la virtualisation pour offrir ses services. La virtualisa-
tion agit comme une couche d’abstraction en ajoutant une couche de logiciel sur les ressources
informatiques physiques pour créer des ressources virtuelles. Cette abstraction donne l’oppor-
tunité d’avoir des services plus flexibles, fiables et performants. Ainsi, l’unité d’allocation de
ressources dans le Cloud est la machine virtuelle, qui est beaucoup plus facilement déployable
et migrable qu’une machine réelle.
Le présent travail s’inscrit dans un projet mené l’année précédente et dont le but était de
fournir un service de déploiement automatique et dynamique de machines virtuelles. Toutefois,
ces machines virtuelles étaient indépendantes vis à vis le réseau. À cet effet, nous avons proposé
un service qui a pour objectif d’automatiser le déploiement et la gestion des réseaux virtuels dans
le Cloud Computing, afin de gérer au mieux le trafic réseau des machines virtuelles résidant sur
le même hôte.
Mots clés : Cloud Computing, virtualisation, réseaux virtuels, VMWare vSphere, API VM-
ware, JAVA, VMware vSphere SDK
Abstract
Cloud Computing is the business model that allows easy on-demand access to resources
where users can store their data in hosting centers managed by third-party companies (Cloud
providers). The main interest of this strategy for users lies in the fact that they only pay for
services actually consumed. In addition, Cloud Computing relies on virtualization to offer its
services. Virtualization acts as an abstraction layer by adding a layer of software over physical
computing resources to create virtual resources. This abstraction makes it easier to offer more
flexible, reliable and powerful services. Thus, the unit of resource allocation in the Cloud is the
virtual machine, which are much more easily deployable and migrable than real machines.
The present work is part of a project carried out the previous year and its aim was to provide
a service of automatic and dynamic deployment of virtual machines. However, these virtual
machines were independent of the network. For this reason, we have proposed a service that
aims to automate the deployment and management of virtual networks in Cloud Computing, in
order to better manage the network traffic of virtual machines residing on the same host.
Keywords: Cloud Computing, virtualization, virtual networks, VMWare vSphere, VMware
API , JAVA, VMware vSphere SDK
Table des matières
Remerciements
Résumé
Table des figures I
Liste des tableaux III
Introduction générale 1
1 Cloud Computing : Concepts Fondamentaux 4
1.1 Intoduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Caractéristiques du Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Modèles de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Cloud Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2 Cloud privé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.3 Cloud hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.4 Cloud communautaire . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Services de Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 IaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.2 PaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.3 SaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Avantages et inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6.1 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6.2 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 Adoption de Cloud Computing dans les entreprises . . . . . . . . . . . . . . . 13
1.7.1 Le Cloud Computing dans les nouvelles entreprises . . . . . . . . . . . 13
1.7.2 Le Cloud Computing dans les entreprises à infrastructures existantes . . 14
1.8 Exemples de fournisseurs de services Cloud . . . . . . . . . . . . . . . . . . . 14
1.8.1 Amazon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8.2 Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8.3 Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Table des matières
2 Virtualisation 17
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Définition de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Types d’hyperviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Hyperviseur de type 1 « Bare-metal » . . . . . . . . . . . . . . . . . . 19
2.3.2 Hyperviseur de type 2 « hosted » . . . . . . . . . . . . . . . . . . . . . 19
2.4 Techniques de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1 Virtualisation complète . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2 Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.3 Virtualisation matérielle assistée . . . . . . . . . . . . . . . . . . . . . 21
2.5 Types de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.1 Virtualisation d’applications . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.2 Virtualisation du poste de travail . . . . . . . . . . . . . . . . . . . . . 22
2.5.3 Virtualisation de serveurs . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.4 Virtualisation du stockage . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.5 Virtualisation du réseau . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6 Networking avec VMware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.1 Commutateur virtuel VMware . . . . . . . . . . . . . . . . . . . . . . 25
2.6.2 Création d’un commutateur standard virtuel . . . . . . . . . . . . . . . 26
2.7 Avantages de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8 Inconvénients de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9 Émulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.10 Virtualisation et le Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . 31
2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Conception et implémentation 32
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.1 Description de la problématique . . . . . . . . . . . . . . . . . . . . . 33
3.2.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3.1 Environnement d’expérimentation . . . . . . . . . . . . . . . . . . . . 45
3.3.2 Spécifications techniques . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.3 Explication des lignes de codes des méthodes utilisées . . . . . . . . . 50
3.3.4 Scénarios d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Conclusion générale et perspective 60
Bibliographie 62
Table des figures
1.1 Cloud Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Cloud Privé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Cloud Hybride [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Cloud Communautaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Répartition des responsabilités dans le Cloud . . . . . . . . . . . . . . . . . . 11
2.1 Hyperviseur de type 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Hyperviseur de type 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Concept du réseau virtuel dans un hôte VMware . . . . . . . . . . . . . . . . . 24
2.4 Interface mise en réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5 Choix de type de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6 Choix de commutateur virtuel . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7 Spécification des paramètres de connexion . . . . . . . . . . . . . . . . . . . . 27
2.8 La page prêt à terminer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.9 Le nouveau commutateur virtuel créé . . . . . . . . . . . . . . . . . . . . . . 28
3.1 Diagramme des cas d’utilisation de l’utilisateur . . . . . . . . . . . . . . . . . 35
3.2 Diagramme de séquence du cas « S’identifier » . . . . . . . . . . . . . . . . . 39
3.3 Diagramme de séquence du cas « Ajouter nouveau(x) switch » . . . . . . . . . 40
3.4 Diagramme de séquence du cas « Utiliser switch existant » . . . . . . . . . . . 40
3.5 Diagramme de séquence du cas « Détruire switch » . . . . . . . . . . . . . . . 41
3.6 Diagramme de classe du service . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.7 Topologie du Cloud privé de LIO (2018) . . . . . . . . . . . . . . . . . . . . . 45
3.8 Caractéristiques de la machine virtuelle . . . . . . . . . . . . . . . . . . . . . 46
3.9 VMware ESXi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.10 Présentation de VMware vCenter server . . . . . . . . . . . . . . . . . . . . . 47
3.11 Interface d’identification vSphere Client . . . . . . . . . . . . . . . . . . . . . 47
3.12 Interface d’identification vSphere Web Client . . . . . . . . . . . . . . . . . . 48
3.13 vSphere SDK et l’API vSphere . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.14 Méthode de l’affichage des switch existant dans l’inventaire . . . . . . . . . . . 50
3.15 Méthode d’ajout d’un switch virtuel . . . . . . . . . . . . . . . . . . . . . . . 51
3.16 Méthode de reconfiguration d’une machine virtuelle . . . . . . . . . . . . . . . 53
3.17 Méthode d’ajout d’un adaptateur virtuel à une machine virtuelle . . . . . . . . 53
3.18 Méthode de destruction d’un switch virtuel . . . . . . . . . . . . . . . . . . . 54
3.19 Méthode de destruction d’une machine virtuelle . . . . . . . . . . . . . . . . . 55
I
Table des figures
3.20 Méthode de test de l’existence d’un switch virtuel dans un hôte . . . . . . . . . 55
3.21 Choix du nombre de VMs et leurs systèmes d’exploitation . . . . . . . . . . . 56
3.22 Spécification des noms des VMs . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.23 Choix de la topologie et du switch virtuel . . . . . . . . . . . . . . . . . . . . 56
3.24 Spécification du pool de ressources . . . . . . . . . . . . . . . . . . . . . . . . 56
3.25 Présentation du pool de ressource dans vSphere Client . . . . . . . . . . . . . 57
3.26 Présentation de la topologie étoile dans vSphere Client . . . . . . . . . . . . . 57
3.27 Présentation de la mise en réseau du commutateur standard « vSwitch2 » . . . . 57
3.28 Choix de la topologie et spécification des noms des commutateurs virtuels . . . 58
3.29 Spécification du pool de ressources . . . . . . . . . . . . . . . . . . . . . . . . 58
3.30 Présentation du pool de ressource dans vSphere Client . . . . . . . . . . . . . 58
3.31 Présentation de la topologie anneau dans vSphere Client . . . . . . . . . . . . 58
3.32 Présentation de la mise en réseau des commutateurs créés . . . . . . . . . . . . 59
II
Liste des tableaux
3.1 Description textuelle du cas d’utilisation « s’identifier » . . . . . . . . . . . . . 36
3.2 Description textuelle du cas d’utilisation « créer topologie » . . . . . . . . . . 36
3.3 Description textuelle du cas d’utilisation « Déployer machines virtuelles » . . . 37
3.4 Description textuelle du cas d’utilisation « Ajouter nouveau(x) switch » . . . . 37
3.5 Description textuelle du cas d’utilisation « Utiliser switch existant » . . . . . . 38
3.6 Description textuelle du cas d’utilisation « Détruire switch » . . . . . . . . . . 38
3.7 Description de la classe « Utilisateur » . . . . . . . . . . . . . . . . . . . . . . 42
3.8 Description de la classe « vSwitch » . . . . . . . . . . . . . . . . . . . . . . . 43
3.9 Description de la classe « Machine virtuelle » . . . . . . . . . . . . . . . . . . 43
3.10 Description de la classe « Hôte ESXi » . . . . . . . . . . . . . . . . . . . . . . 44
3.11 Description de la classe « vCenter server » . . . . . . . . . . . . . . . . . . . . 44
3.12 Caractéristiques matérielles des composants du Cloud de LIO . . . . . . . . . 45
3.13 Explication des lignes de code de la méthode « displayNetworks » . . . . . . . 50
3.14 Explication des lignes de code de la méthode « addVirtualSwitch » . . . . . . . 51
3.15 Explication des lignes de code de la méthode « reconfigVM » . . . . . . . . . . 52
3.16 Explication des lignes de code de la méthode « addNic » . . . . . . . . . . . . 53
3.17 Explication des lignes de code de la méthode « DestroySwitch » . . . . . . . . 54
3.18 Explication des lignes de code de la méthode « DestroyVM » . . . . . . . . . . 54
3.19 Explication des lignes de code de la méthode « ExistSwitchName » . . . . . . . 55
III
Introduction générale
L
e Cloud Computing est une révolution dans l’informatique qui change la façon de consom-
mer les services informatiques. Il a ouvert la voie à l’informatique afin qu’elle soit plus
efficace et rentable. Les organisations peuvent économiser de l’argent au cours des premières
années d’utilisation et réaliser des économies non seulement en termes de rentabilité, mais aussi
en rendant l’organisation plus agile ou capable de répondre aux changements de leur marchés
respectif.
Le Cloud Computing n’est pas une nouvelle technologie, mais plutôt, un nouveau modèle
de livraison de services que ce soit des services de type stockage ou puissance de calcul ou des
applications. Ces services sont déportés sur des serveurs distants chez un fournisseur du Cloud,
et ils sont accessibles simultanément par plusieurs utilisateurs géographiquement distant utili-
sant tout type de support (ordinateur de bureau, tablette, ordinateur portable ou smartphone) via
Internet. Les utilisateurs peuvent exploiter des ressources informatiques différentes pendant une
durée variable pour satisfaire leurs besoins informatiques et quand ils ont en besoin. L’utilisa-
tion des ressources est ensuite, calculé et facturé à chaque utilisateur sur la base de paiement par
usage réel des ressources provisionnées. Ce modèle s’est avéré avantageux pour les entreprises,
car, il a transféré toutes les tâches d’administration et de maintenance du système vers les four-
nisseurs, ce qui leur permet de gagner en productivité et en finance. Quant au fournisseur du
Cloud, il a pour but de répondre aux besoins des clients en dépensant le minimum de ressources
possibles. Une des approches que le fournisseur utilise consiste à mutualiser les ressources dont
il dispose afin de les partager entre plusieurs entreprises. Cette mutualisation des ressources est
devenu possible grâce à la virtualisation. Même si la virtualisation de ressources informatiques
n’est pas née avec le Cloud, l’avènement du Cloud a considérablement augmenté son utilisation.
Le Cloud repose donc sur la virtualisation pour allouer ses ressources. Ainsi, l’unité d’allocation
de ressources dans le Cloud est la machine virtuelle, qui est beaucoup plus facilement déployable
et migrable qu’une machine réelle.
La virtualisation est une technique qui permet de partitionner les ressources informatiques
physiques en plusieurs machines virtuelles indépendantes les unes des autres. Elle fonctionne
1
Introduction générale
en insérant une fine couche logicielle (appelé un hyperviseur) directement sur le matériel infor-
matique ou sur un système d’exploitation hôte, qui permet de gérer et d’allouer les ressources
requises. Auparavant, la virtualisation était destinée aux serveurs, cependant elle s’est répandue
pour couvrir d’autres domaines tels que les postes de travail, les applications, le stockage et les
réseaux.
Le laboratoire LIO de l’université d’Oran 1 Ahmed Ben Bella, dispose d’un Cloud privé qui
est mis à disposition du personnel (enseignants, étudiants) du département d’informatique. Ce
Cloud privé offre une variété de ressources virtuelles, tels que le stockage, le calcul (les machines
virtuelles) et le réseau (les commutateurs virtuels, les liens virtuels, les routeurs virtuels et les
cartes réseaux virtuels, etc.). Auparavant les utilisateurs (enseignants, étudiants) ayant accès à ce
Cloud privé, devraient demander à l’administrateur de leur provisionner des ressources afin de
remplir leurs besoins pour supporter la charge de travail de leurs applications. Par conséquent,
l’administrateur met du temps (jours) pour répondre à leurs demandes.
Ce projet s’inscrit dans un projet mené l’année précédente et dont le but était de fournir un
service de déploiement automatique et dynamique de machines virtuelles, permettant aux utili-
sateurs de provisionner et de lancer rapidement de nouvelles machines virtuelles préconfigurées
sans l’intervention directe de l’administrateur. Toutefois, ces machines virtuelles étaient indé-
pendantes vis à vis le réseau. C’est dans ce cadre que s’inscrit ce projet de fin d’études intitulé
‘Automatisation du déploiement et de la gestion des réseaux virtuels dans le Cloud Computing’.
L’objectif de ce projet est d’adresser la connectivité réseau de machines virtuelles. La solution
que nous proposons est d’implémenter un service qui permet de déployer dynamiquement et au-
tomatiquement des réseaux virtuels, en particulier des commutateurs virtuels afin de faire com-
muniquer les machines virtuelles sur le même hôte les unes avec les autres et cela par rapport à
la topologie choisie. Cette solution est en mesure d’automatiser le processus de provisionnement
de réseau virtuel afin d’accélérer la fourniture de service et de réduire le délais de provisionne-
ment, qui passent de plusieurs jours à quelques minutes.
Le présent manuscrit s’articule autour de trois chapitres :
— Chapitre 1 – Cloud Computing : Concepts Fondamentaux :
Ce chapitre présente des généralités à propos du Cloud Computing. Nous abordons ses
définitions, ses caractéristiques ensuite nous détaillons ses services et ses modèles de
déploiement et nous décrivons ses avantages et inconvénients. Nous clôturons ce chapitre
par donner des exemples des fournisseurs populaire du Cloud.
— Chapitre 2 – Virtualisation :
Ce chapitre est consacré à la présentation des notions préliminaires de la virtualisation.
Nous exposons sa définition, ses techniques, ses types ensuite nous décrivons ses avan-
tages et inconvénients. Nous finissons ce chapitre par expliquer la différence entre la
virtualisation et le Cloud Computing.
2
Introduction générale
— Chapitre 3 – Conception et implémentation :
Ce chapitre est réservé à la description détaillée de la conception et de l’implémentation.
Tout d’abord la conception, qui a été communiquée en utilisant des modèles formels
permettant d’avoir une spécification précise à l’aide des différents diagrammes UML,
qui, à leur tour, nous permettent d’avoir des différentes vues du système à implémenter.
Ensuite, l’étape d’implémentation où nous présentons l’environnement d’expérimenta-
tion, les différents outils logiciels et le langage de programmation utilisés pour mettre en
œuvre le service proposé.
Nous clôturons ce mémoire par une conclusion générale et quelques perspectives.
3
Chapitre 1
Cloud Computing : Concepts Fondamentaux
Sommaire
1.1 Intoduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Caractéristiques du Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Modèles de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Cloud Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2 Cloud privé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.3 Cloud hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.4 Cloud communautaire . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Services de Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 IaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.2 PaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.3 SaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Avantages et inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6.1 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6.2 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 Adoption de Cloud Computing dans les entreprises . . . . . . . . . . . . 13
1.7.1 Le Cloud Computing dans les nouvelles entreprises . . . . . . . . . . 13
1.7.2 Le Cloud Computing dans les entreprises à infrastructures existantes . 14
1.8 Exemples de fournisseurs de services Cloud . . . . . . . . . . . . . . . . . 14
1.8.1 Amazon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8.2 Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8.3 Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4
Chapitre 1. Cloud Computing : Concepts Fondamentaux
1.1 Intoduction
Dans le passé, l’utilisateur (individu, entreprise, organisation) devait acheter du matériel et
logiciels pour héberger ses applications et ses données. En outre, il devait louer ou construire un
espace de centre de données pour héberger ses ressources matérielles et logicielles. De nos jour,
il existe des plateformes Cloud qui donnent la possibilité de bénéficier des systèmes distants à
la demande via Internet, de payer uniquement pour les ressources utilisées par l’utilisateur final
et de les étendre et contracter au besoin.
Au niveau de ce chapitre nous présentons les notions fondamentales du Cloud Computing,
premièrement nous commençons par exposer les différentes définitions qui lui sont données. En-
suite, nous présentons ses caractéristiques ainsi que ses différents modèles de déploiement et de
livraison de services. Puis, nous recensons ses avantages et inconvénients, nous exposons aussi
son adoption dans les entreprises avec ou sans un système préexistant. Enfin, nous terminons par
donner des exemples des fournisseurs populaire du Cloud.
1.2 Définition
NIST (National Institute of Standards and Technology) en français « Institut National des
normes et de la technologie » définit le Cloud Computing comme « un modèle permettant un
accès réseau omniprésent, pratique et à la demande à un pool partagé de ressources informatiques
configurables (par exemple, réseaux, serveurs, stockage, applications et services) pouvant être
rapidement provisionnées et libérées avec un minimum d’effort de gestion ou d’interaction avec
le fournisseur de services. » [2]
Gartner décrit succinctement le Cloud comme « la mise à disposition de services informa-
tiques extensibles via l’Internet à un nombre potentiellement élevés de clients externes. » [3]
Selon Cisco le Cloud Computing est un ensemble de « Ressources et services informatiques
extraits de l’infrastructure sous-jacente et fournis « à la demande » et « à l’échelle » dans un
environnement mutualisé. La définition de Cisco de Cloud Computing est générale. Cependant,
trois attributs clés de la définition comprennent :
1. « À la demande » signifie que les ressources peuvent être provisionnées immédiatement
en cas de besoin, libérées lorsqu’elles ne sont plus nécessaires et facturées uniquement
lorsqu’elles sont utilisées.
2. « À l’échelle » signifie que le service fournit l’illusion d’une disponibilité infinie des
ressources afin de répondre à toutes les demandes qui en sont faites.
3. « Environnement mutualisé » signifie que les ressources sont fournies à de nombreux
consommateurs à partir d’une seule implémentation, ce qui permet au fournisseur d’éco-
nomiser des coûts significatifs. » [4]
Donc, le Cloud est un modèle qui offre des services à la demande. Ces services peuvent
être des ressources de type stockage ou puissance de calcul, ou des applications et solutions
5
Chapitre 1. Cloud Computing : Concepts Fondamentaux
logicielles. Ces services sont accessibles par plusieurs utilisateurs simultanément à distance via
Internet depuis n’importe quel endroit et n’import quand et sur tout type de support qui ne dispose
pas forcément une grande capacité de calcul. Les services sont facturés sur la base de paiement
par usage réel «pay-per-use» des ressources provisionnées, tout comme le paiement de la facture
mensuelle pour le service d’électricité.
1.3 Caractéristiques du Cloud
Le modèle de Cloud Computing du NIST comprend cinq caractéristiques ou exigences es-
sentielles, ce qui différencie le modèle Cloud de l’approche informatique traditionnelle [5].
1. Libre service à la demande : La fonction de service à la demande fait référence à la
capacité qui permet aux utilisateurs de consommer les ressources informatiques autant
qu’ils en ont besoin à tout moment. En outre, l’utilisateur est capable de demander des
services de Cloud selon ses besoins via une interface et les ressources deviennent dispo-
nibles en quelques secondes sans aucune intervention humaine de la part du fournisseur.
2. Mise en commun des ressources : Le Cloud Computing met à disposition des utilisa-
teurs des ressources informatiques (processeur, mémoire, stockage et réseau), dont ils
peuvent y accéder et les utiliser pour satisfaire leurs besoins informatiques et quand ils
ont en besoin. Contrairement à l’approche informatique traditionnelle où chaque entre-
prise ou utilisateur possède ses propres ressources informatiques physiques, les pools
de ressources informatiques sont maintenus à des emplacements distants par le fournis-
seur auquel accèdent tous les utilisateurs. Les pools de ressources doivent être raison-
nablement grands, flexibles et capables de prendre en charge de nombreux utilisateurs
simultanément sans aucune défaillance.
3. Accès réseau large bande : le service de Cloud Computing est accessible à distance
par les utilisateurs via le réseau. Pour atteindre cet objectif, une infrastructure de réseau
solide doit être mise en place pour une fourniture sans effort et rapide des services infor-
matiques. Ainsi, les liens de communication à large bande passante répartis sur la zone de
service sont les attributs essentiels du CC, de sorte que les utilisateurs peuvent y accéder
depuis n’importe quel endroit et n’importe quand.
4. Élasticité rapide : le système doit être suffisamment élastique. Il devrait être capable de
croître et de rétrécir selon les besoins. L’élasticité rapide fait référence à cette capacité du
Cloud où un système informatique peut s’étendre ou se réduire rapidement en fonction
des besoins réels en ressources au moment de l’exécution.
5. Service mesurable et facturable : Dans le modèle de Cloud Computing, le paiement
est déterminé en mesurant les usages des ressources informatiques par un utilisateur. Par
conséquent, le fournisseur doit utiliser un mécanisme pour mesurer la consommation
réelle par chaque utilisateur ou organisation. Cela signifie que l’utilisation des ressources
mises en commun doit être calculée et facturée à chaque utilisateur sur la base d’un
6
Chapitre 1. Cloud Computing : Concepts Fondamentaux
système de comptage. Généralement, ceci est fait sur une métrique connue telle que la
quantité de puissance de traitement consommée, l’utilisation du volume de stockage, la
bande passante réseau utilisée, le nombre de transactions réseau, etc.
1.4 Modèles de déploiement
Les modèles de déploiement sont divisés en quatre grandes catégories. Ces modèles dé-
crivent les différents modes d’exploitation du Cloud et spécifient également sa limite d’accès.
Ceci confère aux organisations une multitude de choix pour adopter une solution Cloud tout
dépend de leurs exigences.
1.4.1 Cloud Public
Le Cloud public est appelé aussi le Cloud externe, car il est externe à l’organisation. Ce type
de Cloud est mis en place et géré par un prestataire externe propriétaire de l’infrastructure, qui
met à disposition des services accessibles par Internet (tel que IaaS, PaaS et SaaS) à un nombre
illimité de clients différents (utilisateur individuel, organisation, entreprise), qui les utilisent à la
demande et à tout moment. Grâce à la mutualisation des ressources, ce modèle de déploiement
favorise la multi-location, c’est à dire la même ressource physique est partagée avec plusieurs
clients indépendants. Ceci offre un avantage majeur pour les fournisseurs car il leur permet de
servir un grand nombre de consommateurs dans le monde, et cela donc augmente le taux d’uti-
lisation des ressources et propose des services à des prix attractifs.
Figure 1.1 – Cloud Public
1.4.2 Cloud privé
Le Cloud privé est généralement conçu pour satisfaire les besoins propres d’une seule en-
treprise. Ce modèle donne un niveau de contrôle élevé sur les services et l’infrastructure Cloud.
Contrairement au Cloud public qui ne réside pas au même emplacement physique que le client,
le Cloud privé peut être déployé en interne ainsi qu’en externe. Le Cloud privé interne réside
physiquement dans le périmètre de l’entreprise. Les ressources de ce Cloud sont hébergées sur
7
Chapitre 1. Cloud Computing : Concepts Fondamentaux
l’infrastructure de l’entreprise elle-même et sont accessibles à travers un réseau sécurisé. Le
Cloud privé externe réside hors des frontières de l’entreprise. Il est hébergé chez un fournis-
seur qui possède l’infrastructure, mais cette dernière reste sous le contrôle et la supervision de
l’entreprise consommatrice et elle est accessible via un réseau sécurisé de type VPN.
Figure 1.2 – Cloud Privé
1.4.3 Cloud hybride
Le Cloud hybride est une conjonction de deux modèles de déploiement différents, généra-
lement un Cloud public et un Cloud privé. Ces derniers restent des entités indépendantes, mais
sont liés par des technologies propriétaires qui assurent la portabilité des données et des appli-
cations déployées sur ces Clouds. En outre, ce modèle allie les avantages des deux modèles de
déploiement. Il permet aux entreprises de bénéficier des capacités du Cloud privé pour héberger
leurs ressources sensibles, ainsi de recourir au Cloud public pour absorber les pics de charge
ponctuels. Ce qui peut réduire les coûts de construction et de management des ressources sur le
Cloud.
Figure 1.3 – Cloud Hybride [1]
8
Chapitre 1. Cloud Computing : Concepts Fondamentaux
1.4.4 Cloud communautaire
Le Cloud communautaire met en commun l’infrastructure et les services entre un groupe
d’organisations d’une communauté spécifique, qui partagent les mêmes intérêts. Physiquement,
il peut résider dans les locaux d’un membre de la communauté ou il peut être situé dans un
endroit externe. L’objectif du Cloud communautaire est de fournir les avantages du Cloud public,
comme la multi-location, la facturation à l’utilisation etc., à ses clients, ainsi qu’un niveau accru
de confidentialité et de sécurité, comme le Cloud privé [5].
Figure 1.4 – Cloud Communautaire
1.5 Services de Cloud Computing
Il existe trois principales catégories de modèles de prestation de services, à savoir l’infra-
structure en tant que service (IaaS), la plateforme en tant que service (PaaS) et le logiciel en
tant que service (SaaS). Chaque modèle représente une partie différente de la pile de Cloud
Computing.
1.5.1 IaaS
IaaS est la couche la plus basse du modèle de service de Cloud Computing. Le niveau Iaas
permet au client d’externaliser son parc matériel serveur et de s’affranchir des compétences de
conception et d’exploitation des infrastructures techniques [1]. En mettant à sa disposition des
équipements matériels en mode virtuel en tant que commutateurs virtuels, processeur virtuel,
stockage virtuel, etc. Ces ressources virtuelles peuvent être utilisées de la même manière que
les ressources physiques (matérielles) pour créer une configuration informatique (telle qu’une
machine virtuelle ou un réseau virtuel) [5]. Les utilisateurs consomment ces ressources via Inter-
net en utilisant des services Web. Dans le modèle IaaS, l’infrastructure informatique est gérée,
administrée et contrôlée par le fournisseur tandis que le client prend en charge la gestion et
l’exploitation de toutes les couches supérieures, les systèmes d’exploitation, bases de données,
applications. Le fournisseur facture ses clients en fonction de leur utilisation.
9
Chapitre 1. Cloud Computing : Concepts Fondamentaux
1.5.2 PaaS
Le modèle PaaS est destiné aux développeurs, qui développent et déploient leurs applications
sur l’infrastructure du fournisseur en utilisant des langages de programmation, des bibliothèques
et des outils supportés par le fournisseur (utilisation des API proposées par le fournisseur pour
exploiter les fonctionnalités via Internet). Mais ceci n’empêche pas les développeurs d’utiliser
des outils provenant d’autres sources. Certains fournisseurs PaaS permettent aux utilisateurs
de télécharger leurs propres dépendances ou de télécharger automatiquement ce qui manque.
Certains n’autorisent que des bibliothèques spécifiques de types spécifiques [6].
PaaS fournit un moyen unique de provisionner de nouvelles ressources informatiques. Les
API et les interfaces Web rendent trivial la création de nouvelles applications. Cela permet aux
administrateurs système d’être plus efficaces et tant que le fournisseur PaaS fonctionne correc-
tement, il y a beaucoup moins de responsabilités [6].
La fourniture de serveurs d’hébergement ainsi que d’outils de modélisation et de programma-
tion, à moindre coût, permet de dispenser les entreprises ainsi que les boîtes de développement
d’achat de ressources matérielles et logicielles (serveurs, outils de virtualisation et d’adminis-
tration, etc.) nécessaire au développement de leurs applications [7].
La gestion et la maintenance de toute l’infrastructure (système d’exploitation, les mises à
niveau, les correctifs et le support) relèvent de la responsabilité du fournisseur du service Cloud.
Parmi ses avantages :
— Il fournit un environnement aux développeurs pour qu’ils puissent travailler sans se sou-
cier des différentes configurations ou de la maintenance que nécessitent les infrastruc-
tures sous-jacente,
— Il offre une grande flexibilité. Les prototypes peuvent être assemblés et testés plus rapi-
dement en jours, pas en semaines ou en mois,
— Il est rentable parce que les entreprises n’auront plus besoin de faire des investissements
en capital initial importants,
La plupart des fournisseurs PaaS ont un certain niveau d’offre gratuite de leurs plateformes pour
que les clients aient un aperçu de la façon dont le service fonctionne et d’examiner ce qui est
facturé et ce qui ne l’est pas [6].
1.5.3 SaaS
Ce modèle fournit des logiciels via Internet. Le fournisseur héberge le logiciel sur ses propres
serveurs et les clients peuvent s’abonner pour bénéficier des services logiciels mis en ligne via
divers périphériques (des PCs, des tablettes, des smartphones ou des navigateurs Web) à leur
demande.
Le service SaaS s’est avéré financièrement bénéfique pour les PME (Petite et Moyenne En-
treprise) ainsi que pour les grandes entreprises grâce à la mutualisation des coûts d’achat et
d’installation du logiciel, de sa maintenance, de sa mise à jour. De plus, elles n’ont plus besoin
10
Chapitre 1. Cloud Computing : Concepts Fondamentaux
de superviser son bon fonctionnement ou de se soucier de son compatibilité avec le matériel,
toutes ces opérations sont de la responsabilité du fournisseur de services. Les clients paient
seulement pour l’abonnement (annuel ou mensuel), ou l’usage réel selon la politique de paie-
ment du prestataire de services.
Le client ne gère ni ne contrôle l’infrastructure Cloud sous-jacente, y compris le réseau,
les serveurs, les systèmes d’exploitation, le stockage ou même les applications individuelles, à
l’exception possible des paramètres de configuration d’application spécifiques à l’utilisateur [2].
La figure 1.5 illustre l’impact du Cloud Computing sur la structure de gouvernance des or-
ganisations informatiques. Le niveau de contrôle de l’organisation informatique diminue et il
augmente pour le fournisseur en passant de l’IaaS au PaaS au SaaS.
Figure 1.5 – Répartition des responsabilités dans le Cloud
1.6 Avantages et inconvénients
1.6.1 Avantages
1. Réduction des coûts de
— Investissement : l’adoption d’une solution Cloud ne requiert aucun investissement
préalable, ce qui permet au capital d’être placé dans des activités de coeur de métier.
— Gestion : les entreprises n’ont plus besoin à se soucier des frais de gestion liés à l’ex-
ploitation du système, de l’énergie ainsi que les équipements de refroidissement ou
à la nécessité d’avoir du personnel qualifié pour maintenir et superviser leurs plate-
formes. Elles vont se débarrasser de la responsabilité de l’administration du système,
de sa maintenance parce que le modèle Cloud transfère toutes ses tâches vers les
fournisseurs [5].
— Utilisation : l’utilisation des services Cloud est facturée raisonnablement selon la
consommation de l’utilisateur.
11
Chapitre 1. Cloud Computing : Concepts Fondamentaux
2. Flexibilité : les avantages de la flexibilité découlent de l’approvisionnement rapide de
nouvelles capacités et de la relocalisation ou la migration rapide des charges de travail.
Dans les environnements du secteur public, le Cloud Computing fournit une agilité en
termes de processus d’achat et d’acquisition et de délais [4].
3. Disponibilité continue : les statistiques ont montré que le temps de fonctionnement du
service (fourni par des fournisseurs réputés) compté pour une année ne descend généra-
lement pas au-dessous de 99.9%. Une telle disponibilité continue et garantie du service
Cloud est un facteur important pour toute entreprise [5].
4. Mobilité : les services Cloud sont accessibles partout dans le monde via Internet. les
utilisateurs peuvent y accéder à travers n’importe quel appareil informatique.
5. Haute résilience : la résilience est la capacité de réduire l’ampleur et/ou la période de
perturbations causées par des circonstances indésirables. Le Cloud Computing est déve-
loppé sur la base d’une infrastructure informatique résiliente, et les services Cloud sont
donc plus résistants aux attaques et aux failles. La résilience passe par la redondance
des infrastructures combinées à un mécanisme efficace d’anticipation, d’absorption et
d’adaptation [5].
6. Sécurité contre les catastrophes (système anti désastre) : la panne des systèmes due
à une défaillance technique soudaine ou une catastrophe naturelle est une préoccupation
majeure pour les utilisateurs. En particulier, tout dommage aux dispositifs de stockage
peut entraîner une perte commerciale énorme. Le Cloud Computing dispose de systèmes
de récupération robustes qui stocke et relance le système à nouveau. Ainsi, les systèmes
et les données restent plus protégés dans le CC en matière de sûreté et de sécurité que
les systèmes informatiques traditionnels [5].
7. Écologique : le Cloud minimise le besoin en ressources électroniques, ceci permet de
réduire les effets néfastes liés à la production des déchets électroniques, ainsi à contribuer
à la diminution des émissions de carbone.
1.6.2 Inconvénients
1. Nécessité d’une bonne connexion Internet : l’accès aux services Cloud nécessite une
connexion très performante. Donc, toute coupure de connexion survenant momentané-
ment ou durablement peut priver les utilisateurs de tous les accès au Cloud. En outre, le
transfert de données volumineuses nécessite une bande passante plus importante, ce be-
soin peut faire exploser le budget surtout pour les entreprises qui situent dans des zones
non desservies par une bonne connexion Internet.
2. La localisation des données : le Cloud n’ayant pas de frontière, il faut disposer d’un en-
gagement sur les lieux de stockage des données, et s’assurer que les réglementations des
pays sont en conformité avec les réglementations auxquelles le client est soumis ou bien
qu’il souhaite avoir [1]. La règle de confidentialité ou de conformité diffère généralement
12
Chapitre 1. Cloud Computing : Concepts Fondamentaux
d’une juridiction à l’autre. les règles du degré de divulgation des données personnelles
aux organismes gouvernementaux (dans le cas de certaines enquêtes officielles) diffèrent
d’un pays à l’autre. la situation peut survenir lorsque la loi du pays d’un abonné au Cloud
demande que certaines données soient divulguées lorsque la loi de la région d’héberge-
ment du Cloud ne permet pas une telle divulgation [5].
3. Contrôle réduit sur la gouvernance : quoique les consommateurs sont déchargés de
la lourde responsabilité de gérer le système informatique, ils sont toutefois limités par
rapport à la manipulation de leurs données (attribution d’un certain degré de contrôle
opérationnel en fonction de service).
4. Suppression de données incomplètes : lorsqu’un utilisateur supprime une donnée sto-
ckée dans le Cloud, celle-là peut ne pas être complètement supprimée en raison de la
réplication qui duplique les données dans le datacenter du Cloud afin de rendre ces der-
nières disponible. Bien que cela s’avère être un avantage, cependant l’utilisateur ne sait
pas sur quel serveur et dans quel datacenter cette opération est effectuée, car il ne connaît
pas la localisation de ses données.
5. La réversibilité du service : en cas de rupture de contrat ou de changement de fournis-
seur, le client doit s’assurer de la récupération et de la destruction de ses données sur
l’infrastructure du fournisseur après sa migration [1].
6. Sécurité des données : la sécurité des données dans le CC est une préoccupation majeure
pour les consommateurs. Puisque, les données sont stockées en dehors de leurs limites de
réseau protégés par les pare-feu et gérées par une partie tierce, elles peuvent être volées ou
mal utilisées. Ce qui est important, c’est qu’il faut connaître quelles sont les politiques
du fournisseur qui régissent la gestion et la maintenance des données. Par exemple, la
politique de Google stipule que la société partagera des données avec le gouvernement
si elle a une « croyance de bonne foi » que l’accès est nécessaire pour répondre aux
demandes légales.
1.7 Adoption de Cloud Computing dans les entreprises
1.7.1 Le Cloud Computing dans les nouvelles entreprises
Les nouvelles entreprises ne possèdent généralement pas d’infrastructure informatique et
rarement le savoir-faire nécessaire à une implémentation et utilisation. Cependant, ce sont pré-
cisément ces entreprises qui ont besoin de services informatiques entièrement fonctionnels et
fiables dans un délai très court, afin de mettre en oeuvre leurs idées. Une infrastructure TIC
flexible et rentable gagne l’attention particulière des jeunes entreprises, notamment si celle-ci
délivrent elles-mêmes des services informatiques. En utilisant un serveur de Cloud, elles n’ont
pas à investir dans leurs propres parcs de serveurs. En même temps, elles peuvent utiliser les mé-
canismes de sécurité existants du fournisseurs de Cloud. Les solutions logicielles et de stockage
13
Chapitre 1. Cloud Computing : Concepts Fondamentaux
flexibles pouvant être ajustées quotidiennement en fonction de l’utilisation sont très intéressantes
pour les jeunes entreprises. par conséquent, elles peuvent donc commencer leur activité sans ré-
server de ressources informatiques durant la phase incertaine de démarrage [3].
1.7.2 Le Cloud Computing dans les entreprises à infrastructures existantes
Contrairement aux jeunes entreprises, les grandes sociétés ont dans la plupart des cas, des
départements informatiques dotés des connaissances spécialisées et industrielles, afin d’avoir à
leur disposition les services informatiques désirés. Ces entreprises font souvent précéder la sé-
curité des TIC avant la flexibilité, car les connaissances et le savoir-faire de l’entreprise acquis
sur une longue période se trouvent dans ces données. Ces dernières doivent être continuellement
disponibles et sécurisées, étant capitales pour l’entreprise et sans lesquelles sa survie serait me-
nacée. Puisque les données ont tendances à être perdues, donc l’introduction d’une solution
basée dans le Cloud permet aux entreprises de conserver ses données et logiciels sur le serveur
du fournisseur et de fournir ainsi une mobilité aux collaborateurs en leur permettant d’accéder
aux données à partir d’une simple station de travail, et en déplacement sur un téléphone portable
permettant l’accès à Internet. Avec une telle solution les problèmes d’environnements informa-
tiques hétérogènes seraient dépassés, les coûts des investissements réduits et la transparence de
l’information améliorée [3].
1.8 Exemples de fournisseurs de services Cloud
1.8.1 Amazon
Amazon est une entreprise de commerce électronique américaine. Amazon est considéré
comme un leader du marché dans l’infrastructure en tant que service (IaaS). La suite de services
de CC offerte par Amazon est connue sous le nom de Services Web Amazon en anglais « Amazon
Web Services »(AWS). Au départ son but était de vendre des livres en ligne, mais elle a ensuite
étendu ses activités dans différents domaines. AWS met à disposition un Cloud public, et propose
des offres IaaS dans le Cloud pour les entreprises qui ont besoin de puissance de calcul, de
stockage et d’autres services [5]. Parmi les services populaires de AWS, nous trouvons :
— Elastic Compute Cloud (EC2) permet la création des serveurs virtuels, il fournit une
capacité de calcul redimensionnable dans le Cloud.
— Simple Storage System (S3) fournit une interface de services Web qui peut être utilisée
pour stocker et récupérer des quantités illimitées de données, à tout moment, de n’importe
où sur le Web [8].
— SimpleDB fournit les principales fonctions de base de données, d’indexation et d’inter-
rogation de données, elle peut être utilisé avec EC2 et S3. Les consommateurs sont factu-
rés sur la base de la consommation de ressources par le biais de la facturation mensuelle.
Amazon propose également un plan d’utilisation gratuit jusqu’à une certaine quantité de
14
Chapitre 1. Cloud Computing : Concepts Fondamentaux
stockage de données [5].
— Simple Queue Service fournit une file d’attente de messages pour les stocker lorsqu’ils
se déplacent entre les ordinateurs afin d’éviter la perte des données et d’assurer une bonne
connectivité entre les producteurs et les consommateurs.
1.8.2 Microsoft
L’activité de Microsoft dans les offres de services Cloud couvre l’ensemble de l’application
(SaaS), de la plateforme (PaaS) et de l’infrastructure (IaaS). Microsoft offre des services héber-
gés dans le Cloud combinés à des logiciels locaux. Microsoft avait d’abord nommé ses services
en tant que « Software Plus Services » (Software + Services). Grâce à cette initiative, Microsoft
a fourni un logiciel traditionnel intégré à une suite de services hébergés dans le Cloud pour offrir
une flexibilité supplémentaire aux utilisateurs et aux entreprises. Plus tard, Microsoft a renommé
le service en tant que Windows Azure. Il a été renommé Microsoft Azure en 2014 [5].
Les services de la catégorie SaaS incluent Azure Cognitive Services et Azure IoT Suite. De
plus, Microsoft offre d’autres services SaaS qui sont disponibles séparément du Cloud Azure tels
que Office 365 qui est la version Cloud de la suite Microsoft Office traditionnelle avec quelques
services supplémentaires comme Outlook, Skype et OneDrive, ainsi que SharePoint Online et
Exchange Online, etc. Les services entrant dans la catégorie IaaS incluent Azure Virtual Ma-
chines, Azure Virtual Networks et Azure Containers. La catégorie PaaS incluent les services
suivant Azure App Service, Azure SQL Databases et Azure Redis Cache.
1.8.3 Google
Google propose une vaste collection d’applications Web en tant que services Cloud. Ac-
tuellement Google divise ses services Cloud dans les catégories suivantes : Calcul, Stockage,
Réseau, Base de données, Services et Gestion [5].
L’offre infrastructure en tant que service (IaaS) de Google comprend deux services populaires
Google Compute Engine et Google Cloud Storage. En outre, Google offre une plateforme pour
les développeurs qui s’appelle Google App Engine (GAE). Elle propose également un certain
nombre de services de base de données dans le cadre de leur offre Cloud (Cloud SQL, Cloud
Datastore). Google propose aussi un large éventail d’applications très populaires destinées au
grand public, livrées en mode SaaS. Parmi les nombreux services proposés, le traitement de texte
basé sur le Cloud (Google Docs), le service de messagerie (Gmail) et le service de calendrier
(Google Agenda). Ces services sont proposé sous « GSuite » et sont communément appelés «
Google Apps » [5].
15
Chapitre 1. Cloud Computing : Concepts Fondamentaux
1.9 Conclusion
Dans cette partie, nous avons fourni une base théorique sur le Cloud Computing. Nous avons
vu qu’il est considéré comme une nouvelle façon de livraison des services et ressources informa-
tiques. Le Cloud a non seulement modifié le fonctionnement des entreprises, mais il a également
ébranlé la structure traditionnelle du service informatique. Il offre beaucoup de flexibilité par
rapport au modèle informatique traditionnel et grâce à ses avantages en matière de flexibilité et
de réduction des coûts, il a rencontré un fort succès et est utilisé par de nombreux acteurs très
divers parce qu’il répond à leurs exigences informatiques fondamentales.
Dans le prochain chapitre nous allons introduire la notion de virtualisation qui est un élément
fondamental dans le Cloud Computing.
16
Chapitre 2
Virtualisation
Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Définition de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Types d’hyperviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Hyperviseur de type 1 « Bare-metal » . . . . . . . . . . . . . . . . . 19
2.3.2 Hyperviseur de type 2 « hosted » . . . . . . . . . . . . . . . . . . . . 19
2.4 Techniques de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1 Virtualisation complète . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2 Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.3 Virtualisation matérielle assistée . . . . . . . . . . . . . . . . . . . . 21
2.5 Types de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.1 Virtualisation d’applications . . . . . . . . . . . . . . . . . . . . . . 21
2.5.2 Virtualisation du poste de travail . . . . . . . . . . . . . . . . . . . . 22
2.5.3 Virtualisation de serveurs . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.4 Virtualisation du stockage . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.5 Virtualisation du réseau . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6 Networking avec VMware . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.1 Commutateur virtuel VMware . . . . . . . . . . . . . . . . . . . . . 25
2.6.2 Création d’un commutateur standard virtuel . . . . . . . . . . . . . . 26
2.7 Avantages de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8 Inconvénients de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . 29
2.9 Émulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.10 Virtualisation et le Cloud Computing . . . . . . . . . . . . . . . . . . . . 31
2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
17
Chapitre 2. Virtualisation
2.1 Introduction
Les premiers serveurs n’étaient pas conçus pour exécuter plusieurs programmes à la fois
selon l’ancien modèle « un serveur, une application ». Cette approche a remplis les centres de
données de systèmes sous-utilisés qui ne font exploiter que peu de leurs capacités, mais consom-
mant de l’énergie et générant de la chaleur 24h/7j. De plus, les administrateurs informatiques
passent trop de temps à gérer les serveurs. Par contre, après l’avènement de la virtualisation,
il n’est plus nécessaire d’utiliser un serveur par application. La virtualisation est une techno-
logie passionnante qui a changé le monde de la conception de systèmes informatiques. Elle a
non seulement perturbé le nombre de serveurs acquis, mais aussi la façon dont les serveurs sont
conçus. La virtualisation fonctionne en insérant une fine couche logicielle (appelé un hypervi-
seur) directement sur le matériel informatique ou sur un système d’exploitation hôte, elle permet
à plusieurs systèmes d’exploitation de fonctionner en même temps sur un seul ordinateur phy-
sique et de se partager les ressources matérielles.
D’autre part, la virtualisation a rendu possible de nombreuses fonctionnalités essentielles
du Cloud Computing en terme de l’agilité et de flexibilité. Comme la virtualisation est deve-
nue un ingrédient essentiel du Cloud Computing, il est important de comprendre les concepts
de la virtualisation et les techniques sous-jacentes nécessaires pour virtualiser les ressources
informatiques physiques.
2.2 Définition de la virtualisation
La virtualisation est une technique qui fournit une couche d’abstraction au-dessus du matériel
ou du logiciel sous-jacent et permet aux utilisateurs de diviser les ressources informatiques en
plusieurs environnements d’exécution isolés. L’objectif principal de la virtualisation est de faire
fonctionner plusieurs systèmes d’exploitation ou applications sur le même serveur physique. La
virtualisation est réalisé par un logiciel appelé moniteur de machine virtuelle (VMM) , également
connu sous le nom d’hyperviseur. Ce dernier s’exécute directement sur le matériel informatique
ou sur un système d’exploitation hôte pour gérer et allouer les ressources requises [9].
2.3 Types d’hyperviseur
L’hyperviseur est un outil de virtualisation qui permet à plusieurs systèmes d’exploitation
de travailler sur une même machine physique en même temps. Les hyperviseurs sont classés en
deux catégories :
18
Chapitre 2. Virtualisation
2.3.1 Hyperviseur de type 1 « Bare-metal »
Un hyperviseur de type 1 appelé aussi hyperviseur natif, est un logiciel qui s’exécute directe-
ment sur un serveur hôte physique. Il s’agit de la première couche sur les ressources matérielles
du serveur, qui permet de contrôler directement ces dernières et gère les systèmes d’exploita-
tion invités. L’hyperviseur de type 1 partitionne le serveur en plusieurs machines virtuelles qui
fonctionnent indépendamment mais partagent les mêmes ressources physiques. Toutefois, il est
possible d’exécuter uniquement un hyperviseur à la fois sur un serveur.
Le serveur ESXi de VMware, Hyper-V de Microsoft et XenServer de Citrix sont des exemples
d’hyperviseurs bare-metal.
Figure 2.1 – Hyperviseur de type 1
2.3.2 Hyperviseur de type 2 « hosted »
Un hyperviseur de type 2 appelé aussi hyperviseur hébergé, est une application de virtualisa-
tion qui s’installe et s’exécute par-dessus un système d’exploitation (hôte) existant. Donc, ici le
système d’exploitation hôte fonctionne comme la première couche de logiciel sur les ressources
physiques. L’hyperviseur est la deuxième couche de logiciel et les systèmes d’exploitation in-
vités fonctionnent comme la troisième couche de logiciel. Dans cette approche, l’hyperviseur
utilise les services fournis par le système d’exploitation hôte pour gérer de la mémoire et l’or-
donnancement des machines virtuelles. Les systèmes d’exploitation invités n’ont pas conscience
d’être virtualisés. Ces derniers croient dialoguer directement avec ledit matériel.
Des produits tels que VMware Workstation, Microsoft Virtual PC et VirtualBox sont les
exemples les plus courants d’hyperviseurs de type 2.
19
Chapitre 2. Virtualisation
Figure 2.2 – Hyperviseur de type 2
2.4 Techniques de virtualisation
2.4.1 Virtualisation complète
La virtualisation complète permet d’exécuter tout système d’exploitation sans modifier le
système d’exploitation de l’hôte. Cette approche donne l’illusion d’un système complet de pé-
riphériques matériels réels où la couche de virtualisation se comporte comme un émulateur du
matériel. L’hyperviseur simule donc les pilotes (drivers) des différents périphériques (cartes ré-
seau, disque SATA, processeur, etc.). La couche de virtualisation va faire croire aux systèmes
d’exploitation invités qu’ils sont présents sur la machine physique. En effet, les systèmes d’ex-
ploitation invités supposent qu’ils s’exécutent sur des ressources physiques réelles et ne sont
pas conscients qu’ils ont été virtualisés. Cela permet aux versions non modifiées des systèmes
d’exploitation disponibles (comme Windows, Linux et autres) de s’exécuter en tant que système
d’exploitation invité sur l’hyperviseur. Dans ce modèle, l’hyperviseur est responsable de gérer
toutes les demandes des systèmes d’exploitation invités vers le matériel pendant l’exécution des
machines invitées [5].
2.4.2 Para-virtualisation
La paravirtualisation fait référence à la communication entre le système d’exploitation invité
et l’hyperviseur. La paravirtualisation implique également de modifier le noyau du système d’ex-
ploitation invité pour remplacer les instructions non-virtualisables par des hyper-appels « hyper-
calls » qui communiquent directement avec l’hyperviseur de la couche de virtualisation [10]. En
effet, lors de l’exécution du système d’exploitation invité, l’hyperviseur capture les hyper-appels
de l’invité et les transmet au matériel. L’hyperviseur gère l’interface qui va permettre à plusieurs
systèmes d’exploitation invités d’accéder de manière concurrente aux ressources. Ici, le système
d’exploitation invité est conscient qu’il est virtualisé.
20
Chapitre 2. Virtualisation
Le meilleur exemple connu d’hyperviseur de paravirtualisation est le projet Xen open-source
qui utilise un noyau Linux personnalisé.
2.4.3 Virtualisation matérielle assistée
La virtualisation matérielle assistée n’est qu’une amélioration de la virtualisation complète,
Elle permet de résoudre le problème de consommation des ressources en ajoutant des exten-
sions processeur de virtualisation tels que AMD-V et Intel VT. Cette technique a été ajoutée aux
processeurs x86 en 2006. Le matériel du serveur est compatible avec la virtualisation. La tech-
nologie AMD-Virtualization (AMD-V) et Intel Virtualization Technology (Intel-VT) permettent
à certains appels de CPU privilégiés du système d’exploitation invité d’être directement gérés
par le CPU. Ces appels ne nécessitent pas d’être traduits par les hyperviseurs. Ceci élimine le
besoin de traduction binaire ou de para-virtualisation. De nombreux hyperviseurs natifs utilisent
cette technologie. Les hyperviseurs comme Xen, Microsoft Hyper-V ou VMware ESXi Server
peuvent tirer parti des avantages de la virtualisation assistée par matériel [5].
2.5 Types de virtualisation
Bien qu’initialement destiné à la virtualisation des serveurs, le concept de virtualisation s’est
propagé aux applications, aux réseaux, aux stockages et aux postes de travail. Chacun de ces
types de virtualisation a des caractéristiques différentes, en fonction notamment des couches
virtualisées. Dans ce qui suit, nous détaillons davantage chaque type.
2.5.1 Virtualisation d’applications
La virtualisation d’application permet de dissocier l’application du système d’exploitation
hôte et des autres applications présentes. La virtualisation d’application encapsule les fichiers,
les clés de registre et autres configurations d’une application individuelle dans une structure
représentée sous forme d’une « bulle » qui peut être facilement installée dans les ordinateurs,
supprimée des ordinateurs et mise à jour si nécessaire. Les configurations de cette bulle peuvent
utiliser les ressources de l’OS pour fonctionner elles-mêmes. De même, l’utilisateur peut inter-
agir avec l’application dans la bulle pour exécuter un travail utile. En encapsulant les applications
de cette manière, leur installation n’influence pas la configuration du système hôte [11]. Les ap-
ports fonctionnels de la virtualisation d’applications sont l’élimination des conflits entre appli-
catifs, la récupération rapide des applications en dysfonctionnement et la diminution importante
de la durée des phases de test avant le déploiement. Elle garantit ainsi le bon fonctionnement des
applications dans des environnements hétérogènes et peu maitrisés. Les logiciels de virtualisa-
tion d’applications les plus connus sont ThinApp de VMware, XenApp de Citrix ou App-V de
Microsoft.
21
Chapitre 2. Virtualisation
2.5.2 Virtualisation du poste de travail
La virtualisation des postes de travail est définie comme une technologie de virtualisation
utilisée pour séparer un environnement de bureau d’ordinateur de l’ordinateur physique. La vir-
tualisation des postes de travail est considérée comme un type de modèle informatique client-
serveur car le poste de travail virtualisé est stocké sur un serveur centralisé ou distant et est
accessible par une connexion à distance (déport d’écran). Les utilisateurs interagissent avec un
bureau virtuel de la même manière qu’un bureau physique est accédé et utilisé [12]. Avec la vir-
tualisation des postes de travail côté serveur, les données sont toujours conservées car le bureau
virtuel n’a pas été affecté par la panne matérielle. En fait, les données ne quittent plus le centre
de données, de sorte que le risque qu’un périphérique perdu ou volé provoquant des problèmes
de sécurité est également réduit [13]. VMware View, Citrix Xendesktop sont parmi les solutions
de virtualisation des postes de travail.
2.5.3 Virtualisation de serveurs
La virtualisation des serveurs signifie qu’au lieu de charger un seul système d’exploitation
sur un serveur physique, ce dernier sera divisé en plusieurs serveurs logiques ou virtuels [14].
Chacun de ces serveurs virtuels peut exécuter son propre système d’exploitation et ses propres
applications et fonctionner comme s’il s’agissait d’un serveur individuel. Avec la virtualisation
des serveurs, il est possible d’intégrer différents serveurs de façon plus flexible pour faciliter
leur utilisation. La virtualisation des serveurs présente de nombreux avantages, notamment une
optimisation d’utilisation des ressources matérielles grâce à la consolidation des serveurs, une
diminution des frais immobiliers et des besoins en alimentation et en ventilation, en réduisant le
nombre de serveurs. Ainsi, elle assure une disponibilité accrue des applications et une amélio-
ration de la continuité d’activité grâce à la redondance (au cas où un serveur tombe en panne,
un autre serveur exécutant la même application peut prendre sa place).
2.5.4 Virtualisation du stockage
Dans le système informatique traditionnel, les stockages ont toujours été directement liés aux
serveurs physiques. Avec la virtualisation du stockage, ce concept a été modifié. Désormais, les
systèmes de stockage virtualisés sont liés à des serveurs et les systèmes de stockage réels (phy-
siques) restent cachés. Comme d’autres ressources informatiques, la virtualisation du stockage
se fait également à travers une couche de logiciel qui crée une abstraction logique de la mise en
commun de périphériques de stockage physiques reliés entre eux par le réseau. Les données sto-
ckées dans des périphériques de stockage logiques (virtualisés) sont stockées dans des disques
de stockage physiques. L’avènement des réseaux de stockage (SAN) a facilité la mutualisation
(et donc la virtualisation) des systèmes de stockage physique [5].
L’avantage de la virtualisation du stockage est l’utilisation accrue de la capacité disponible,
réduisant ainsi l’espace de stockage gaspillé. Avec le stockage virtualisé, les migrations de don-
22
Chapitre 2. Virtualisation
nées peuvent être transparentes et même automatisées. En changeant simplement le schéma
de mappage, la virtualisation peut déplacer l’emplacement des données sans perturber les E/S
disque, ce qui permet un mouvement de données efficace et non perturbateur [12].
Il existe de nombreux systèmes de stockage Cloud virtualisés commerciaux disponibles sur
le marché. Tels que Google Cloud Storage, Azure Storage de Microsoft, Simple Storage System
(S3) et Elastic Block Store (Amazon EBS) d’Amazon.
2.5.5 Virtualisation du réseau
La virtualisation du réseau consiste à combiner les ressources réseau et les fonctionnalités
réseau en une seule entité administrative logicielle appelée réseau virtuel [5]. La virtualisation
du réseau permet à plusieurs réseaux virtuels hétérogènes de coexister simultanément sur une
seule infrastructure partagée. L’objectif de la virtualisation du réseau est d’optimiser la vitesse, la
fiabilité, la flexibilité, l’évolutivité et la sécurité du réseau. La virtualisation du réseau est parti-
culièrement efficace dans les réseaux qui subissent des augmentations soudaines, importantes et
imprévues de l’utilisation [12]. Il y a deux formes courantes de virtualisation du réseau, Réseau
virtuel basé sur un périphérique virtuel et Réseau virtuel basé sur le protocole.
2.5.5.1 Réseau virtuel basé sur un périphérique virtuel
Un réseau virtuel est constitué d’une ou de plusieurs machines virtuelles pouvant envoyer et
recevoir des données les unes des autres. Chaque machine virtuelle représente un seul ordinateur
dans le réseau et réside sur un seul hôte. Une machine virtuelle peut être configurée avec une
ou plusieurs cartes d’interface réseau virtuelles, ou NIC virtuelles (VNIC), qui représentent une
connexion à un réseau. Cependant, ces cartes NIC virtuelles ne sont pas forcément identiques ni
en type ni en nombre aux cartes physiques et ils ne se connectent pas aux cartes NIC physiques
du système hôte. L’hyperviseur prend en charge la création d’un réseau virtuel qui connecte les
cartes réseau virtuelles à un réseau composé de commutateurs virtuels. C’est ce réseau virtuel
auquel les cartes réseau physiques se connectent [13].
Un commutateur virtuel est un logiciel intégré à l’hyperviseur qui se comporte comme un
commutateur matériel. Ce logiciel permet aux machines virtuelles (VM) de s’intégrer au réseau
avec d’avantage de souplesse, notamment sans se soucier du nombre de cartes physiques.
La figure ci-dessous montre un schéma d’un réseau virtuel simple à l’intérieur d’un hôte
VMware vSphere. Le commutateur virtuel (vSwitch 1) est connecté à une carte réseau physique,
qui est connecté au réseau physique externe. L’autre commutateur virtuel (vSwitch 2) n’a aucune
connexion à une carte réseau ou à un port de communication physique. La machine virtuelle
(VM 1) a deux cartes réseau virtuelles, une connectée à chaque commutateur virtuel et, par
extension, à chacun des réseaux virtuels. Les demandes via la carte réseau virtuelle connectée
23
Chapitre 2. Virtualisation
au commutateur virtuel externe seront transmises par le biais de la carte réseau physique de
l’hôte physique au réseau physique et au monde extérieur. Les demandes via le commutateur
virtuel interne n’ont aucun chemin vers le monde extérieur et peuvent uniquement aller vers
d’autres machines virtuelles connectées au commutateur virtuel interne. La machine virtuelle
(VM 2) peut effectuer des demandes uniquement via le commutateur virtuel interne et ne peut
donc communiquer qu’avec l’autre machine virtuelle (selon le schéma).
Figure 2.3 – Concept du réseau virtuel dans un hôte VMware
Un avantage de la communication machine virtuelle à machine virtuelle utilisant un com-
mutateur interne est que le trafic ne quitte jamais l’hôte physique et se déroule entièrement en
mémoire. Cela le rend très rapide, beaucoup plus rapide que si les données quittaient l’hôte et
parcouraient le réseau physique, même s’il s’agissait d’un hôte physiquement adjacent dans le
centre de données [13].
2.5.5.2 Réseau virtuel basé sur le protocole
Cette approche crée un réseau de zone virtuelle, plutôt que de virtualiser les périphériques.
Le réseau local virtuel (VLAN) et le réseau privé virtuel (VPN) sont des exemples de telles
virtualisations.
Réseau local virtuel (VLAN – Virtual Local Area Network)
Un VLAN permet de diviser logiquement un réseau local en plusieurs réseaux virtuels. Les
hôtes dans un même VLAN communiquent entre eux si elles sont sur le même réseau local,
quel que soit l’emplacement physique. Il permet de créer des domaines de diffusion gérés logi-
quement sans se soucier de l’emplacement de ses hôtes. Plusieurs VLANs peuvent coexister sur
un même commutateur réseau et ils peuvent être locaux à un commutateur ou s’étendre sur un
ensemble de commutateurs reliés entre eux. L’objectif est de contourner les limitations de l’ar-
chitecture physique. Ceci conduit à l’amélioration de la gestion du réseau et de l’optimisation de
24
Chapitre 2. Virtualisation
la bande passante tout en séparant les flux de chaque ensemble d’hôtes. Chaque trame possède
un identifiant du VLAN dans l’en-tête de contrôle d’accès au support (Media Access Control,
(MAC)) [15].
Réseau privé virtuel (VPN – Virtual Private Network)
Un réseau privé virtuel (Virtual Private Network (VPN)), est une technologie utilisée pour
connecter en toute sécurité deux réseaux physiques géographiquement distants. Elle permet de
créer une liaison virtuelle, sur un réseau public comme Internet, entre des ordinateurs distants.
Cette technologie repose sur un protocole de tunneling qui permet de faire circuler les informa-
tions de façon cryptée d’un bout à l’autre du tunnel. Son objectif est de masquer la distance entre
deux ou plusieurs sites. Les VPNs ne sont pas conçus pour créer plusieurs réseaux virtuels sur
une même infrastructure physique [15].
2.6 Networking avec VMware
Les réseaux dans l’environnement virtuel connectent les machines virtuelles entre elles et
au réseau physique à l’extérieur du centre de données virtuel.
2.6.1 Commutateur virtuel VMware
VMware vSphere comporte un ensemble d’éléments réseau qui permet de mettre en réseau
les machines virtuelles dans le centre de données comme dans un environnement physique. VM-
ware utilise un composant appelé commutateur standard ou vSwitch pour le support réseau. Ce
commutateur d’origine logicielle est intégré dans l’hyperviseur qui assure un support réseau aux
machines virtuelles.
Le commutateur standard vSphere fonctionne de la même manière qu’un commutateur
Ethernet physique. Il détecte les machines virtuelles qui sont logiquement connectées à chacun
de ses ports virtuels et utilise ces informations pour acheminer le trafic aux machines virtuelles
appropriées. Un commutateur standard vSphere peut être connecté à des commutateurs phy-
siques à l’aide d’adaptateurs Ethernet physiques, aussi appelés cartes de liaison montante (ou
uplink), afin de joindre des réseaux virtuels à des réseaux physiques. Ce type de connexion est
semblable à une connexion de commutateurs physiques entre eux visant à créer un réseau plus
grand. Même si un commutateur standard vSphere fonctionne de façon similaire à un commuta-
teur physique, il ne dispose pas de certaines fonctionnalités avancées d’un commutateur physique
[16].
25
Chapitre 2. Virtualisation
2.6.2 Création d’un commutateur standard virtuel
1. Il faut tout d’abord choisir l’hôte ESXi sur lequel nous voulons créer le commutateur
virtuel, et nous allons dans la partie Configuration de celui-ci.
2. Puis, dans Matériel, cliquons sur Mise en réseau. L’interface mise en réseau affiche
l’ensemble de réseaux virtuels, connectés par des commutateurs virtuels.
Figure 2.4 – Interface mise en réseau
3. Cliquons sur Ajouter une mise en réseau en haut à droite de la page (figure 2.4).
L’assistant Ajouter assistant réseau s’ouvre
4. Sélectionnons maintenant le type de connexion pour lequel le nouveau commutateur stan-
dard sera utilisé. Sélectionnons le type de connexion Machine virtuelle et cliquons sur
Suivant.
Figure 2.5 – Choix de type de connexion
26
Chapitre 2. Virtualisation
5. Sélectionnons sur quel commutateur virtuel ce réseau virtuel doit être connecté. Soit un
commutateur virtuel existant ou un nouveau commutateur virtuel.
Figure 2.6 – Choix de commutateur virtuel
6. Entrons l’étiquette réseau pour le groupe de ports ou accepter l’étiquette générée. Et
définissons l’ID VLAN pour configurer le traitement VLAN dans le groupe de ports (0
indique qu’il n’est pas associé à un VLAN).
Figure 2.7 – Spécification des paramètres de connexion
27
Chapitre 2. Virtualisation
7. Sur la page Prêt à terminer, cliquons sur Terminer.
Figure 2.8 – La page prêt à terminer
8. Voici le résumé de la configuration terminée.
Figure 2.9 – Le nouveau commutateur virtuel créé
2.7 Avantages de la virtualisation
La virtualisation offre de nombreux avantages aux consommateurs. Cette section traite des
avantages opérationnels et financiers de la virtualisation de l’infrastructure informatique [5].
— Meilleure utilisation des ressources existantes : les ressources informatiques physiques
sont devenues avancées et puissantes avec le temps. En informatique traditionnelle, une
instance de machine fonctionne sur un serveur physique qui utilise à peine toute la puis-
sance du système. Ainsi, la majeure partie de la puissance de traitement reste simplement
inutilisée pour la plupart des systèmes informatiques. L’exécution de plusieurs machines
virtuelles sur un serveur physique permet une meilleure utilisation des ressources, ce qui
est appelé consolidation de serveur.
— Réduction des coûts de l’infrastructure informatique : la virtualisation des ressources
réduit l’investissement pour le matériel informatique, cela réduit à son tour de nombreux
autres actifs associés, tels que l’espace physique, les besoins en énergie, le système de
refroidissement et les ressources humaines pour administrer les systèmes. Les augmenta-
tions du nombre de machines virtuelles sur les ressources physiques existantes n’ajoutent
aucune de ces charges.
28
Chapitre 2. Virtualisation
— Amélioration de la tolérance aux pannes ou de la maintenance sans interruption :
le découplage des machines virtuelles des ressources matérielles spécifiques augmente
la portabilité du système. En cas de défaillance matérielle, le système virtuel peut être
migré vers une autre configuration physique. Cela permet de créer un système tolérant
aux pannes en créant une portée pour une maintenance sans interruption.
— Administration simplifiée du système : la virtualisation segmente la gestion des sys-
tèmes en deux groupes : la gestion des ressources physiques et la gestion du système
virtuel. Un logiciel de surveillance centralisé peut être utilisé pour suivre la santé des
systèmes et déclencher une alerte en cas de besoin. Comme la gestion des ressources
informatiques virtuelles est moins critique que la ressource physique et qu’il y a moins
de machines physiques, les tâches d’administration du système deviennent plus faciles.
— Installation simplifiée du système : l’installation d’un nouveau système est devenue
plus simple et plus économique dans l’environnement virtuel. Un nouveau système peut
être installé presque en peu de temps en clonant une instance de machine virtuelle. Une
nouvelle installation est beaucoup plus facile que l’installation physique de la machine.
— Prise en charge des systèmes et applications anciennes : la virtualisation permet l’exé-
cution et la cohabitation de plusieurs serveurs bien distincts sur une même machine.
Ainsi, des applications métiers développées en interne ne s’exécutant que sur un ancien
OS (comme NT4 par exemple) peuvent être conservées sans garder les contraintes liées
à l’ancien serveur physique.
— Tests de système et d’application simplifiés : les tests de performances des logiciels
avant leur publication sont des tâches rigoureuses et nécessitent de tester le logiciel sur
toutes les plates-formes prises en charge. La virtualisation facilite ce processus en élimi-
nant une grande partie du temps et des efforts requis pour l’installation et la configuration
du système. Le test d’application ou de logiciel système est l’un des principaux bénéfi-
ciaires de la virtualisation.
— Sécurité : la virtualisation ajoute une couche d’abstraction sur le matériel physique. Les
machines virtuelles ne peuvent plus accéder directement aux ressources physiques. Cela
peut limiter la quantité de destruction pouvant survenir lorsque des logiciels malveillants
tentent d’endommager le système ou de corrompre des données. Par exemple, si un disque
dur virtuel entier est endommagé ou corrompu, le disque physique réel reste inchangé.
2.8 Inconvénients de la virtualisation
Bien qu’elle soit très avantageuse, la virtualisation présente quelques inconvénients :
— Les coûts de licence : le premier inconvénient de la virtualisation est le coût en termes
de licence. En effet, une architecture complète VMware pour deux processeurs, revient
à environ 5 000 BC auquel s’ajoute 3 000 BC par lot de deux processeurs. Il est donc in-
déniable que pour rentabiliser ce coût, l’infrastructure doit être déployée sur une grande
29
Chapitre 2. Virtualisation
échelle. Il existe aujourd’hui des technologies similaires à VMware dans le domaine de
l’open source (Xen) mais qui sont beaucoup plus complexe à mettre en œuvre demandant
des compétences spécifiques. Le coût de ces compétences sera du coup largement supé-
rieur aux coûts de Licensing des produits VMware. Les produits Microsoft sont aussi
une alternative à VMware mais nécessite une licence pour le système hôte [17].
— Problème de point unique de défaillance : la consolidation de charge de travail de
différents serveurs sur une seule machine physique augmente la probabilité de défaillance
d’un certain nombre de serveurs virtuels en cas de défaillance de cette machine physique.
Si la machine qui héberge tous les OS s’arrête ou si la montée en charge d’une application
est flagrante, la situation peut vite tourner au cauchemar.
— Localisation des origines des pannes : la virtualisation masque souvent l’origine des
pannes, notamment grâce aux fonctionnalités automatiques de répartition de charge, qui
rendent les pannes quasiment invisibles, puisque le système continue de fonctionner quoi-
qu’il arrive. Mais si une panne plus importante survient, il devient alors très difficile pour
l’administrateur de la localiser.
— Problème de performances inférieures : la virtualisation peut entraîner une baisse de
la productivité des utilisateurs si les serveurs virtuels ne fonctionnent pas comme avant
la virtualisation. Pour éviter cette situation, il est important de bien planifier et tester la
capacité en virtualisant le serveur dans un environnement de laboratoire isolé [12].
— Évolution du matériel : la virtualisation de serveurs implique aussi une refonte du parc
matériel. En effet, elle va impliquer une augmentation conséquente de la puissance des
machines physiques hôte. En prenant le cas de la mémoire vive des machines. La mé-
moire, au lieu d’être répartie sur chaque machine se verra donc rassembler sur une seule
machine physique (le serveur hôte) [17].
2.9 Émulation
L’émulation est une imitation du comportement d’un matériel par un logiciel. Elle fait ré-
férence à la capacité de rendre un système ayant une certaine architecture capable de supporter
l’ensemble d’instructions d’une autre architecture de machine. Grâce à l’émulation, il est pos-
sible d’imiter le fonctionnement du système X (architecture X) sur le système Y (architecture Y)
et ensuite le logiciel à exécuter sur le système Y. Le logiciel d’émulation convertit les données
binaires écrites pour l’exécution sur une machine en une forme binaire équivalente pouvant être
exécutée sur une autre machine.
Les termes virtualisation basée sur l’émulation et la virtualisation simple de machine créent
parfois une confusion. En émulation, les ensembles d’instructions du système virtuel (présentés
devant les utilisateurs) et le système physique réel ne sont pas identiques. Par conséquent, les
demandes de service reçues par la machine virtuelle peuvent uniquement être transmises au
30
Chapitre 2. Virtualisation
système physique sous-jacent après la traduction des jeux d’instructions (une architecture vers
une autre architecture). Par contre en virtualisation simple, le jeu d’instructions utilisé par le
système virtuel et le système matériel réel est identique. Par conséquent, la machine virtuelle
transmet simplement les demandes de service au système physique réel. Ici, les traductions des
jeux d’instructions ne sont pas nécessaires. Sans la couche de traduction, les performances d’une
machine virtuelle sont beaucoup plus rapides et approchent de la vitesse native.
2.10 Virtualisation et le Cloud Computing
« La virtualisation est un outil, le Cloud Computing est un modèle d’affaire. »
—Joe Baguley, Chief Cloud Technologist, VMware
La virtualisation et le Cloud Computing sont deux concepts différents. La virtualisation est
une technologie permettant de créer plusieurs environnements simulés à partir d’un seul sys-
tème physique alors que le Cloud Computing fait référence à un modèle d’affaire permettant
d’orchestrer facilement la gestion des ressources virtuelles et de transformer la délivrance de ces
ressources en un service, facturable à la consommation. Tous deux permettent de maximiser les
ressources informatiques et donc, de réduire les coûts et d’augmenter l’agilité de l’entreprise.
Le Cloud Computing présente de multiples aspects et s’appuie sur la virtualisation pour parti-
tionner les ressources disponibles et les partager entre les utilisateurs, parce que le Cloud consiste
à délivrer des services disponibles dans un catalogue, et il fonctionne en instanciant et en com-
binant de multiples ressources, qui seront des serveurs, des réseaux, des bases de données, en un
pool de ressources. Des pools de ressources sont créés dans les centres de données et une couche
d’abstraction est créée sur les pools de différents types de ressources physiques à l’aide de la vir-
tualisation. Les consommateurs de services Cloud peuvent par la suite uniquement accéder aux
ressources informatiques virtuelles du centre de données.
2.11 Conclusion
Au niveau de ce chapitre nous avons clarifié le concept de la virtualisation en mettant en relief
sa définition, ses différentes techniques et types, et nous avons pu voir que la virtualisation n’est
pas limité aux serveurs cependant elle s’est répandu pour couvrir plusieurs domaines tels que
les systèmes de stockage et les réseaux. Nous avons ainsi recensé ses avantages et inconvénients,
mais les effets positifs de la virtualisation l’emportent largement sur les effets négatifs. Ensuite,
nous avons montré que la virtualisation et le Cloud Computing ne sont pas interchangeable, mais
ils peuvent être combinés en raison que le Cloud utilise les capacités de la virtualisation en terme
de flexibilité et l’agilité pour fournir ses services.
Dans le chapitre suivant nous décrirons la problématique de ce travail et nous discuterons la
conception et l’implémentation de la solution proposée.
31
Chapitre 3
Conception et implémentation
Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.1 Description de la problématique . . . . . . . . . . . . . . . . . . . . 33
3.2.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3.1 Environnement d’expérimentation . . . . . . . . . . . . . . . . . . . 45
3.3.2 Spécifications techniques . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.3 Explication des lignes de codes des méthodes utilisées . . . . . . . . 50
3.3.4 Scénarios d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
32
Chapitre 3. Conception et implémentation
3.1 Introduction
Dans ce chapitre nous présentons la problématique relative à l’approvisionnement des res-
sources informatiques pour les utilisateurs dans un Cloud privé interne. À cet effet, nous avons
réalisé un service qui permet aux utilisateurs de consommer les ressources sans pour autant
devoir faire une demande d’intervention auprès de l’administrateur (ou l’équipe IT). En particu-
lier, l’objectif de ce travail est de fournir un portail en libre-service de mise en place d’un réseau
virtuel et ceci par rapport à la topologie choisie par l’utilisateur.
Ce chapitre est divisé en deux grandes sections. La première section représente la concep-
tion de notre service qui constitue une étape fondamentale qui précède l’implémentation, et à
travers laquelle nous essayons d’analyser l’activité globale du service proposé en utilisant un
diagramme de cas d’utilisation, un diagramme de séquence et un diagramme de classes. La
deuxième section représente l’implémentation où nous allons traduire la conception par un lan-
gage de programmation afin d’aboutir à une automatisation des besoins tels qu’ils seront définis
dans la partie spécification.
3.2 Conception
La phase de conception se voit parmi les phases les plus importantes dans la résolution d’un
problème donné. Cette étape va nous permettre de décortiquer avec précision l’architecture de
notre service, ce qui va nous faciliter par la suite sa construction.
3.2.1 Description de la problématique
Le Cloud Computing offre une variété de ressources, tels que le stockage, le calcul (les ma-
chines virtuelles) et le réseau (les commutateurs virtuels, les liens virtuels, les routeurs virtuels
et les cartes réseaux virtuels, etc.). Ainsi, le Cloud Computing doit offrir la possibilité d’avoir un
accès rapide simple, automatique et dynamique à ces ressources informatiques pour une durée
flexible et avec des exigences variables.
Auparavant les utilisateurs (enseignants, étudiants) ayant accès au Cloud privé du laboratoire
LIO de l’université d’Oran 1 Ahmed Ben Bella, devraient demander à l’administrateur de leur
provisionner des ressources afin de remplir leurs besoins pour supporter la charge de travail
de leurs applications. Par conséquence, l’administrateur met du temps pour répondre à leurs
demandes.
Pour remédier à cela, Bensalah [18] a conçu un service d’auto-déploiement de ressources
virtuelles de type calcul c’est à dire des machines virtuelles, mais ces dernières étaient indé-
pendantes vis à vis le réseau. Dans le travail actuel, nous allons développer un service d’auto-
déploiement de ressources virtuelles de type réseau et cela par rapport à la topologie choisie
pour gérer au mieux le trafic réseau de machines virtuelles.
33
Chapitre 3. Conception et implémentation
3.2.2 Objectifs
Les objectifs que nous visons sont :
— Fournir un service qui permet de déployer dynamiquement et automatiquement des ré-
seaux virtuels. En particulier les commutateurs virtuels afin de faire communiquer les
machines virtuelles sur le même hôte les unes avec les autres et cela par rapport à la
topologie choisie.
— L’utilisateur sera donc capable de provisionner ses propres ressources informatiques via
un portail en libre-service.
— Réduire la charge du travail de l’administrateur qui n’aura plus besoin d’intervenir pour
installer des machines virtuelles et mettre en place des réseaux virtuels dans chaque hôte.
3.2.3 Modélisation
Dans cette section, nous allons illustrer le fonctionnement et l’utilisation du service d’auto-
déploiement des réseaux virtuels, à l’aide d’une série de diagrammes, en l’occurrence un dia-
gramme de cas d’utilisation, un diagramme de séquence et un diagramme de classe.
3.2.3.1 Diagramme de cas d’utilisation
Un diagramme de cas d’utilisation décrit une séquence d’interactions entre un utilisateur et
un système, sans spécifier l’interface utilisateur. Les cas d’utilisation décrivent les fonctions du
système du point de vue des utilisateurs externes et d’une manière et d’une terminologie qu’ils
comprennent.
1. Description des acteurs
Les acteurs sont des entités externes qui interagissent avec le système. L’acteur initie les
activités du système dans le but d’accomplir une tâche. L’acteur principal de notre
service est l’utilisateur qui est toute personne physique appartenant au département
informatique de l’université d’Oran 1 Ahmed Ben Bella et ayant reçu un compte
d’accès au Cloud privé.
2. Liste des cas d’utilisation de l’utilisateur
— S’identifier
— Créer une topologie (en étoile ou anneau)
— Ajouter de nouveaux switch
— Choisir un switch existant
— Détruire un switch
— Déployer des machines virtuelles
— Sélectionner le système d’exploitation
— Spécifier le nombre de machines virtuelles
34
Chapitre 3. Conception et implémentation
La figure ci-dessous illustre le cas d’utilisation général du service, où le diagramme décrit
les grandes fonctionnalités du service de point de vue de l’acteur.
Figure 3.1 – Diagramme des cas d’utilisation de l’utilisateur
3. Description des cas d’utilisation
Dans ce qui suit, nous donnons une description textuelle de chaque cas d’utilisation afin
d’expliquer et éclaircir le fonctionnement de notre service.
Nous allons produire l’analyse des cas suivant :
— Cas 1 « S’identifier »
— Cas 2 « Créer topologie »
— Cas 3 « Déployer machines virtuelles »
— Cas 4 « Ajouter nouveau(x) switch »
— Cas 5 « Utiliser switch existant »
— Cas 6 « Détruire switch »
35
Chapitre 3. Conception et implémentation
Cas no 1 S’identifier
Acteur(s) Utilisateur
Description L’utilisateur s’identifie pour accéder à la plateforme du Cloud privé
Précondition Tout autorisé avec le nom d’utilisateur et mot de passe
Postcondition Le nom d’utilisateur et le mot de passe sont valides
Scénario nominal
1. L’utilisateur lance le programme vSphere Client.
2. L’utilisateur introduit son nom d’utilisateur et son mot de passe.
3. Le système Cloud vérifie le nom d’utilisateur et le mot de passe.
4. Le système Cloud ouvre l’interface correspondante au profil identifié.
Scénarios alternatifs
3.a. le système Cloud informe l’utilisateur que les informations saisies sont incorrectes.
3.a.1. Le cas d’utilisation reprend au point 2 du scénario nominal
Table 3.1 – Description textuelle du cas d’utilisation « s’identifier »
Cas no 2 Créer topologie
Acteur(s) Utilisateur
Description L’utilisateur crée une topologie selon son choix (topologie en étoile ou en an-
neau)
Précondition La connexion entre le service et le système Cloud est établie
Postcondition La topologie est créée
Scénario nominal
1. L’utilisateur choisit le type de topologie (étoile ou anneau).
2. L’utilisateur donne le nombre de machines virtuelles et choisis leurs SE.
3. L’utilisateur choisit l’ajout d’un nouveau switch et le nomme.
4. Le service envoie la demande d’ajout d’un/des switch au système de Cloud selon la
topologie choisie.
5. Le système Cloud procède à la création de la topologie.
Scénarios alternatifs
3.a. L’utilisateur choisit parmi une liste un/des switch qui existe dans l’inventaire.
3.a.1. Le cas d’utilisation reprend à l’action 5 du scénario nominal
Table 3.2 – Description textuelle du cas d’utilisation « créer topologie »
36
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING
AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING

Contenu connexe

Tendances

Mémoire : Cloud iaas Slim Hannachi
Mémoire :  Cloud iaas Slim HannachiMémoire :  Cloud iaas Slim Hannachi
Mémoire : Cloud iaas Slim Hannachislim Hannachi
 
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...Hajer Dahech
 
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING PRIVÉ BASÉE SUR UN ...
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING  PRIVÉ BASÉE SUR UN ...ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING  PRIVÉ BASÉE SUR UN ...
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING PRIVÉ BASÉE SUR UN ...Borel NZOGANG
 
Conception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRConception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRSkander Driss
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSFaissoilMkavavo
 
Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack Ahmed Slim
 
Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Yaya N'Tyeni Sanogo
 
Rapport nagios miniprojet
Rapport nagios miniprojetRapport nagios miniprojet
Rapport nagios miniprojetAyoub Rouzi
 
Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...Mohammed LAAZIZLI
 
Rapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachRapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachAyoub Mkharbach
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiDonia Hammami
 
Introduction à la technologie Cloud Computing
Introduction à la technologie Cloud ComputingIntroduction à la technologie Cloud Computing
Introduction à la technologie Cloud ComputingRaouia Bouabdallah
 
Application mobile bancaire sous la plateforme Android
Application mobile bancaire sous la plateforme AndroidApplication mobile bancaire sous la plateforme Android
Application mobile bancaire sous la plateforme AndroidKhaled Fayala
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileNader Somrani
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementNassim Bahri
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Addi Ait-Mlouk
 

Tendances (20)

Mémoire : Cloud iaas Slim Hannachi
Mémoire :  Cloud iaas Slim HannachiMémoire :  Cloud iaas Slim Hannachi
Mémoire : Cloud iaas Slim Hannachi
 
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
 
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING PRIVÉ BASÉE SUR UN ...
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING  PRIVÉ BASÉE SUR UN ...ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING  PRIVÉ BASÉE SUR UN ...
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING PRIVÉ BASÉE SUR UN ...
 
Conception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRConception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIR
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack
 
Rapport finiale
Rapport finialeRapport finiale
Rapport finiale
 
Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau
 
Rapport nagios miniprojet
Rapport nagios miniprojetRapport nagios miniprojet
Rapport nagios miniprojet
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
 
La virtualisation
La virtualisationLa virtualisation
La virtualisation
 
Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...
 
projet fin d'étude IWAN
projet fin d'étude IWANprojet fin d'étude IWAN
projet fin d'étude IWAN
 
Rapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachRapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbach
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
Introduction à la technologie Cloud Computing
Introduction à la technologie Cloud ComputingIntroduction à la technologie Cloud Computing
Introduction à la technologie Cloud Computing
 
Application mobile bancaire sous la plateforme Android
Application mobile bancaire sous la plateforme AndroidApplication mobile bancaire sous la plateforme Android
Application mobile bancaire sous la plateforme Android
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobile
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013
 

Similaire à AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING

Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
Rapport simo issam
Rapport simo issamRapport simo issam
Rapport simo issamsimomans
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesHosni Mansour
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Nawres Farhat
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...younes elmorabit
 
Tutoriel : Développement d’une application client à l’aide de Sil...
Tutoriel : Développement d’une application client à l’aide de Sil...Tutoriel : Développement d’une application client à l’aide de Sil...
Tutoriel : Développement d’une application client à l’aide de Sil...Saad Benbouzid
 
Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsUniversité de Rennes 1
 
Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Adem Amen Allah Thabti
 
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauRapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauNicolas Roulleau
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti MohammedMohammed JAITI
 
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Hadjer BENHADJ DJILALI
 
anssi-guide-passerelle_internet_securisee-v3.pdf
anssi-guide-passerelle_internet_securisee-v3.pdfanssi-guide-passerelle_internet_securisee-v3.pdf
anssi-guide-passerelle_internet_securisee-v3.pdfBadr Belhajja
 
Lavorare con java 6
Lavorare con java 6Lavorare con java 6
Lavorare con java 6Pi Libri
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"étudesMohamed Boubaya
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...mouafekmazia
 
Outpatient Department System (OPD)
Outpatient Department System (OPD) Outpatient Department System (OPD)
Outpatient Department System (OPD) Ben Ahmed Zohra
 

Similaire à AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING (20)

Deploy automatic in the cloud
Deploy automatic in the cloudDeploy automatic in the cloud
Deploy automatic in the cloud
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Rapport simo issam
Rapport simo issamRapport simo issam
Rapport simo issam
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'Etudes
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
 
Tutoriel : Développement d’une application client à l’aide de Sil...
Tutoriel : Développement d’une application client à l’aide de Sil...Tutoriel : Développement d’une application client à l’aide de Sil...
Tutoriel : Développement d’une application client à l’aide de Sil...
 
siem.pdf
siem.pdfsiem.pdf
siem.pdf
 
Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objets
 
Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...
 
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauRapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
 
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
 
anssi-guide-passerelle_internet_securisee-v3.pdf
anssi-guide-passerelle_internet_securisee-v3.pdfanssi-guide-passerelle_internet_securisee-v3.pdf
anssi-guide-passerelle_internet_securisee-v3.pdf
 
Lavorare con java 6
Lavorare con java 6Lavorare con java 6
Lavorare con java 6
 
Report Master
Report MasterReport Master
Report Master
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"études
 
White paper azure
White paper azureWhite paper azure
White paper azure
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
 
Outpatient Department System (OPD)
Outpatient Department System (OPD) Outpatient Department System (OPD)
Outpatient Department System (OPD)
 

Dernier

Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Atelier Canopé 37 - Tours
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfAtelier Canopé 37 - Tours
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Majida Antonios, M.Ed.
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAmar LAKEL, PhD
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilfrizzole
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfAtelier Canopé 37 - Tours
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...Unidad de Espiritualidad Eudista
 

Dernier (13)

Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècle
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avril
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
 

AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING

  • 1. Promotion 2017/2018 www.univ-oran.dz ‫قسم‬‫اآللي‬ ‫اإلعالم‬ Département d’Informatique Domaine : Mathématiques & Informatique Spécialité : Réseaux Informatiques et Système d’Information Mémoire de Fin d’Etudes Pour l’Obtention du Diplôme de Master en Informatique Présenté par : KHADIDJA BOUKREDIMI Session Juin 2018 THEME AUTOMATISATION DU DEPLOIEMENT ET DE LA GESTION DES RESEAUX VIRTUELS DANS LE CLOUD COMPUTING Encadré par : Pr B. YAGOUBI Co-encadré par : Mr S. MAKHLOUF Jury Président : Mme F. BELLOUNAR Examinateur : Pr M. GUEZOURI Code Master : 03/2018
  • 2. Dédicaces Ce modeste travail est dédié à : Mes chers parents qui m’ont soutenu et encouragé tout au long de mes années d’études. Qu’Allah vous garde et vous accorde longue vie, santé, bonheur et prospérité. Mes très chères sœurs Amina, Nour El Houda, Fatima et son mari. Mes amis(e) du Club Team Open Minds. À tous mes enseignants qui ont grandement contribué à l’enrichissement de mes connaissances. À tous les membres de la promotion de Master 2 RESIN 2017–2018. À toutes les personnes qui m’ont apporté de l’aide. Sincèrement Khadidja
  • 3. Remerciements J e remercie Allah le tout puissant, le maître des cieux et de la terre, de m’avoir éclairer le chemin et donner le courage et la volonté ainsi que la patience et la force de mener à bien ce travail. Ce travail a été effectué au Laboratoire d’Informatique d’Oran (LIO) dirigé par monsieur le Professeur Bouziane BELDJILALL. Que je tiens à remercier profondément. Je tiens à remercier particulièrement Mr Belabbas YAGOUBI, Professeur à l’université d’Oran 1, Ahmed BEN BELLA, de m’avoir encadrer. Je tiens à exprimer mes vifs remerciements à Mr Sid Ahmed MAKHLOUF, Maître-Assistant à l’université d’Oran 1, Ahmed BEN BELLA, qui m’a co-encadré et m’a fait profiter de son ex- périence et qui a contribué à structurer ce travail par ses corrections, ses conseils et ses critiques. Sa connaissance approfondie m’a permis de mener à bien ce travail. Mes sincères remerciements et respects aux membres du jury qui m’ont honoré en acceptant d’évaluer ce travail. — Je remercie Mme Fatima zohra Bellounar maître de conférences B au département d’in- formatique à l’université d’Oran 1, Ahmed BEN BELLA, qui m’a fait l’honneur d’avoir accepté de présider ce jury. — Je remercie, Mr Mustapha Guezouri, Professeur à l’université d’Oran 1, Ahmed BEN BELLA, d’avoir accepté d’examiner ce travail. Je n’oublie pas non plus nos Enseignants, qui tout au long du cycle d’études à l’Université d’Oran 1, Ahmed BEN BELLA, nous ont transmis leur savoir. Je remercie mes chères amies Nesrine Hanane REKKAB et Fatima YOUCEF qui m’ont ac- cordé de leurs temps pour réviser ce manuscrit, je les remercie également d’avoir pu me soutenir et m’encourager. Je remercie aussi Abdeldjalil FORTAS d’avoir partager avec moi des ressources qui ont été utile à ce travail. Je ne saurai oublier ma famille qui m’a toujours soutenu dans tous mes choix. Vous constituez une grande partie de mes motivations et j’espère toujours vous faire honneur. Un remerciement particulier à mon père et ma mère pour tout l’amour inconditionnel, le soutien et la confiance qu’ils m’ont apporté afin d’affronter ces années de labeur avec une grande confiance. Je leur
  • 4. serai toujours reconnaissante pour tous leurs efforts et leurs sacrifices. Du fond du coeur, merci. Je tiens en dernier lieu à exprimer ma reconnaissance et ma gratitude à toutes les personnes qui ont contribué de près ou de loin à l’aboutissement de ce travail.
  • 5. Résumé Le Cloud Computing est le modèle de business qui permet un accès facile, à la demande aux ressources où les utilisateurs peuvent stocker leurs données dans des centres d’hébergement gé- rés par des entreprises tiers (les fournisseurs de Cloud). L’intérêt principal de cette stratégie pour les utilisateurs réside dans le fait qu’ils ne paient que pour les services effectivement consom- més. Par ailleurs, le Cloud s’appuie sur la virtualisation pour offrir ses services. La virtualisa- tion agit comme une couche d’abstraction en ajoutant une couche de logiciel sur les ressources informatiques physiques pour créer des ressources virtuelles. Cette abstraction donne l’oppor- tunité d’avoir des services plus flexibles, fiables et performants. Ainsi, l’unité d’allocation de ressources dans le Cloud est la machine virtuelle, qui est beaucoup plus facilement déployable et migrable qu’une machine réelle. Le présent travail s’inscrit dans un projet mené l’année précédente et dont le but était de fournir un service de déploiement automatique et dynamique de machines virtuelles. Toutefois, ces machines virtuelles étaient indépendantes vis à vis le réseau. À cet effet, nous avons proposé un service qui a pour objectif d’automatiser le déploiement et la gestion des réseaux virtuels dans le Cloud Computing, afin de gérer au mieux le trafic réseau des machines virtuelles résidant sur le même hôte. Mots clés : Cloud Computing, virtualisation, réseaux virtuels, VMWare vSphere, API VM- ware, JAVA, VMware vSphere SDK Abstract Cloud Computing is the business model that allows easy on-demand access to resources where users can store their data in hosting centers managed by third-party companies (Cloud providers). The main interest of this strategy for users lies in the fact that they only pay for services actually consumed. In addition, Cloud Computing relies on virtualization to offer its services. Virtualization acts as an abstraction layer by adding a layer of software over physical computing resources to create virtual resources. This abstraction makes it easier to offer more flexible, reliable and powerful services. Thus, the unit of resource allocation in the Cloud is the virtual machine, which are much more easily deployable and migrable than real machines. The present work is part of a project carried out the previous year and its aim was to provide a service of automatic and dynamic deployment of virtual machines. However, these virtual machines were independent of the network. For this reason, we have proposed a service that aims to automate the deployment and management of virtual networks in Cloud Computing, in order to better manage the network traffic of virtual machines residing on the same host. Keywords: Cloud Computing, virtualization, virtual networks, VMWare vSphere, VMware API , JAVA, VMware vSphere SDK
  • 6. Table des matières Remerciements Résumé Table des figures I Liste des tableaux III Introduction générale 1 1 Cloud Computing : Concepts Fondamentaux 4 1.1 Intoduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Caractéristiques du Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Modèles de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.1 Cloud Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.2 Cloud privé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.3 Cloud hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4.4 Cloud communautaire . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 Services de Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.1 IaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.2 PaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5.3 SaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6 Avantages et inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6.1 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6.2 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.7 Adoption de Cloud Computing dans les entreprises . . . . . . . . . . . . . . . 13 1.7.1 Le Cloud Computing dans les nouvelles entreprises . . . . . . . . . . . 13 1.7.2 Le Cloud Computing dans les entreprises à infrastructures existantes . . 14 1.8 Exemples de fournisseurs de services Cloud . . . . . . . . . . . . . . . . . . . 14 1.8.1 Amazon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.8.2 Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.8.3 Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
  • 7. Table des matières 2 Virtualisation 17 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Définition de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Types d’hyperviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.1 Hyperviseur de type 1 « Bare-metal » . . . . . . . . . . . . . . . . . . 19 2.3.2 Hyperviseur de type 2 « hosted » . . . . . . . . . . . . . . . . . . . . . 19 2.4 Techniques de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.1 Virtualisation complète . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.2 Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.3 Virtualisation matérielle assistée . . . . . . . . . . . . . . . . . . . . . 21 2.5 Types de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5.1 Virtualisation d’applications . . . . . . . . . . . . . . . . . . . . . . . 21 2.5.2 Virtualisation du poste de travail . . . . . . . . . . . . . . . . . . . . . 22 2.5.3 Virtualisation de serveurs . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.4 Virtualisation du stockage . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.5 Virtualisation du réseau . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.6 Networking avec VMware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6.1 Commutateur virtuel VMware . . . . . . . . . . . . . . . . . . . . . . 25 2.6.2 Création d’un commutateur standard virtuel . . . . . . . . . . . . . . . 26 2.7 Avantages de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.8 Inconvénients de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.9 Émulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.10 Virtualisation et le Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . 31 2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3 Conception et implémentation 32 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2.1 Description de la problématique . . . . . . . . . . . . . . . . . . . . . 33 3.2.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.3.1 Environnement d’expérimentation . . . . . . . . . . . . . . . . . . . . 45 3.3.2 Spécifications techniques . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3.3 Explication des lignes de codes des méthodes utilisées . . . . . . . . . 50 3.3.4 Scénarios d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Conclusion générale et perspective 60 Bibliographie 62
  • 8. Table des figures 1.1 Cloud Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Cloud Privé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3 Cloud Hybride [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4 Cloud Communautaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 Répartition des responsabilités dans le Cloud . . . . . . . . . . . . . . . . . . 11 2.1 Hyperviseur de type 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Hyperviseur de type 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 Concept du réseau virtuel dans un hôte VMware . . . . . . . . . . . . . . . . . 24 2.4 Interface mise en réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.5 Choix de type de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.6 Choix de commutateur virtuel . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.7 Spécification des paramètres de connexion . . . . . . . . . . . . . . . . . . . . 27 2.8 La page prêt à terminer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.9 Le nouveau commutateur virtuel créé . . . . . . . . . . . . . . . . . . . . . . 28 3.1 Diagramme des cas d’utilisation de l’utilisateur . . . . . . . . . . . . . . . . . 35 3.2 Diagramme de séquence du cas « S’identifier » . . . . . . . . . . . . . . . . . 39 3.3 Diagramme de séquence du cas « Ajouter nouveau(x) switch » . . . . . . . . . 40 3.4 Diagramme de séquence du cas « Utiliser switch existant » . . . . . . . . . . . 40 3.5 Diagramme de séquence du cas « Détruire switch » . . . . . . . . . . . . . . . 41 3.6 Diagramme de classe du service . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.7 Topologie du Cloud privé de LIO (2018) . . . . . . . . . . . . . . . . . . . . . 45 3.8 Caractéristiques de la machine virtuelle . . . . . . . . . . . . . . . . . . . . . 46 3.9 VMware ESXi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.10 Présentation de VMware vCenter server . . . . . . . . . . . . . . . . . . . . . 47 3.11 Interface d’identification vSphere Client . . . . . . . . . . . . . . . . . . . . . 47 3.12 Interface d’identification vSphere Web Client . . . . . . . . . . . . . . . . . . 48 3.13 vSphere SDK et l’API vSphere . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.14 Méthode de l’affichage des switch existant dans l’inventaire . . . . . . . . . . . 50 3.15 Méthode d’ajout d’un switch virtuel . . . . . . . . . . . . . . . . . . . . . . . 51 3.16 Méthode de reconfiguration d’une machine virtuelle . . . . . . . . . . . . . . . 53 3.17 Méthode d’ajout d’un adaptateur virtuel à une machine virtuelle . . . . . . . . 53 3.18 Méthode de destruction d’un switch virtuel . . . . . . . . . . . . . . . . . . . 54 3.19 Méthode de destruction d’une machine virtuelle . . . . . . . . . . . . . . . . . 55 I
  • 9. Table des figures 3.20 Méthode de test de l’existence d’un switch virtuel dans un hôte . . . . . . . . . 55 3.21 Choix du nombre de VMs et leurs systèmes d’exploitation . . . . . . . . . . . 56 3.22 Spécification des noms des VMs . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.23 Choix de la topologie et du switch virtuel . . . . . . . . . . . . . . . . . . . . 56 3.24 Spécification du pool de ressources . . . . . . . . . . . . . . . . . . . . . . . . 56 3.25 Présentation du pool de ressource dans vSphere Client . . . . . . . . . . . . . 57 3.26 Présentation de la topologie étoile dans vSphere Client . . . . . . . . . . . . . 57 3.27 Présentation de la mise en réseau du commutateur standard « vSwitch2 » . . . . 57 3.28 Choix de la topologie et spécification des noms des commutateurs virtuels . . . 58 3.29 Spécification du pool de ressources . . . . . . . . . . . . . . . . . . . . . . . . 58 3.30 Présentation du pool de ressource dans vSphere Client . . . . . . . . . . . . . 58 3.31 Présentation de la topologie anneau dans vSphere Client . . . . . . . . . . . . 58 3.32 Présentation de la mise en réseau des commutateurs créés . . . . . . . . . . . . 59 II
  • 10. Liste des tableaux 3.1 Description textuelle du cas d’utilisation « s’identifier » . . . . . . . . . . . . . 36 3.2 Description textuelle du cas d’utilisation « créer topologie » . . . . . . . . . . 36 3.3 Description textuelle du cas d’utilisation « Déployer machines virtuelles » . . . 37 3.4 Description textuelle du cas d’utilisation « Ajouter nouveau(x) switch » . . . . 37 3.5 Description textuelle du cas d’utilisation « Utiliser switch existant » . . . . . . 38 3.6 Description textuelle du cas d’utilisation « Détruire switch » . . . . . . . . . . 38 3.7 Description de la classe « Utilisateur » . . . . . . . . . . . . . . . . . . . . . . 42 3.8 Description de la classe « vSwitch » . . . . . . . . . . . . . . . . . . . . . . . 43 3.9 Description de la classe « Machine virtuelle » . . . . . . . . . . . . . . . . . . 43 3.10 Description de la classe « Hôte ESXi » . . . . . . . . . . . . . . . . . . . . . . 44 3.11 Description de la classe « vCenter server » . . . . . . . . . . . . . . . . . . . . 44 3.12 Caractéristiques matérielles des composants du Cloud de LIO . . . . . . . . . 45 3.13 Explication des lignes de code de la méthode « displayNetworks » . . . . . . . 50 3.14 Explication des lignes de code de la méthode « addVirtualSwitch » . . . . . . . 51 3.15 Explication des lignes de code de la méthode « reconfigVM » . . . . . . . . . . 52 3.16 Explication des lignes de code de la méthode « addNic » . . . . . . . . . . . . 53 3.17 Explication des lignes de code de la méthode « DestroySwitch » . . . . . . . . 54 3.18 Explication des lignes de code de la méthode « DestroyVM » . . . . . . . . . . 54 3.19 Explication des lignes de code de la méthode « ExistSwitchName » . . . . . . . 55 III
  • 11. Introduction générale L e Cloud Computing est une révolution dans l’informatique qui change la façon de consom- mer les services informatiques. Il a ouvert la voie à l’informatique afin qu’elle soit plus efficace et rentable. Les organisations peuvent économiser de l’argent au cours des premières années d’utilisation et réaliser des économies non seulement en termes de rentabilité, mais aussi en rendant l’organisation plus agile ou capable de répondre aux changements de leur marchés respectif. Le Cloud Computing n’est pas une nouvelle technologie, mais plutôt, un nouveau modèle de livraison de services que ce soit des services de type stockage ou puissance de calcul ou des applications. Ces services sont déportés sur des serveurs distants chez un fournisseur du Cloud, et ils sont accessibles simultanément par plusieurs utilisateurs géographiquement distant utili- sant tout type de support (ordinateur de bureau, tablette, ordinateur portable ou smartphone) via Internet. Les utilisateurs peuvent exploiter des ressources informatiques différentes pendant une durée variable pour satisfaire leurs besoins informatiques et quand ils ont en besoin. L’utilisa- tion des ressources est ensuite, calculé et facturé à chaque utilisateur sur la base de paiement par usage réel des ressources provisionnées. Ce modèle s’est avéré avantageux pour les entreprises, car, il a transféré toutes les tâches d’administration et de maintenance du système vers les four- nisseurs, ce qui leur permet de gagner en productivité et en finance. Quant au fournisseur du Cloud, il a pour but de répondre aux besoins des clients en dépensant le minimum de ressources possibles. Une des approches que le fournisseur utilise consiste à mutualiser les ressources dont il dispose afin de les partager entre plusieurs entreprises. Cette mutualisation des ressources est devenu possible grâce à la virtualisation. Même si la virtualisation de ressources informatiques n’est pas née avec le Cloud, l’avènement du Cloud a considérablement augmenté son utilisation. Le Cloud repose donc sur la virtualisation pour allouer ses ressources. Ainsi, l’unité d’allocation de ressources dans le Cloud est la machine virtuelle, qui est beaucoup plus facilement déployable et migrable qu’une machine réelle. La virtualisation est une technique qui permet de partitionner les ressources informatiques physiques en plusieurs machines virtuelles indépendantes les unes des autres. Elle fonctionne 1
  • 12. Introduction générale en insérant une fine couche logicielle (appelé un hyperviseur) directement sur le matériel infor- matique ou sur un système d’exploitation hôte, qui permet de gérer et d’allouer les ressources requises. Auparavant, la virtualisation était destinée aux serveurs, cependant elle s’est répandue pour couvrir d’autres domaines tels que les postes de travail, les applications, le stockage et les réseaux. Le laboratoire LIO de l’université d’Oran 1 Ahmed Ben Bella, dispose d’un Cloud privé qui est mis à disposition du personnel (enseignants, étudiants) du département d’informatique. Ce Cloud privé offre une variété de ressources virtuelles, tels que le stockage, le calcul (les machines virtuelles) et le réseau (les commutateurs virtuels, les liens virtuels, les routeurs virtuels et les cartes réseaux virtuels, etc.). Auparavant les utilisateurs (enseignants, étudiants) ayant accès à ce Cloud privé, devraient demander à l’administrateur de leur provisionner des ressources afin de remplir leurs besoins pour supporter la charge de travail de leurs applications. Par conséquent, l’administrateur met du temps (jours) pour répondre à leurs demandes. Ce projet s’inscrit dans un projet mené l’année précédente et dont le but était de fournir un service de déploiement automatique et dynamique de machines virtuelles, permettant aux utili- sateurs de provisionner et de lancer rapidement de nouvelles machines virtuelles préconfigurées sans l’intervention directe de l’administrateur. Toutefois, ces machines virtuelles étaient indé- pendantes vis à vis le réseau. C’est dans ce cadre que s’inscrit ce projet de fin d’études intitulé ‘Automatisation du déploiement et de la gestion des réseaux virtuels dans le Cloud Computing’. L’objectif de ce projet est d’adresser la connectivité réseau de machines virtuelles. La solution que nous proposons est d’implémenter un service qui permet de déployer dynamiquement et au- tomatiquement des réseaux virtuels, en particulier des commutateurs virtuels afin de faire com- muniquer les machines virtuelles sur le même hôte les unes avec les autres et cela par rapport à la topologie choisie. Cette solution est en mesure d’automatiser le processus de provisionnement de réseau virtuel afin d’accélérer la fourniture de service et de réduire le délais de provisionne- ment, qui passent de plusieurs jours à quelques minutes. Le présent manuscrit s’articule autour de trois chapitres : — Chapitre 1 – Cloud Computing : Concepts Fondamentaux : Ce chapitre présente des généralités à propos du Cloud Computing. Nous abordons ses définitions, ses caractéristiques ensuite nous détaillons ses services et ses modèles de déploiement et nous décrivons ses avantages et inconvénients. Nous clôturons ce chapitre par donner des exemples des fournisseurs populaire du Cloud. — Chapitre 2 – Virtualisation : Ce chapitre est consacré à la présentation des notions préliminaires de la virtualisation. Nous exposons sa définition, ses techniques, ses types ensuite nous décrivons ses avan- tages et inconvénients. Nous finissons ce chapitre par expliquer la différence entre la virtualisation et le Cloud Computing. 2
  • 13. Introduction générale — Chapitre 3 – Conception et implémentation : Ce chapitre est réservé à la description détaillée de la conception et de l’implémentation. Tout d’abord la conception, qui a été communiquée en utilisant des modèles formels permettant d’avoir une spécification précise à l’aide des différents diagrammes UML, qui, à leur tour, nous permettent d’avoir des différentes vues du système à implémenter. Ensuite, l’étape d’implémentation où nous présentons l’environnement d’expérimenta- tion, les différents outils logiciels et le langage de programmation utilisés pour mettre en œuvre le service proposé. Nous clôturons ce mémoire par une conclusion générale et quelques perspectives. 3
  • 14. Chapitre 1 Cloud Computing : Concepts Fondamentaux Sommaire 1.1 Intoduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Caractéristiques du Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Modèles de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.1 Cloud Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.2 Cloud privé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4.3 Cloud hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4.4 Cloud communautaire . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 Services de Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.1 IaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.2 PaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5.3 SaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6 Avantages et inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6.1 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6.2 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.7 Adoption de Cloud Computing dans les entreprises . . . . . . . . . . . . 13 1.7.1 Le Cloud Computing dans les nouvelles entreprises . . . . . . . . . . 13 1.7.2 Le Cloud Computing dans les entreprises à infrastructures existantes . 14 1.8 Exemples de fournisseurs de services Cloud . . . . . . . . . . . . . . . . . 14 1.8.1 Amazon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.8.2 Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.8.3 Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4
  • 15. Chapitre 1. Cloud Computing : Concepts Fondamentaux 1.1 Intoduction Dans le passé, l’utilisateur (individu, entreprise, organisation) devait acheter du matériel et logiciels pour héberger ses applications et ses données. En outre, il devait louer ou construire un espace de centre de données pour héberger ses ressources matérielles et logicielles. De nos jour, il existe des plateformes Cloud qui donnent la possibilité de bénéficier des systèmes distants à la demande via Internet, de payer uniquement pour les ressources utilisées par l’utilisateur final et de les étendre et contracter au besoin. Au niveau de ce chapitre nous présentons les notions fondamentales du Cloud Computing, premièrement nous commençons par exposer les différentes définitions qui lui sont données. En- suite, nous présentons ses caractéristiques ainsi que ses différents modèles de déploiement et de livraison de services. Puis, nous recensons ses avantages et inconvénients, nous exposons aussi son adoption dans les entreprises avec ou sans un système préexistant. Enfin, nous terminons par donner des exemples des fournisseurs populaire du Cloud. 1.2 Définition NIST (National Institute of Standards and Technology) en français « Institut National des normes et de la technologie » définit le Cloud Computing comme « un modèle permettant un accès réseau omniprésent, pratique et à la demande à un pool partagé de ressources informatiques configurables (par exemple, réseaux, serveurs, stockage, applications et services) pouvant être rapidement provisionnées et libérées avec un minimum d’effort de gestion ou d’interaction avec le fournisseur de services. » [2] Gartner décrit succinctement le Cloud comme « la mise à disposition de services informa- tiques extensibles via l’Internet à un nombre potentiellement élevés de clients externes. » [3] Selon Cisco le Cloud Computing est un ensemble de « Ressources et services informatiques extraits de l’infrastructure sous-jacente et fournis « à la demande » et « à l’échelle » dans un environnement mutualisé. La définition de Cisco de Cloud Computing est générale. Cependant, trois attributs clés de la définition comprennent : 1. « À la demande » signifie que les ressources peuvent être provisionnées immédiatement en cas de besoin, libérées lorsqu’elles ne sont plus nécessaires et facturées uniquement lorsqu’elles sont utilisées. 2. « À l’échelle » signifie que le service fournit l’illusion d’une disponibilité infinie des ressources afin de répondre à toutes les demandes qui en sont faites. 3. « Environnement mutualisé » signifie que les ressources sont fournies à de nombreux consommateurs à partir d’une seule implémentation, ce qui permet au fournisseur d’éco- nomiser des coûts significatifs. » [4] Donc, le Cloud est un modèle qui offre des services à la demande. Ces services peuvent être des ressources de type stockage ou puissance de calcul, ou des applications et solutions 5
  • 16. Chapitre 1. Cloud Computing : Concepts Fondamentaux logicielles. Ces services sont accessibles par plusieurs utilisateurs simultanément à distance via Internet depuis n’importe quel endroit et n’import quand et sur tout type de support qui ne dispose pas forcément une grande capacité de calcul. Les services sont facturés sur la base de paiement par usage réel «pay-per-use» des ressources provisionnées, tout comme le paiement de la facture mensuelle pour le service d’électricité. 1.3 Caractéristiques du Cloud Le modèle de Cloud Computing du NIST comprend cinq caractéristiques ou exigences es- sentielles, ce qui différencie le modèle Cloud de l’approche informatique traditionnelle [5]. 1. Libre service à la demande : La fonction de service à la demande fait référence à la capacité qui permet aux utilisateurs de consommer les ressources informatiques autant qu’ils en ont besoin à tout moment. En outre, l’utilisateur est capable de demander des services de Cloud selon ses besoins via une interface et les ressources deviennent dispo- nibles en quelques secondes sans aucune intervention humaine de la part du fournisseur. 2. Mise en commun des ressources : Le Cloud Computing met à disposition des utilisa- teurs des ressources informatiques (processeur, mémoire, stockage et réseau), dont ils peuvent y accéder et les utiliser pour satisfaire leurs besoins informatiques et quand ils ont en besoin. Contrairement à l’approche informatique traditionnelle où chaque entre- prise ou utilisateur possède ses propres ressources informatiques physiques, les pools de ressources informatiques sont maintenus à des emplacements distants par le fournis- seur auquel accèdent tous les utilisateurs. Les pools de ressources doivent être raison- nablement grands, flexibles et capables de prendre en charge de nombreux utilisateurs simultanément sans aucune défaillance. 3. Accès réseau large bande : le service de Cloud Computing est accessible à distance par les utilisateurs via le réseau. Pour atteindre cet objectif, une infrastructure de réseau solide doit être mise en place pour une fourniture sans effort et rapide des services infor- matiques. Ainsi, les liens de communication à large bande passante répartis sur la zone de service sont les attributs essentiels du CC, de sorte que les utilisateurs peuvent y accéder depuis n’importe quel endroit et n’importe quand. 4. Élasticité rapide : le système doit être suffisamment élastique. Il devrait être capable de croître et de rétrécir selon les besoins. L’élasticité rapide fait référence à cette capacité du Cloud où un système informatique peut s’étendre ou se réduire rapidement en fonction des besoins réels en ressources au moment de l’exécution. 5. Service mesurable et facturable : Dans le modèle de Cloud Computing, le paiement est déterminé en mesurant les usages des ressources informatiques par un utilisateur. Par conséquent, le fournisseur doit utiliser un mécanisme pour mesurer la consommation réelle par chaque utilisateur ou organisation. Cela signifie que l’utilisation des ressources mises en commun doit être calculée et facturée à chaque utilisateur sur la base d’un 6
  • 17. Chapitre 1. Cloud Computing : Concepts Fondamentaux système de comptage. Généralement, ceci est fait sur une métrique connue telle que la quantité de puissance de traitement consommée, l’utilisation du volume de stockage, la bande passante réseau utilisée, le nombre de transactions réseau, etc. 1.4 Modèles de déploiement Les modèles de déploiement sont divisés en quatre grandes catégories. Ces modèles dé- crivent les différents modes d’exploitation du Cloud et spécifient également sa limite d’accès. Ceci confère aux organisations une multitude de choix pour adopter une solution Cloud tout dépend de leurs exigences. 1.4.1 Cloud Public Le Cloud public est appelé aussi le Cloud externe, car il est externe à l’organisation. Ce type de Cloud est mis en place et géré par un prestataire externe propriétaire de l’infrastructure, qui met à disposition des services accessibles par Internet (tel que IaaS, PaaS et SaaS) à un nombre illimité de clients différents (utilisateur individuel, organisation, entreprise), qui les utilisent à la demande et à tout moment. Grâce à la mutualisation des ressources, ce modèle de déploiement favorise la multi-location, c’est à dire la même ressource physique est partagée avec plusieurs clients indépendants. Ceci offre un avantage majeur pour les fournisseurs car il leur permet de servir un grand nombre de consommateurs dans le monde, et cela donc augmente le taux d’uti- lisation des ressources et propose des services à des prix attractifs. Figure 1.1 – Cloud Public 1.4.2 Cloud privé Le Cloud privé est généralement conçu pour satisfaire les besoins propres d’une seule en- treprise. Ce modèle donne un niveau de contrôle élevé sur les services et l’infrastructure Cloud. Contrairement au Cloud public qui ne réside pas au même emplacement physique que le client, le Cloud privé peut être déployé en interne ainsi qu’en externe. Le Cloud privé interne réside physiquement dans le périmètre de l’entreprise. Les ressources de ce Cloud sont hébergées sur 7
  • 18. Chapitre 1. Cloud Computing : Concepts Fondamentaux l’infrastructure de l’entreprise elle-même et sont accessibles à travers un réseau sécurisé. Le Cloud privé externe réside hors des frontières de l’entreprise. Il est hébergé chez un fournis- seur qui possède l’infrastructure, mais cette dernière reste sous le contrôle et la supervision de l’entreprise consommatrice et elle est accessible via un réseau sécurisé de type VPN. Figure 1.2 – Cloud Privé 1.4.3 Cloud hybride Le Cloud hybride est une conjonction de deux modèles de déploiement différents, généra- lement un Cloud public et un Cloud privé. Ces derniers restent des entités indépendantes, mais sont liés par des technologies propriétaires qui assurent la portabilité des données et des appli- cations déployées sur ces Clouds. En outre, ce modèle allie les avantages des deux modèles de déploiement. Il permet aux entreprises de bénéficier des capacités du Cloud privé pour héberger leurs ressources sensibles, ainsi de recourir au Cloud public pour absorber les pics de charge ponctuels. Ce qui peut réduire les coûts de construction et de management des ressources sur le Cloud. Figure 1.3 – Cloud Hybride [1] 8
  • 19. Chapitre 1. Cloud Computing : Concepts Fondamentaux 1.4.4 Cloud communautaire Le Cloud communautaire met en commun l’infrastructure et les services entre un groupe d’organisations d’une communauté spécifique, qui partagent les mêmes intérêts. Physiquement, il peut résider dans les locaux d’un membre de la communauté ou il peut être situé dans un endroit externe. L’objectif du Cloud communautaire est de fournir les avantages du Cloud public, comme la multi-location, la facturation à l’utilisation etc., à ses clients, ainsi qu’un niveau accru de confidentialité et de sécurité, comme le Cloud privé [5]. Figure 1.4 – Cloud Communautaire 1.5 Services de Cloud Computing Il existe trois principales catégories de modèles de prestation de services, à savoir l’infra- structure en tant que service (IaaS), la plateforme en tant que service (PaaS) et le logiciel en tant que service (SaaS). Chaque modèle représente une partie différente de la pile de Cloud Computing. 1.5.1 IaaS IaaS est la couche la plus basse du modèle de service de Cloud Computing. Le niveau Iaas permet au client d’externaliser son parc matériel serveur et de s’affranchir des compétences de conception et d’exploitation des infrastructures techniques [1]. En mettant à sa disposition des équipements matériels en mode virtuel en tant que commutateurs virtuels, processeur virtuel, stockage virtuel, etc. Ces ressources virtuelles peuvent être utilisées de la même manière que les ressources physiques (matérielles) pour créer une configuration informatique (telle qu’une machine virtuelle ou un réseau virtuel) [5]. Les utilisateurs consomment ces ressources via Inter- net en utilisant des services Web. Dans le modèle IaaS, l’infrastructure informatique est gérée, administrée et contrôlée par le fournisseur tandis que le client prend en charge la gestion et l’exploitation de toutes les couches supérieures, les systèmes d’exploitation, bases de données, applications. Le fournisseur facture ses clients en fonction de leur utilisation. 9
  • 20. Chapitre 1. Cloud Computing : Concepts Fondamentaux 1.5.2 PaaS Le modèle PaaS est destiné aux développeurs, qui développent et déploient leurs applications sur l’infrastructure du fournisseur en utilisant des langages de programmation, des bibliothèques et des outils supportés par le fournisseur (utilisation des API proposées par le fournisseur pour exploiter les fonctionnalités via Internet). Mais ceci n’empêche pas les développeurs d’utiliser des outils provenant d’autres sources. Certains fournisseurs PaaS permettent aux utilisateurs de télécharger leurs propres dépendances ou de télécharger automatiquement ce qui manque. Certains n’autorisent que des bibliothèques spécifiques de types spécifiques [6]. PaaS fournit un moyen unique de provisionner de nouvelles ressources informatiques. Les API et les interfaces Web rendent trivial la création de nouvelles applications. Cela permet aux administrateurs système d’être plus efficaces et tant que le fournisseur PaaS fonctionne correc- tement, il y a beaucoup moins de responsabilités [6]. La fourniture de serveurs d’hébergement ainsi que d’outils de modélisation et de programma- tion, à moindre coût, permet de dispenser les entreprises ainsi que les boîtes de développement d’achat de ressources matérielles et logicielles (serveurs, outils de virtualisation et d’adminis- tration, etc.) nécessaire au développement de leurs applications [7]. La gestion et la maintenance de toute l’infrastructure (système d’exploitation, les mises à niveau, les correctifs et le support) relèvent de la responsabilité du fournisseur du service Cloud. Parmi ses avantages : — Il fournit un environnement aux développeurs pour qu’ils puissent travailler sans se sou- cier des différentes configurations ou de la maintenance que nécessitent les infrastruc- tures sous-jacente, — Il offre une grande flexibilité. Les prototypes peuvent être assemblés et testés plus rapi- dement en jours, pas en semaines ou en mois, — Il est rentable parce que les entreprises n’auront plus besoin de faire des investissements en capital initial importants, La plupart des fournisseurs PaaS ont un certain niveau d’offre gratuite de leurs plateformes pour que les clients aient un aperçu de la façon dont le service fonctionne et d’examiner ce qui est facturé et ce qui ne l’est pas [6]. 1.5.3 SaaS Ce modèle fournit des logiciels via Internet. Le fournisseur héberge le logiciel sur ses propres serveurs et les clients peuvent s’abonner pour bénéficier des services logiciels mis en ligne via divers périphériques (des PCs, des tablettes, des smartphones ou des navigateurs Web) à leur demande. Le service SaaS s’est avéré financièrement bénéfique pour les PME (Petite et Moyenne En- treprise) ainsi que pour les grandes entreprises grâce à la mutualisation des coûts d’achat et d’installation du logiciel, de sa maintenance, de sa mise à jour. De plus, elles n’ont plus besoin 10
  • 21. Chapitre 1. Cloud Computing : Concepts Fondamentaux de superviser son bon fonctionnement ou de se soucier de son compatibilité avec le matériel, toutes ces opérations sont de la responsabilité du fournisseur de services. Les clients paient seulement pour l’abonnement (annuel ou mensuel), ou l’usage réel selon la politique de paie- ment du prestataire de services. Le client ne gère ni ne contrôle l’infrastructure Cloud sous-jacente, y compris le réseau, les serveurs, les systèmes d’exploitation, le stockage ou même les applications individuelles, à l’exception possible des paramètres de configuration d’application spécifiques à l’utilisateur [2]. La figure 1.5 illustre l’impact du Cloud Computing sur la structure de gouvernance des or- ganisations informatiques. Le niveau de contrôle de l’organisation informatique diminue et il augmente pour le fournisseur en passant de l’IaaS au PaaS au SaaS. Figure 1.5 – Répartition des responsabilités dans le Cloud 1.6 Avantages et inconvénients 1.6.1 Avantages 1. Réduction des coûts de — Investissement : l’adoption d’une solution Cloud ne requiert aucun investissement préalable, ce qui permet au capital d’être placé dans des activités de coeur de métier. — Gestion : les entreprises n’ont plus besoin à se soucier des frais de gestion liés à l’ex- ploitation du système, de l’énergie ainsi que les équipements de refroidissement ou à la nécessité d’avoir du personnel qualifié pour maintenir et superviser leurs plate- formes. Elles vont se débarrasser de la responsabilité de l’administration du système, de sa maintenance parce que le modèle Cloud transfère toutes ses tâches vers les fournisseurs [5]. — Utilisation : l’utilisation des services Cloud est facturée raisonnablement selon la consommation de l’utilisateur. 11
  • 22. Chapitre 1. Cloud Computing : Concepts Fondamentaux 2. Flexibilité : les avantages de la flexibilité découlent de l’approvisionnement rapide de nouvelles capacités et de la relocalisation ou la migration rapide des charges de travail. Dans les environnements du secteur public, le Cloud Computing fournit une agilité en termes de processus d’achat et d’acquisition et de délais [4]. 3. Disponibilité continue : les statistiques ont montré que le temps de fonctionnement du service (fourni par des fournisseurs réputés) compté pour une année ne descend généra- lement pas au-dessous de 99.9%. Une telle disponibilité continue et garantie du service Cloud est un facteur important pour toute entreprise [5]. 4. Mobilité : les services Cloud sont accessibles partout dans le monde via Internet. les utilisateurs peuvent y accéder à travers n’importe quel appareil informatique. 5. Haute résilience : la résilience est la capacité de réduire l’ampleur et/ou la période de perturbations causées par des circonstances indésirables. Le Cloud Computing est déve- loppé sur la base d’une infrastructure informatique résiliente, et les services Cloud sont donc plus résistants aux attaques et aux failles. La résilience passe par la redondance des infrastructures combinées à un mécanisme efficace d’anticipation, d’absorption et d’adaptation [5]. 6. Sécurité contre les catastrophes (système anti désastre) : la panne des systèmes due à une défaillance technique soudaine ou une catastrophe naturelle est une préoccupation majeure pour les utilisateurs. En particulier, tout dommage aux dispositifs de stockage peut entraîner une perte commerciale énorme. Le Cloud Computing dispose de systèmes de récupération robustes qui stocke et relance le système à nouveau. Ainsi, les systèmes et les données restent plus protégés dans le CC en matière de sûreté et de sécurité que les systèmes informatiques traditionnels [5]. 7. Écologique : le Cloud minimise le besoin en ressources électroniques, ceci permet de réduire les effets néfastes liés à la production des déchets électroniques, ainsi à contribuer à la diminution des émissions de carbone. 1.6.2 Inconvénients 1. Nécessité d’une bonne connexion Internet : l’accès aux services Cloud nécessite une connexion très performante. Donc, toute coupure de connexion survenant momentané- ment ou durablement peut priver les utilisateurs de tous les accès au Cloud. En outre, le transfert de données volumineuses nécessite une bande passante plus importante, ce be- soin peut faire exploser le budget surtout pour les entreprises qui situent dans des zones non desservies par une bonne connexion Internet. 2. La localisation des données : le Cloud n’ayant pas de frontière, il faut disposer d’un en- gagement sur les lieux de stockage des données, et s’assurer que les réglementations des pays sont en conformité avec les réglementations auxquelles le client est soumis ou bien qu’il souhaite avoir [1]. La règle de confidentialité ou de conformité diffère généralement 12
  • 23. Chapitre 1. Cloud Computing : Concepts Fondamentaux d’une juridiction à l’autre. les règles du degré de divulgation des données personnelles aux organismes gouvernementaux (dans le cas de certaines enquêtes officielles) diffèrent d’un pays à l’autre. la situation peut survenir lorsque la loi du pays d’un abonné au Cloud demande que certaines données soient divulguées lorsque la loi de la région d’héberge- ment du Cloud ne permet pas une telle divulgation [5]. 3. Contrôle réduit sur la gouvernance : quoique les consommateurs sont déchargés de la lourde responsabilité de gérer le système informatique, ils sont toutefois limités par rapport à la manipulation de leurs données (attribution d’un certain degré de contrôle opérationnel en fonction de service). 4. Suppression de données incomplètes : lorsqu’un utilisateur supprime une donnée sto- ckée dans le Cloud, celle-là peut ne pas être complètement supprimée en raison de la réplication qui duplique les données dans le datacenter du Cloud afin de rendre ces der- nières disponible. Bien que cela s’avère être un avantage, cependant l’utilisateur ne sait pas sur quel serveur et dans quel datacenter cette opération est effectuée, car il ne connaît pas la localisation de ses données. 5. La réversibilité du service : en cas de rupture de contrat ou de changement de fournis- seur, le client doit s’assurer de la récupération et de la destruction de ses données sur l’infrastructure du fournisseur après sa migration [1]. 6. Sécurité des données : la sécurité des données dans le CC est une préoccupation majeure pour les consommateurs. Puisque, les données sont stockées en dehors de leurs limites de réseau protégés par les pare-feu et gérées par une partie tierce, elles peuvent être volées ou mal utilisées. Ce qui est important, c’est qu’il faut connaître quelles sont les politiques du fournisseur qui régissent la gestion et la maintenance des données. Par exemple, la politique de Google stipule que la société partagera des données avec le gouvernement si elle a une « croyance de bonne foi » que l’accès est nécessaire pour répondre aux demandes légales. 1.7 Adoption de Cloud Computing dans les entreprises 1.7.1 Le Cloud Computing dans les nouvelles entreprises Les nouvelles entreprises ne possèdent généralement pas d’infrastructure informatique et rarement le savoir-faire nécessaire à une implémentation et utilisation. Cependant, ce sont pré- cisément ces entreprises qui ont besoin de services informatiques entièrement fonctionnels et fiables dans un délai très court, afin de mettre en oeuvre leurs idées. Une infrastructure TIC flexible et rentable gagne l’attention particulière des jeunes entreprises, notamment si celle-ci délivrent elles-mêmes des services informatiques. En utilisant un serveur de Cloud, elles n’ont pas à investir dans leurs propres parcs de serveurs. En même temps, elles peuvent utiliser les mé- canismes de sécurité existants du fournisseurs de Cloud. Les solutions logicielles et de stockage 13
  • 24. Chapitre 1. Cloud Computing : Concepts Fondamentaux flexibles pouvant être ajustées quotidiennement en fonction de l’utilisation sont très intéressantes pour les jeunes entreprises. par conséquent, elles peuvent donc commencer leur activité sans ré- server de ressources informatiques durant la phase incertaine de démarrage [3]. 1.7.2 Le Cloud Computing dans les entreprises à infrastructures existantes Contrairement aux jeunes entreprises, les grandes sociétés ont dans la plupart des cas, des départements informatiques dotés des connaissances spécialisées et industrielles, afin d’avoir à leur disposition les services informatiques désirés. Ces entreprises font souvent précéder la sé- curité des TIC avant la flexibilité, car les connaissances et le savoir-faire de l’entreprise acquis sur une longue période se trouvent dans ces données. Ces dernières doivent être continuellement disponibles et sécurisées, étant capitales pour l’entreprise et sans lesquelles sa survie serait me- nacée. Puisque les données ont tendances à être perdues, donc l’introduction d’une solution basée dans le Cloud permet aux entreprises de conserver ses données et logiciels sur le serveur du fournisseur et de fournir ainsi une mobilité aux collaborateurs en leur permettant d’accéder aux données à partir d’une simple station de travail, et en déplacement sur un téléphone portable permettant l’accès à Internet. Avec une telle solution les problèmes d’environnements informa- tiques hétérogènes seraient dépassés, les coûts des investissements réduits et la transparence de l’information améliorée [3]. 1.8 Exemples de fournisseurs de services Cloud 1.8.1 Amazon Amazon est une entreprise de commerce électronique américaine. Amazon est considéré comme un leader du marché dans l’infrastructure en tant que service (IaaS). La suite de services de CC offerte par Amazon est connue sous le nom de Services Web Amazon en anglais « Amazon Web Services »(AWS). Au départ son but était de vendre des livres en ligne, mais elle a ensuite étendu ses activités dans différents domaines. AWS met à disposition un Cloud public, et propose des offres IaaS dans le Cloud pour les entreprises qui ont besoin de puissance de calcul, de stockage et d’autres services [5]. Parmi les services populaires de AWS, nous trouvons : — Elastic Compute Cloud (EC2) permet la création des serveurs virtuels, il fournit une capacité de calcul redimensionnable dans le Cloud. — Simple Storage System (S3) fournit une interface de services Web qui peut être utilisée pour stocker et récupérer des quantités illimitées de données, à tout moment, de n’importe où sur le Web [8]. — SimpleDB fournit les principales fonctions de base de données, d’indexation et d’inter- rogation de données, elle peut être utilisé avec EC2 et S3. Les consommateurs sont factu- rés sur la base de la consommation de ressources par le biais de la facturation mensuelle. Amazon propose également un plan d’utilisation gratuit jusqu’à une certaine quantité de 14
  • 25. Chapitre 1. Cloud Computing : Concepts Fondamentaux stockage de données [5]. — Simple Queue Service fournit une file d’attente de messages pour les stocker lorsqu’ils se déplacent entre les ordinateurs afin d’éviter la perte des données et d’assurer une bonne connectivité entre les producteurs et les consommateurs. 1.8.2 Microsoft L’activité de Microsoft dans les offres de services Cloud couvre l’ensemble de l’application (SaaS), de la plateforme (PaaS) et de l’infrastructure (IaaS). Microsoft offre des services héber- gés dans le Cloud combinés à des logiciels locaux. Microsoft avait d’abord nommé ses services en tant que « Software Plus Services » (Software + Services). Grâce à cette initiative, Microsoft a fourni un logiciel traditionnel intégré à une suite de services hébergés dans le Cloud pour offrir une flexibilité supplémentaire aux utilisateurs et aux entreprises. Plus tard, Microsoft a renommé le service en tant que Windows Azure. Il a été renommé Microsoft Azure en 2014 [5]. Les services de la catégorie SaaS incluent Azure Cognitive Services et Azure IoT Suite. De plus, Microsoft offre d’autres services SaaS qui sont disponibles séparément du Cloud Azure tels que Office 365 qui est la version Cloud de la suite Microsoft Office traditionnelle avec quelques services supplémentaires comme Outlook, Skype et OneDrive, ainsi que SharePoint Online et Exchange Online, etc. Les services entrant dans la catégorie IaaS incluent Azure Virtual Ma- chines, Azure Virtual Networks et Azure Containers. La catégorie PaaS incluent les services suivant Azure App Service, Azure SQL Databases et Azure Redis Cache. 1.8.3 Google Google propose une vaste collection d’applications Web en tant que services Cloud. Ac- tuellement Google divise ses services Cloud dans les catégories suivantes : Calcul, Stockage, Réseau, Base de données, Services et Gestion [5]. L’offre infrastructure en tant que service (IaaS) de Google comprend deux services populaires Google Compute Engine et Google Cloud Storage. En outre, Google offre une plateforme pour les développeurs qui s’appelle Google App Engine (GAE). Elle propose également un certain nombre de services de base de données dans le cadre de leur offre Cloud (Cloud SQL, Cloud Datastore). Google propose aussi un large éventail d’applications très populaires destinées au grand public, livrées en mode SaaS. Parmi les nombreux services proposés, le traitement de texte basé sur le Cloud (Google Docs), le service de messagerie (Gmail) et le service de calendrier (Google Agenda). Ces services sont proposé sous « GSuite » et sont communément appelés « Google Apps » [5]. 15
  • 26. Chapitre 1. Cloud Computing : Concepts Fondamentaux 1.9 Conclusion Dans cette partie, nous avons fourni une base théorique sur le Cloud Computing. Nous avons vu qu’il est considéré comme une nouvelle façon de livraison des services et ressources informa- tiques. Le Cloud a non seulement modifié le fonctionnement des entreprises, mais il a également ébranlé la structure traditionnelle du service informatique. Il offre beaucoup de flexibilité par rapport au modèle informatique traditionnel et grâce à ses avantages en matière de flexibilité et de réduction des coûts, il a rencontré un fort succès et est utilisé par de nombreux acteurs très divers parce qu’il répond à leurs exigences informatiques fondamentales. Dans le prochain chapitre nous allons introduire la notion de virtualisation qui est un élément fondamental dans le Cloud Computing. 16
  • 27. Chapitre 2 Virtualisation Sommaire 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Définition de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Types d’hyperviseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.1 Hyperviseur de type 1 « Bare-metal » . . . . . . . . . . . . . . . . . 19 2.3.2 Hyperviseur de type 2 « hosted » . . . . . . . . . . . . . . . . . . . . 19 2.4 Techniques de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.1 Virtualisation complète . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.2 Para-virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.3 Virtualisation matérielle assistée . . . . . . . . . . . . . . . . . . . . 21 2.5 Types de virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5.1 Virtualisation d’applications . . . . . . . . . . . . . . . . . . . . . . 21 2.5.2 Virtualisation du poste de travail . . . . . . . . . . . . . . . . . . . . 22 2.5.3 Virtualisation de serveurs . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.4 Virtualisation du stockage . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.5 Virtualisation du réseau . . . . . . . . . . . . . . . . . . . . . . . . 23 2.6 Networking avec VMware . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6.1 Commutateur virtuel VMware . . . . . . . . . . . . . . . . . . . . . 25 2.6.2 Création d’un commutateur standard virtuel . . . . . . . . . . . . . . 26 2.7 Avantages de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.8 Inconvénients de la virtualisation . . . . . . . . . . . . . . . . . . . . . . . 29 2.9 Émulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.10 Virtualisation et le Cloud Computing . . . . . . . . . . . . . . . . . . . . 31 2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 17
  • 28. Chapitre 2. Virtualisation 2.1 Introduction Les premiers serveurs n’étaient pas conçus pour exécuter plusieurs programmes à la fois selon l’ancien modèle « un serveur, une application ». Cette approche a remplis les centres de données de systèmes sous-utilisés qui ne font exploiter que peu de leurs capacités, mais consom- mant de l’énergie et générant de la chaleur 24h/7j. De plus, les administrateurs informatiques passent trop de temps à gérer les serveurs. Par contre, après l’avènement de la virtualisation, il n’est plus nécessaire d’utiliser un serveur par application. La virtualisation est une techno- logie passionnante qui a changé le monde de la conception de systèmes informatiques. Elle a non seulement perturbé le nombre de serveurs acquis, mais aussi la façon dont les serveurs sont conçus. La virtualisation fonctionne en insérant une fine couche logicielle (appelé un hypervi- seur) directement sur le matériel informatique ou sur un système d’exploitation hôte, elle permet à plusieurs systèmes d’exploitation de fonctionner en même temps sur un seul ordinateur phy- sique et de se partager les ressources matérielles. D’autre part, la virtualisation a rendu possible de nombreuses fonctionnalités essentielles du Cloud Computing en terme de l’agilité et de flexibilité. Comme la virtualisation est deve- nue un ingrédient essentiel du Cloud Computing, il est important de comprendre les concepts de la virtualisation et les techniques sous-jacentes nécessaires pour virtualiser les ressources informatiques physiques. 2.2 Définition de la virtualisation La virtualisation est une technique qui fournit une couche d’abstraction au-dessus du matériel ou du logiciel sous-jacent et permet aux utilisateurs de diviser les ressources informatiques en plusieurs environnements d’exécution isolés. L’objectif principal de la virtualisation est de faire fonctionner plusieurs systèmes d’exploitation ou applications sur le même serveur physique. La virtualisation est réalisé par un logiciel appelé moniteur de machine virtuelle (VMM) , également connu sous le nom d’hyperviseur. Ce dernier s’exécute directement sur le matériel informatique ou sur un système d’exploitation hôte pour gérer et allouer les ressources requises [9]. 2.3 Types d’hyperviseur L’hyperviseur est un outil de virtualisation qui permet à plusieurs systèmes d’exploitation de travailler sur une même machine physique en même temps. Les hyperviseurs sont classés en deux catégories : 18
  • 29. Chapitre 2. Virtualisation 2.3.1 Hyperviseur de type 1 « Bare-metal » Un hyperviseur de type 1 appelé aussi hyperviseur natif, est un logiciel qui s’exécute directe- ment sur un serveur hôte physique. Il s’agit de la première couche sur les ressources matérielles du serveur, qui permet de contrôler directement ces dernières et gère les systèmes d’exploita- tion invités. L’hyperviseur de type 1 partitionne le serveur en plusieurs machines virtuelles qui fonctionnent indépendamment mais partagent les mêmes ressources physiques. Toutefois, il est possible d’exécuter uniquement un hyperviseur à la fois sur un serveur. Le serveur ESXi de VMware, Hyper-V de Microsoft et XenServer de Citrix sont des exemples d’hyperviseurs bare-metal. Figure 2.1 – Hyperviseur de type 1 2.3.2 Hyperviseur de type 2 « hosted » Un hyperviseur de type 2 appelé aussi hyperviseur hébergé, est une application de virtualisa- tion qui s’installe et s’exécute par-dessus un système d’exploitation (hôte) existant. Donc, ici le système d’exploitation hôte fonctionne comme la première couche de logiciel sur les ressources physiques. L’hyperviseur est la deuxième couche de logiciel et les systèmes d’exploitation in- vités fonctionnent comme la troisième couche de logiciel. Dans cette approche, l’hyperviseur utilise les services fournis par le système d’exploitation hôte pour gérer de la mémoire et l’or- donnancement des machines virtuelles. Les systèmes d’exploitation invités n’ont pas conscience d’être virtualisés. Ces derniers croient dialoguer directement avec ledit matériel. Des produits tels que VMware Workstation, Microsoft Virtual PC et VirtualBox sont les exemples les plus courants d’hyperviseurs de type 2. 19
  • 30. Chapitre 2. Virtualisation Figure 2.2 – Hyperviseur de type 2 2.4 Techniques de virtualisation 2.4.1 Virtualisation complète La virtualisation complète permet d’exécuter tout système d’exploitation sans modifier le système d’exploitation de l’hôte. Cette approche donne l’illusion d’un système complet de pé- riphériques matériels réels où la couche de virtualisation se comporte comme un émulateur du matériel. L’hyperviseur simule donc les pilotes (drivers) des différents périphériques (cartes ré- seau, disque SATA, processeur, etc.). La couche de virtualisation va faire croire aux systèmes d’exploitation invités qu’ils sont présents sur la machine physique. En effet, les systèmes d’ex- ploitation invités supposent qu’ils s’exécutent sur des ressources physiques réelles et ne sont pas conscients qu’ils ont été virtualisés. Cela permet aux versions non modifiées des systèmes d’exploitation disponibles (comme Windows, Linux et autres) de s’exécuter en tant que système d’exploitation invité sur l’hyperviseur. Dans ce modèle, l’hyperviseur est responsable de gérer toutes les demandes des systèmes d’exploitation invités vers le matériel pendant l’exécution des machines invitées [5]. 2.4.2 Para-virtualisation La paravirtualisation fait référence à la communication entre le système d’exploitation invité et l’hyperviseur. La paravirtualisation implique également de modifier le noyau du système d’ex- ploitation invité pour remplacer les instructions non-virtualisables par des hyper-appels « hyper- calls » qui communiquent directement avec l’hyperviseur de la couche de virtualisation [10]. En effet, lors de l’exécution du système d’exploitation invité, l’hyperviseur capture les hyper-appels de l’invité et les transmet au matériel. L’hyperviseur gère l’interface qui va permettre à plusieurs systèmes d’exploitation invités d’accéder de manière concurrente aux ressources. Ici, le système d’exploitation invité est conscient qu’il est virtualisé. 20
  • 31. Chapitre 2. Virtualisation Le meilleur exemple connu d’hyperviseur de paravirtualisation est le projet Xen open-source qui utilise un noyau Linux personnalisé. 2.4.3 Virtualisation matérielle assistée La virtualisation matérielle assistée n’est qu’une amélioration de la virtualisation complète, Elle permet de résoudre le problème de consommation des ressources en ajoutant des exten- sions processeur de virtualisation tels que AMD-V et Intel VT. Cette technique a été ajoutée aux processeurs x86 en 2006. Le matériel du serveur est compatible avec la virtualisation. La tech- nologie AMD-Virtualization (AMD-V) et Intel Virtualization Technology (Intel-VT) permettent à certains appels de CPU privilégiés du système d’exploitation invité d’être directement gérés par le CPU. Ces appels ne nécessitent pas d’être traduits par les hyperviseurs. Ceci élimine le besoin de traduction binaire ou de para-virtualisation. De nombreux hyperviseurs natifs utilisent cette technologie. Les hyperviseurs comme Xen, Microsoft Hyper-V ou VMware ESXi Server peuvent tirer parti des avantages de la virtualisation assistée par matériel [5]. 2.5 Types de virtualisation Bien qu’initialement destiné à la virtualisation des serveurs, le concept de virtualisation s’est propagé aux applications, aux réseaux, aux stockages et aux postes de travail. Chacun de ces types de virtualisation a des caractéristiques différentes, en fonction notamment des couches virtualisées. Dans ce qui suit, nous détaillons davantage chaque type. 2.5.1 Virtualisation d’applications La virtualisation d’application permet de dissocier l’application du système d’exploitation hôte et des autres applications présentes. La virtualisation d’application encapsule les fichiers, les clés de registre et autres configurations d’une application individuelle dans une structure représentée sous forme d’une « bulle » qui peut être facilement installée dans les ordinateurs, supprimée des ordinateurs et mise à jour si nécessaire. Les configurations de cette bulle peuvent utiliser les ressources de l’OS pour fonctionner elles-mêmes. De même, l’utilisateur peut inter- agir avec l’application dans la bulle pour exécuter un travail utile. En encapsulant les applications de cette manière, leur installation n’influence pas la configuration du système hôte [11]. Les ap- ports fonctionnels de la virtualisation d’applications sont l’élimination des conflits entre appli- catifs, la récupération rapide des applications en dysfonctionnement et la diminution importante de la durée des phases de test avant le déploiement. Elle garantit ainsi le bon fonctionnement des applications dans des environnements hétérogènes et peu maitrisés. Les logiciels de virtualisa- tion d’applications les plus connus sont ThinApp de VMware, XenApp de Citrix ou App-V de Microsoft. 21
  • 32. Chapitre 2. Virtualisation 2.5.2 Virtualisation du poste de travail La virtualisation des postes de travail est définie comme une technologie de virtualisation utilisée pour séparer un environnement de bureau d’ordinateur de l’ordinateur physique. La vir- tualisation des postes de travail est considérée comme un type de modèle informatique client- serveur car le poste de travail virtualisé est stocké sur un serveur centralisé ou distant et est accessible par une connexion à distance (déport d’écran). Les utilisateurs interagissent avec un bureau virtuel de la même manière qu’un bureau physique est accédé et utilisé [12]. Avec la vir- tualisation des postes de travail côté serveur, les données sont toujours conservées car le bureau virtuel n’a pas été affecté par la panne matérielle. En fait, les données ne quittent plus le centre de données, de sorte que le risque qu’un périphérique perdu ou volé provoquant des problèmes de sécurité est également réduit [13]. VMware View, Citrix Xendesktop sont parmi les solutions de virtualisation des postes de travail. 2.5.3 Virtualisation de serveurs La virtualisation des serveurs signifie qu’au lieu de charger un seul système d’exploitation sur un serveur physique, ce dernier sera divisé en plusieurs serveurs logiques ou virtuels [14]. Chacun de ces serveurs virtuels peut exécuter son propre système d’exploitation et ses propres applications et fonctionner comme s’il s’agissait d’un serveur individuel. Avec la virtualisation des serveurs, il est possible d’intégrer différents serveurs de façon plus flexible pour faciliter leur utilisation. La virtualisation des serveurs présente de nombreux avantages, notamment une optimisation d’utilisation des ressources matérielles grâce à la consolidation des serveurs, une diminution des frais immobiliers et des besoins en alimentation et en ventilation, en réduisant le nombre de serveurs. Ainsi, elle assure une disponibilité accrue des applications et une amélio- ration de la continuité d’activité grâce à la redondance (au cas où un serveur tombe en panne, un autre serveur exécutant la même application peut prendre sa place). 2.5.4 Virtualisation du stockage Dans le système informatique traditionnel, les stockages ont toujours été directement liés aux serveurs physiques. Avec la virtualisation du stockage, ce concept a été modifié. Désormais, les systèmes de stockage virtualisés sont liés à des serveurs et les systèmes de stockage réels (phy- siques) restent cachés. Comme d’autres ressources informatiques, la virtualisation du stockage se fait également à travers une couche de logiciel qui crée une abstraction logique de la mise en commun de périphériques de stockage physiques reliés entre eux par le réseau. Les données sto- ckées dans des périphériques de stockage logiques (virtualisés) sont stockées dans des disques de stockage physiques. L’avènement des réseaux de stockage (SAN) a facilité la mutualisation (et donc la virtualisation) des systèmes de stockage physique [5]. L’avantage de la virtualisation du stockage est l’utilisation accrue de la capacité disponible, réduisant ainsi l’espace de stockage gaspillé. Avec le stockage virtualisé, les migrations de don- 22
  • 33. Chapitre 2. Virtualisation nées peuvent être transparentes et même automatisées. En changeant simplement le schéma de mappage, la virtualisation peut déplacer l’emplacement des données sans perturber les E/S disque, ce qui permet un mouvement de données efficace et non perturbateur [12]. Il existe de nombreux systèmes de stockage Cloud virtualisés commerciaux disponibles sur le marché. Tels que Google Cloud Storage, Azure Storage de Microsoft, Simple Storage System (S3) et Elastic Block Store (Amazon EBS) d’Amazon. 2.5.5 Virtualisation du réseau La virtualisation du réseau consiste à combiner les ressources réseau et les fonctionnalités réseau en une seule entité administrative logicielle appelée réseau virtuel [5]. La virtualisation du réseau permet à plusieurs réseaux virtuels hétérogènes de coexister simultanément sur une seule infrastructure partagée. L’objectif de la virtualisation du réseau est d’optimiser la vitesse, la fiabilité, la flexibilité, l’évolutivité et la sécurité du réseau. La virtualisation du réseau est parti- culièrement efficace dans les réseaux qui subissent des augmentations soudaines, importantes et imprévues de l’utilisation [12]. Il y a deux formes courantes de virtualisation du réseau, Réseau virtuel basé sur un périphérique virtuel et Réseau virtuel basé sur le protocole. 2.5.5.1 Réseau virtuel basé sur un périphérique virtuel Un réseau virtuel est constitué d’une ou de plusieurs machines virtuelles pouvant envoyer et recevoir des données les unes des autres. Chaque machine virtuelle représente un seul ordinateur dans le réseau et réside sur un seul hôte. Une machine virtuelle peut être configurée avec une ou plusieurs cartes d’interface réseau virtuelles, ou NIC virtuelles (VNIC), qui représentent une connexion à un réseau. Cependant, ces cartes NIC virtuelles ne sont pas forcément identiques ni en type ni en nombre aux cartes physiques et ils ne se connectent pas aux cartes NIC physiques du système hôte. L’hyperviseur prend en charge la création d’un réseau virtuel qui connecte les cartes réseau virtuelles à un réseau composé de commutateurs virtuels. C’est ce réseau virtuel auquel les cartes réseau physiques se connectent [13]. Un commutateur virtuel est un logiciel intégré à l’hyperviseur qui se comporte comme un commutateur matériel. Ce logiciel permet aux machines virtuelles (VM) de s’intégrer au réseau avec d’avantage de souplesse, notamment sans se soucier du nombre de cartes physiques. La figure ci-dessous montre un schéma d’un réseau virtuel simple à l’intérieur d’un hôte VMware vSphere. Le commutateur virtuel (vSwitch 1) est connecté à une carte réseau physique, qui est connecté au réseau physique externe. L’autre commutateur virtuel (vSwitch 2) n’a aucune connexion à une carte réseau ou à un port de communication physique. La machine virtuelle (VM 1) a deux cartes réseau virtuelles, une connectée à chaque commutateur virtuel et, par extension, à chacun des réseaux virtuels. Les demandes via la carte réseau virtuelle connectée 23
  • 34. Chapitre 2. Virtualisation au commutateur virtuel externe seront transmises par le biais de la carte réseau physique de l’hôte physique au réseau physique et au monde extérieur. Les demandes via le commutateur virtuel interne n’ont aucun chemin vers le monde extérieur et peuvent uniquement aller vers d’autres machines virtuelles connectées au commutateur virtuel interne. La machine virtuelle (VM 2) peut effectuer des demandes uniquement via le commutateur virtuel interne et ne peut donc communiquer qu’avec l’autre machine virtuelle (selon le schéma). Figure 2.3 – Concept du réseau virtuel dans un hôte VMware Un avantage de la communication machine virtuelle à machine virtuelle utilisant un com- mutateur interne est que le trafic ne quitte jamais l’hôte physique et se déroule entièrement en mémoire. Cela le rend très rapide, beaucoup plus rapide que si les données quittaient l’hôte et parcouraient le réseau physique, même s’il s’agissait d’un hôte physiquement adjacent dans le centre de données [13]. 2.5.5.2 Réseau virtuel basé sur le protocole Cette approche crée un réseau de zone virtuelle, plutôt que de virtualiser les périphériques. Le réseau local virtuel (VLAN) et le réseau privé virtuel (VPN) sont des exemples de telles virtualisations. Réseau local virtuel (VLAN – Virtual Local Area Network) Un VLAN permet de diviser logiquement un réseau local en plusieurs réseaux virtuels. Les hôtes dans un même VLAN communiquent entre eux si elles sont sur le même réseau local, quel que soit l’emplacement physique. Il permet de créer des domaines de diffusion gérés logi- quement sans se soucier de l’emplacement de ses hôtes. Plusieurs VLANs peuvent coexister sur un même commutateur réseau et ils peuvent être locaux à un commutateur ou s’étendre sur un ensemble de commutateurs reliés entre eux. L’objectif est de contourner les limitations de l’ar- chitecture physique. Ceci conduit à l’amélioration de la gestion du réseau et de l’optimisation de 24
  • 35. Chapitre 2. Virtualisation la bande passante tout en séparant les flux de chaque ensemble d’hôtes. Chaque trame possède un identifiant du VLAN dans l’en-tête de contrôle d’accès au support (Media Access Control, (MAC)) [15]. Réseau privé virtuel (VPN – Virtual Private Network) Un réseau privé virtuel (Virtual Private Network (VPN)), est une technologie utilisée pour connecter en toute sécurité deux réseaux physiques géographiquement distants. Elle permet de créer une liaison virtuelle, sur un réseau public comme Internet, entre des ordinateurs distants. Cette technologie repose sur un protocole de tunneling qui permet de faire circuler les informa- tions de façon cryptée d’un bout à l’autre du tunnel. Son objectif est de masquer la distance entre deux ou plusieurs sites. Les VPNs ne sont pas conçus pour créer plusieurs réseaux virtuels sur une même infrastructure physique [15]. 2.6 Networking avec VMware Les réseaux dans l’environnement virtuel connectent les machines virtuelles entre elles et au réseau physique à l’extérieur du centre de données virtuel. 2.6.1 Commutateur virtuel VMware VMware vSphere comporte un ensemble d’éléments réseau qui permet de mettre en réseau les machines virtuelles dans le centre de données comme dans un environnement physique. VM- ware utilise un composant appelé commutateur standard ou vSwitch pour le support réseau. Ce commutateur d’origine logicielle est intégré dans l’hyperviseur qui assure un support réseau aux machines virtuelles. Le commutateur standard vSphere fonctionne de la même manière qu’un commutateur Ethernet physique. Il détecte les machines virtuelles qui sont logiquement connectées à chacun de ses ports virtuels et utilise ces informations pour acheminer le trafic aux machines virtuelles appropriées. Un commutateur standard vSphere peut être connecté à des commutateurs phy- siques à l’aide d’adaptateurs Ethernet physiques, aussi appelés cartes de liaison montante (ou uplink), afin de joindre des réseaux virtuels à des réseaux physiques. Ce type de connexion est semblable à une connexion de commutateurs physiques entre eux visant à créer un réseau plus grand. Même si un commutateur standard vSphere fonctionne de façon similaire à un commuta- teur physique, il ne dispose pas de certaines fonctionnalités avancées d’un commutateur physique [16]. 25
  • 36. Chapitre 2. Virtualisation 2.6.2 Création d’un commutateur standard virtuel 1. Il faut tout d’abord choisir l’hôte ESXi sur lequel nous voulons créer le commutateur virtuel, et nous allons dans la partie Configuration de celui-ci. 2. Puis, dans Matériel, cliquons sur Mise en réseau. L’interface mise en réseau affiche l’ensemble de réseaux virtuels, connectés par des commutateurs virtuels. Figure 2.4 – Interface mise en réseau 3. Cliquons sur Ajouter une mise en réseau en haut à droite de la page (figure 2.4). L’assistant Ajouter assistant réseau s’ouvre 4. Sélectionnons maintenant le type de connexion pour lequel le nouveau commutateur stan- dard sera utilisé. Sélectionnons le type de connexion Machine virtuelle et cliquons sur Suivant. Figure 2.5 – Choix de type de connexion 26
  • 37. Chapitre 2. Virtualisation 5. Sélectionnons sur quel commutateur virtuel ce réseau virtuel doit être connecté. Soit un commutateur virtuel existant ou un nouveau commutateur virtuel. Figure 2.6 – Choix de commutateur virtuel 6. Entrons l’étiquette réseau pour le groupe de ports ou accepter l’étiquette générée. Et définissons l’ID VLAN pour configurer le traitement VLAN dans le groupe de ports (0 indique qu’il n’est pas associé à un VLAN). Figure 2.7 – Spécification des paramètres de connexion 27
  • 38. Chapitre 2. Virtualisation 7. Sur la page Prêt à terminer, cliquons sur Terminer. Figure 2.8 – La page prêt à terminer 8. Voici le résumé de la configuration terminée. Figure 2.9 – Le nouveau commutateur virtuel créé 2.7 Avantages de la virtualisation La virtualisation offre de nombreux avantages aux consommateurs. Cette section traite des avantages opérationnels et financiers de la virtualisation de l’infrastructure informatique [5]. — Meilleure utilisation des ressources existantes : les ressources informatiques physiques sont devenues avancées et puissantes avec le temps. En informatique traditionnelle, une instance de machine fonctionne sur un serveur physique qui utilise à peine toute la puis- sance du système. Ainsi, la majeure partie de la puissance de traitement reste simplement inutilisée pour la plupart des systèmes informatiques. L’exécution de plusieurs machines virtuelles sur un serveur physique permet une meilleure utilisation des ressources, ce qui est appelé consolidation de serveur. — Réduction des coûts de l’infrastructure informatique : la virtualisation des ressources réduit l’investissement pour le matériel informatique, cela réduit à son tour de nombreux autres actifs associés, tels que l’espace physique, les besoins en énergie, le système de refroidissement et les ressources humaines pour administrer les systèmes. Les augmenta- tions du nombre de machines virtuelles sur les ressources physiques existantes n’ajoutent aucune de ces charges. 28
  • 39. Chapitre 2. Virtualisation — Amélioration de la tolérance aux pannes ou de la maintenance sans interruption : le découplage des machines virtuelles des ressources matérielles spécifiques augmente la portabilité du système. En cas de défaillance matérielle, le système virtuel peut être migré vers une autre configuration physique. Cela permet de créer un système tolérant aux pannes en créant une portée pour une maintenance sans interruption. — Administration simplifiée du système : la virtualisation segmente la gestion des sys- tèmes en deux groupes : la gestion des ressources physiques et la gestion du système virtuel. Un logiciel de surveillance centralisé peut être utilisé pour suivre la santé des systèmes et déclencher une alerte en cas de besoin. Comme la gestion des ressources informatiques virtuelles est moins critique que la ressource physique et qu’il y a moins de machines physiques, les tâches d’administration du système deviennent plus faciles. — Installation simplifiée du système : l’installation d’un nouveau système est devenue plus simple et plus économique dans l’environnement virtuel. Un nouveau système peut être installé presque en peu de temps en clonant une instance de machine virtuelle. Une nouvelle installation est beaucoup plus facile que l’installation physique de la machine. — Prise en charge des systèmes et applications anciennes : la virtualisation permet l’exé- cution et la cohabitation de plusieurs serveurs bien distincts sur une même machine. Ainsi, des applications métiers développées en interne ne s’exécutant que sur un ancien OS (comme NT4 par exemple) peuvent être conservées sans garder les contraintes liées à l’ancien serveur physique. — Tests de système et d’application simplifiés : les tests de performances des logiciels avant leur publication sont des tâches rigoureuses et nécessitent de tester le logiciel sur toutes les plates-formes prises en charge. La virtualisation facilite ce processus en élimi- nant une grande partie du temps et des efforts requis pour l’installation et la configuration du système. Le test d’application ou de logiciel système est l’un des principaux bénéfi- ciaires de la virtualisation. — Sécurité : la virtualisation ajoute une couche d’abstraction sur le matériel physique. Les machines virtuelles ne peuvent plus accéder directement aux ressources physiques. Cela peut limiter la quantité de destruction pouvant survenir lorsque des logiciels malveillants tentent d’endommager le système ou de corrompre des données. Par exemple, si un disque dur virtuel entier est endommagé ou corrompu, le disque physique réel reste inchangé. 2.8 Inconvénients de la virtualisation Bien qu’elle soit très avantageuse, la virtualisation présente quelques inconvénients : — Les coûts de licence : le premier inconvénient de la virtualisation est le coût en termes de licence. En effet, une architecture complète VMware pour deux processeurs, revient à environ 5 000 BC auquel s’ajoute 3 000 BC par lot de deux processeurs. Il est donc in- déniable que pour rentabiliser ce coût, l’infrastructure doit être déployée sur une grande 29
  • 40. Chapitre 2. Virtualisation échelle. Il existe aujourd’hui des technologies similaires à VMware dans le domaine de l’open source (Xen) mais qui sont beaucoup plus complexe à mettre en œuvre demandant des compétences spécifiques. Le coût de ces compétences sera du coup largement supé- rieur aux coûts de Licensing des produits VMware. Les produits Microsoft sont aussi une alternative à VMware mais nécessite une licence pour le système hôte [17]. — Problème de point unique de défaillance : la consolidation de charge de travail de différents serveurs sur une seule machine physique augmente la probabilité de défaillance d’un certain nombre de serveurs virtuels en cas de défaillance de cette machine physique. Si la machine qui héberge tous les OS s’arrête ou si la montée en charge d’une application est flagrante, la situation peut vite tourner au cauchemar. — Localisation des origines des pannes : la virtualisation masque souvent l’origine des pannes, notamment grâce aux fonctionnalités automatiques de répartition de charge, qui rendent les pannes quasiment invisibles, puisque le système continue de fonctionner quoi- qu’il arrive. Mais si une panne plus importante survient, il devient alors très difficile pour l’administrateur de la localiser. — Problème de performances inférieures : la virtualisation peut entraîner une baisse de la productivité des utilisateurs si les serveurs virtuels ne fonctionnent pas comme avant la virtualisation. Pour éviter cette situation, il est important de bien planifier et tester la capacité en virtualisant le serveur dans un environnement de laboratoire isolé [12]. — Évolution du matériel : la virtualisation de serveurs implique aussi une refonte du parc matériel. En effet, elle va impliquer une augmentation conséquente de la puissance des machines physiques hôte. En prenant le cas de la mémoire vive des machines. La mé- moire, au lieu d’être répartie sur chaque machine se verra donc rassembler sur une seule machine physique (le serveur hôte) [17]. 2.9 Émulation L’émulation est une imitation du comportement d’un matériel par un logiciel. Elle fait ré- férence à la capacité de rendre un système ayant une certaine architecture capable de supporter l’ensemble d’instructions d’une autre architecture de machine. Grâce à l’émulation, il est pos- sible d’imiter le fonctionnement du système X (architecture X) sur le système Y (architecture Y) et ensuite le logiciel à exécuter sur le système Y. Le logiciel d’émulation convertit les données binaires écrites pour l’exécution sur une machine en une forme binaire équivalente pouvant être exécutée sur une autre machine. Les termes virtualisation basée sur l’émulation et la virtualisation simple de machine créent parfois une confusion. En émulation, les ensembles d’instructions du système virtuel (présentés devant les utilisateurs) et le système physique réel ne sont pas identiques. Par conséquent, les demandes de service reçues par la machine virtuelle peuvent uniquement être transmises au 30
  • 41. Chapitre 2. Virtualisation système physique sous-jacent après la traduction des jeux d’instructions (une architecture vers une autre architecture). Par contre en virtualisation simple, le jeu d’instructions utilisé par le système virtuel et le système matériel réel est identique. Par conséquent, la machine virtuelle transmet simplement les demandes de service au système physique réel. Ici, les traductions des jeux d’instructions ne sont pas nécessaires. Sans la couche de traduction, les performances d’une machine virtuelle sont beaucoup plus rapides et approchent de la vitesse native. 2.10 Virtualisation et le Cloud Computing « La virtualisation est un outil, le Cloud Computing est un modèle d’affaire. » —Joe Baguley, Chief Cloud Technologist, VMware La virtualisation et le Cloud Computing sont deux concepts différents. La virtualisation est une technologie permettant de créer plusieurs environnements simulés à partir d’un seul sys- tème physique alors que le Cloud Computing fait référence à un modèle d’affaire permettant d’orchestrer facilement la gestion des ressources virtuelles et de transformer la délivrance de ces ressources en un service, facturable à la consommation. Tous deux permettent de maximiser les ressources informatiques et donc, de réduire les coûts et d’augmenter l’agilité de l’entreprise. Le Cloud Computing présente de multiples aspects et s’appuie sur la virtualisation pour parti- tionner les ressources disponibles et les partager entre les utilisateurs, parce que le Cloud consiste à délivrer des services disponibles dans un catalogue, et il fonctionne en instanciant et en com- binant de multiples ressources, qui seront des serveurs, des réseaux, des bases de données, en un pool de ressources. Des pools de ressources sont créés dans les centres de données et une couche d’abstraction est créée sur les pools de différents types de ressources physiques à l’aide de la vir- tualisation. Les consommateurs de services Cloud peuvent par la suite uniquement accéder aux ressources informatiques virtuelles du centre de données. 2.11 Conclusion Au niveau de ce chapitre nous avons clarifié le concept de la virtualisation en mettant en relief sa définition, ses différentes techniques et types, et nous avons pu voir que la virtualisation n’est pas limité aux serveurs cependant elle s’est répandu pour couvrir plusieurs domaines tels que les systèmes de stockage et les réseaux. Nous avons ainsi recensé ses avantages et inconvénients, mais les effets positifs de la virtualisation l’emportent largement sur les effets négatifs. Ensuite, nous avons montré que la virtualisation et le Cloud Computing ne sont pas interchangeable, mais ils peuvent être combinés en raison que le Cloud utilise les capacités de la virtualisation en terme de flexibilité et l’agilité pour fournir ses services. Dans le chapitre suivant nous décrirons la problématique de ce travail et nous discuterons la conception et l’implémentation de la solution proposée. 31
  • 42. Chapitre 3 Conception et implémentation Sommaire 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2.1 Description de la problématique . . . . . . . . . . . . . . . . . . . . 33 3.2.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.3.1 Environnement d’expérimentation . . . . . . . . . . . . . . . . . . . 45 3.3.2 Spécifications techniques . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3.3 Explication des lignes de codes des méthodes utilisées . . . . . . . . 50 3.3.4 Scénarios d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 32
  • 43. Chapitre 3. Conception et implémentation 3.1 Introduction Dans ce chapitre nous présentons la problématique relative à l’approvisionnement des res- sources informatiques pour les utilisateurs dans un Cloud privé interne. À cet effet, nous avons réalisé un service qui permet aux utilisateurs de consommer les ressources sans pour autant devoir faire une demande d’intervention auprès de l’administrateur (ou l’équipe IT). En particu- lier, l’objectif de ce travail est de fournir un portail en libre-service de mise en place d’un réseau virtuel et ceci par rapport à la topologie choisie par l’utilisateur. Ce chapitre est divisé en deux grandes sections. La première section représente la concep- tion de notre service qui constitue une étape fondamentale qui précède l’implémentation, et à travers laquelle nous essayons d’analyser l’activité globale du service proposé en utilisant un diagramme de cas d’utilisation, un diagramme de séquence et un diagramme de classes. La deuxième section représente l’implémentation où nous allons traduire la conception par un lan- gage de programmation afin d’aboutir à une automatisation des besoins tels qu’ils seront définis dans la partie spécification. 3.2 Conception La phase de conception se voit parmi les phases les plus importantes dans la résolution d’un problème donné. Cette étape va nous permettre de décortiquer avec précision l’architecture de notre service, ce qui va nous faciliter par la suite sa construction. 3.2.1 Description de la problématique Le Cloud Computing offre une variété de ressources, tels que le stockage, le calcul (les ma- chines virtuelles) et le réseau (les commutateurs virtuels, les liens virtuels, les routeurs virtuels et les cartes réseaux virtuels, etc.). Ainsi, le Cloud Computing doit offrir la possibilité d’avoir un accès rapide simple, automatique et dynamique à ces ressources informatiques pour une durée flexible et avec des exigences variables. Auparavant les utilisateurs (enseignants, étudiants) ayant accès au Cloud privé du laboratoire LIO de l’université d’Oran 1 Ahmed Ben Bella, devraient demander à l’administrateur de leur provisionner des ressources afin de remplir leurs besoins pour supporter la charge de travail de leurs applications. Par conséquence, l’administrateur met du temps pour répondre à leurs demandes. Pour remédier à cela, Bensalah [18] a conçu un service d’auto-déploiement de ressources virtuelles de type calcul c’est à dire des machines virtuelles, mais ces dernières étaient indé- pendantes vis à vis le réseau. Dans le travail actuel, nous allons développer un service d’auto- déploiement de ressources virtuelles de type réseau et cela par rapport à la topologie choisie pour gérer au mieux le trafic réseau de machines virtuelles. 33
  • 44. Chapitre 3. Conception et implémentation 3.2.2 Objectifs Les objectifs que nous visons sont : — Fournir un service qui permet de déployer dynamiquement et automatiquement des ré- seaux virtuels. En particulier les commutateurs virtuels afin de faire communiquer les machines virtuelles sur le même hôte les unes avec les autres et cela par rapport à la topologie choisie. — L’utilisateur sera donc capable de provisionner ses propres ressources informatiques via un portail en libre-service. — Réduire la charge du travail de l’administrateur qui n’aura plus besoin d’intervenir pour installer des machines virtuelles et mettre en place des réseaux virtuels dans chaque hôte. 3.2.3 Modélisation Dans cette section, nous allons illustrer le fonctionnement et l’utilisation du service d’auto- déploiement des réseaux virtuels, à l’aide d’une série de diagrammes, en l’occurrence un dia- gramme de cas d’utilisation, un diagramme de séquence et un diagramme de classe. 3.2.3.1 Diagramme de cas d’utilisation Un diagramme de cas d’utilisation décrit une séquence d’interactions entre un utilisateur et un système, sans spécifier l’interface utilisateur. Les cas d’utilisation décrivent les fonctions du système du point de vue des utilisateurs externes et d’une manière et d’une terminologie qu’ils comprennent. 1. Description des acteurs Les acteurs sont des entités externes qui interagissent avec le système. L’acteur initie les activités du système dans le but d’accomplir une tâche. L’acteur principal de notre service est l’utilisateur qui est toute personne physique appartenant au département informatique de l’université d’Oran 1 Ahmed Ben Bella et ayant reçu un compte d’accès au Cloud privé. 2. Liste des cas d’utilisation de l’utilisateur — S’identifier — Créer une topologie (en étoile ou anneau) — Ajouter de nouveaux switch — Choisir un switch existant — Détruire un switch — Déployer des machines virtuelles — Sélectionner le système d’exploitation — Spécifier le nombre de machines virtuelles 34
  • 45. Chapitre 3. Conception et implémentation La figure ci-dessous illustre le cas d’utilisation général du service, où le diagramme décrit les grandes fonctionnalités du service de point de vue de l’acteur. Figure 3.1 – Diagramme des cas d’utilisation de l’utilisateur 3. Description des cas d’utilisation Dans ce qui suit, nous donnons une description textuelle de chaque cas d’utilisation afin d’expliquer et éclaircir le fonctionnement de notre service. Nous allons produire l’analyse des cas suivant : — Cas 1 « S’identifier » — Cas 2 « Créer topologie » — Cas 3 « Déployer machines virtuelles » — Cas 4 « Ajouter nouveau(x) switch » — Cas 5 « Utiliser switch existant » — Cas 6 « Détruire switch » 35
  • 46. Chapitre 3. Conception et implémentation Cas no 1 S’identifier Acteur(s) Utilisateur Description L’utilisateur s’identifie pour accéder à la plateforme du Cloud privé Précondition Tout autorisé avec le nom d’utilisateur et mot de passe Postcondition Le nom d’utilisateur et le mot de passe sont valides Scénario nominal 1. L’utilisateur lance le programme vSphere Client. 2. L’utilisateur introduit son nom d’utilisateur et son mot de passe. 3. Le système Cloud vérifie le nom d’utilisateur et le mot de passe. 4. Le système Cloud ouvre l’interface correspondante au profil identifié. Scénarios alternatifs 3.a. le système Cloud informe l’utilisateur que les informations saisies sont incorrectes. 3.a.1. Le cas d’utilisation reprend au point 2 du scénario nominal Table 3.1 – Description textuelle du cas d’utilisation « s’identifier » Cas no 2 Créer topologie Acteur(s) Utilisateur Description L’utilisateur crée une topologie selon son choix (topologie en étoile ou en an- neau) Précondition La connexion entre le service et le système Cloud est établie Postcondition La topologie est créée Scénario nominal 1. L’utilisateur choisit le type de topologie (étoile ou anneau). 2. L’utilisateur donne le nombre de machines virtuelles et choisis leurs SE. 3. L’utilisateur choisit l’ajout d’un nouveau switch et le nomme. 4. Le service envoie la demande d’ajout d’un/des switch au système de Cloud selon la topologie choisie. 5. Le système Cloud procède à la création de la topologie. Scénarios alternatifs 3.a. L’utilisateur choisit parmi une liste un/des switch qui existe dans l’inventaire. 3.a.1. Le cas d’utilisation reprend à l’action 5 du scénario nominal Table 3.2 – Description textuelle du cas d’utilisation « créer topologie » 36