• Aucun résultat trouvé

CONCEPTION D’UNE SOLUTION DE CLOUD COMPUTING PRIVE BASEE SUR UN ALGORITHME DE SUPERVISION DISTRIBUE :

N/A
N/A
Protected

Academic year: 2022

Partager "CONCEPTION D’UNE SOLUTION DE CLOUD COMPUTING PRIVE BASEE SUR UN ALGORITHME DE SUPERVISION DISTRIBUE :"

Copied!
136
0
0

Texte intégral

(1)

U N I V E R S I T E D’ A B O M E Y - C A L A V I (U A C)

***

E C O L E P O L Y T E C H N I Q U E D’ A B O M E Y - C A L A V I (E P A C)

DEPARTEMENT DE GENIE INFORMATIQUE ET TELECOMMUNICATION

Option : Réseaux Informatiques et Internet

MEMOIRE DE FIN DE FORMATION POUR L’OBTENTION DU

DIPLÔME D’INGENIEUR DE CONCEPTION

THEME :

CONCEPTION D’UNE SOLUTION DE CLOUD COMPUTING PRIVE BASEE SUR UN ALGORITHME DE SUPERVISION

DISTRIBUE : APPLICATION AUX SERVICES IAAS

Réalisé par : CODO Patrice Paterne

Soutenu devant le jury composé de : Président : Dr. ADEDJOUMA A. Sèmiyou Membres : - Dr. DISSOU Jamal

- Dr. SOGBOHOSSOU Médésu - Ing. LEWHE Christian

Année Académique : 2011-2012 (5ième promotion)

(2)

i Conception d’une solution de cloud computing privé basée sur un algorithme de supervision distribué Par P. Paterne CODO

SOMMAIRE

SOMMAIRE ... i

DEDICACES ... ii

REMERCIEMENTS ... iii

LISTE DES SIGLES ET ABREVIATIONS ... iv

LISTE DES TABLEAUX ... vi

LISTE DES FIGURES ... vii

RESUME ... x

ABSTRACT ... xi

INTRODUCTION GENERALE ...1

1. CONTEXTE, JUSTIFICATION ET PROBLEMATIQUE ...3

2. OBJECTIFS ...4

PREMIERE PARTIE : Synthèse bibliographique...5

CHAPITRE 1. LES CONCEPTS DU CLOUD COMPUTING ...6

CHAPITRE 2. LES TECHNOLOGIES DU CLOUD...15

CHAPITRE 3. LES SOLUTIONS ACTUELLES DU CLOUD ...28

DEUXIEME PARTIE : Matériels et Méthodes ...36

CHAPITRE 4. METHODOLOGIE D’ETUDE ...37

CHAPITRE 5. MODELISATION DE LA SOLUTION ...48

CHAPITRE 6. CHOIX TECHNIQUES...65

TROISIEME PARTIE : Résultats et discussion ...70

CHAPITRE 7. SIMULATION ET DISCUSSION ...71

CONCLUSION ET PERSPECTIVES ...86

REFERENCES BIBLIOGRAPHIQUES ...88

ANNEXES ...93

SUMMARY ... 109

TABLE DES MATIERES ... 121

(3)

ii Conception d’une solution de cloud computing privé basée sur un algorithme de supervision distribué Par P. Paterne CODO

DEDICACES

Je dédie ce travail :

- A mes parents Justin CODO et Cécile SESSOU. Trouvez en ce mémoire l’expression de ma gratitude pour tous vos efforts effectués dans le cadre de mon éducation et de ma formation. Vous avez su placer en l’éducation de vos enfants, la plus grande priorité qui soit ! puisse l’Eternel vous en savoir gré et vous accorde longue vie ;

- A tous mes frères et sœurs. Vos soutiens ont été pour moi source de force et d’espoir. Je vous aime de tout cœur. Je dédie en particulier ce travail à Roland CODO ;

- A mes grands frères Basile CODO et Vincent CODO. Vos efforts louables au tout début de mes études ont contribué énormément à la réussite de mes études.

(4)

iii Conception d’une solution de cloud computing privé basée sur un algorithme de supervision distribué Par P. Paterne CODO

REMERCIEMENTS

Louanges à toi Seigneur, l’unique DIEU de l’univers, pour ta grâce et miséricorde le long de mes études.

Je remercie tous ceux qui de près ou de loin ont contribué à la réalisation de ce travail.

Mes remerciements vont particulièrement à l’endroit de :

- Professeur Félicien AVLESSI, Directeur de l’Ecole Polytechnique d’Abomey-Calavi (EPAC) ;

- Tout le personnel administratif de l’EPAC ;

- Dr. Sèmiyou A. ADEDJOUMA, Enseignant-Chercheur à l’EPAC ;

- Dr. Médésu SOGBOHOSSOU, mon maître de mémoire, pour avoir accepté de suivre ce travail ;

- Madame Sylvie FRANCISCO, Directrice générale de Logisoft-Bénin, pour m’avoir accordé le stage professionnel de six mois dans le cadre de ce mémoire ;

- Ing. Christian LEWHE, mon tuteur de stage, pour ses précieux conseils dans l’élaboration de ce travail ;

- Tous mes amis, en particulier Alcade SEIGNON, Jean-Marie ZONOU, Rodrigue HOUNSSOUNOU, Peck SOSSOU qui n’ont ménagé aucun effort pour l’aboutissement de ce travail ;

- Ma chère Christelle ABOTCHI, pour son soutien et ses efforts pour l’aboutissement de ce travail ;

- Tous mes amis et promotionnaires de L’EPAC, en particulier Brice HESSOU, John AOGA, Arsène TANDJE, Dorine HOUNKPE, Géraud AGUEDJO, qui ont été pour moi comme des frères et sœurs durant toute ma formation.

(5)

iv Conception d’une solution de cloud computing privé basée sur un algorithme de supervision distribué Par P. Paterne CODO

LISTE DES SIGLES ET ABREVIATIONS

A

AJAX: Asynchronous JavaScript And XML

AMD-V: Advanced Micro Devices Virtualization

API: Application Programming Interface

C

CC: Cluster Controller

CCM: Cluster Controller Manager CLC: Cloud Controller

CRM: Customer RelationShip Management

D

DHCP: Dynamic Host Configuration Protocol E

EC2: Elastic Compute Cloud

ERP: Enterprise Resource Planning F

FIFE: First In First Elected FIFO: First In First Out

G

GPL: General Public License GNU: GNU's Not UNIX

H

HFU: Hochschule Furtwangen University

HSQLDB: Hyper Structured Query Language Database

HTTP: Hypertext Transfer Protocol

I

ICA: Independent Computing Architecture

IP: Internet Protocol

IaaS: Infrastructure as a Service Intel-VT: Intel Virtualization Technology

K

KVM: Kernel Based Virtualization Machine

N

NC: Node Controller

(6)

v Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

O

OS: Operating System P

PaaS: Platform as a Service

R

RDP: Remote Desktop Protocol RPC: Remote Procedure calling RSA: Rivest Shamir Adleman S

SaaS: Software as a Service SOAP: Simple Object Access Protocol

SCP: Secure Copy

SGBD: Système de Gestion de Base de données

SSH: Secure Shell

SDK: Software Development Kit

U

UDDI: Universal Description Discovery and Integration V

VCL: Virtual Computing Laboratory

VDI: Virtual Desktop Infrastructure

VIRTIO: Virtual Input Output VM: Virtual Machine

VMM: Virtual Machine Monitor VNC: Virtual Network Computing VPN: Virtual Private Network W

WSDL: Web Services Description Language

X

XML: eXtensible Markup Language

(7)

vi Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

LISTE DES TABLEAUX

Tableau 2.1 : Synthèse des techniques de virtualisation (adaptée de mahjoub, 2011). ...23

Tableau 6.1 : Synthèse des outils utilisés pour l’implementation. ...69

Tableau 7.1 : Les machines physiques employées pour la simulation. ...71

Tableau 7.2 : Configuration de la machine virtuelle ns.com. ...78

Tableau 7.3: Liste des hôtes employés pour le test de l’algorithme proposé. ...81

(8)

vii Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

LISTE DES FIGURES

Figure 1.1: Cloud computing. ...7

Figure 1.2: Les différentes couches des services du cloud computing (Sun et al, 2011). ...7

Figure 1.3: Les éléments constitutifs des services IaaS du cloud computing (Sun et al, 2011). .9 Figure 1.4: Les services SaaS du cloud computing (Armbrust et al, 2009). ...11

Figure 1.5: Le cloud privé de l’universite hfu (Doelitzscher et al, 2011). ...14

Figure 2.1: Principe de la virtualisation (adapté du schéma de la virtualisation complète de Bonnet, 2008). ...16

Figure 2.2: La virtualisation complète (Bonnet, 2008). ...17

Figure 2.3: La para-virtualisation (Bonnet, 2008). ...18

Figure 2.4: Principe d’un hyperviseur (Bonnet, 2008). ...19

Figure 2.5: Migration de machine virtuelle (Zhao et Figueiredo, 2007). ...22

Figure 3.1: Architecture d’Eucalyptus (Alrwais, 2011; Naing, 2012)...32

Figure 3.2: Les différentes couches d’OpenNebula. ...33

Figure 4.1: Schéma de l’architecture du cloud privé : cas de panne du nœud central de supervision. ...40

Figure 4.2: Schéma de l’architecture du cloud privé : cas de panne d’un cluster controller. ..41

Figure 4.3: Schéma de la solution proposée. ...42

Figure 4.4: Schéma d’un scénario de reprise des services par la solution proposée. ...43

Figure 4.5: Schéma d’un scénario de réélection d’un nouveau cluster controller en cas de panne d’un cluster controller prédestiné à reprendre les services du cloud controller. ..44

Figure 4.6: Schéma d’un scénario de reprise des services d’un cluster controller par un node controller et réélection de nouveaux cluster controller et node controller. ...44

Figure 4.7: Processus d’élection d’un node controller passé à l’état de cluster controller. ...45

Figure 5.1: Diagramme de séquence de l’ajout d’un premier nœud au système. ...52

Figure 5.2: Schéma de l’architecture après l’ajout du premier nœud. ...52

Figure 5.3: Diagramme de séquence de l’ajout d’un nouveau nœud dans un nouveau cluster. ...53

Figure 5.4: Schéma du système après l’ajout d’un second contrôleur de cluster. ...54

(9)

viii Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Figure 5.5: Diagramme de séquence de l’ajout d’un premier nœud à un cluster possédant

déjà un contrôleur. ...56

Figure 5.6: Schéma du système après l’ajout d’un premier nœud à un cluster possédant déjà un contrôleur. ...56

Figure 5.7: Diagramme de séquence à l’initialisation du système...58

Figure 5.8: Schéma du système après la phase d’initialisation. ...59

Figure 5.9: Diagramme d’état-transition du processus P à l’initialisation. ...59

Figure 5.10: Diagramme d’état-transition du processus P pendant la phase de supervision du système. ...62

Figure 5.11: Diagramme d’état-transition global du processus P...63

Figure 6.1: Diagramme de classe du système. ...68

Figure 7.1: Exécution de l’application distribuée sur trois machines physiques. ...72

Figure 7.2: Ajout des nœuds au système par l’interface CLI. ...73

Figure 7.3: Gestion des machines virtuelles du système par l’interface CLI. ...74

Figure 7.4: Accès au portail Web...75

Figure 7.5: Accès aux machines virtuelles via le portail Web développé...75

Figure 7.6: Authentification pour l’accès VNC aux hôtes ou machines virtuelles du système. ...76

Figure 7.7: Configuration du système via l’interface Web. ...76

Figure 7.8: Ajout d’un hôte au systeme par l’interface Web...77

Figure 7.9: Caracteristiques d’un hôte du système...77

Figure 7.10: Renseignement des paramètres de la machine virtuelle ns.com au CLC. ...79

Figure 7.11: Réplication de la machine virtuelle ns.com sur le CC élu...79

Figure 7.12: Reprise des services par le CC élu. ...80

Figure 7.13: Reprise des services par le CC restant dans le réseau. ...80

Figure 7.14: Affichage des 07 hôtes de test sur la plateforme Web ...82

Figure 7.15: Arrêt de la machine testvm1 ...82

Figure 7.16: Changement d'état de testvm3 à l'état de CC. ...82

Figure B.1: Rendement d’un serveur en présence ou non de la virtualisation (Santy, 2010). .97 Figure E.1: Utilisation de machine virtuelle avec Eucalyptus (Sempolinski et Thain, 2010). . 104

Figure E.2: Utilisation de machine virtuelle avec OpenNebula (Sempolinski et Thain, 2010). ... 106

(10)

ix Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Figure E.3: Architecture de Nimbus (Keahey et al, 2008; Alrwais, 2011)... 107

Figure 1.1: Layers of cloud computing architecture. ... 111

Figure 1.2: Infrastructure as a service (IaaS) components. ... 113

Figure 1.3: Eucalyptus architecture. ... 114

Figure 3.1: CLC failure. ... 116

Figure 3.2: The proposed solution. ... 117

Figure 3.3: Registering process of the proposed solution. ... 118

(11)

x Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

RESUME

Dans le domaine du cloud computing, notamment celui du cloud privé, les solutions actuelles pour les services de type IaaS (Infrastructure As a Service), qui permettent l'administration et l’utilisation d'un ensemble de ressources physiques et virtuelles à travers le réseau en employant les technologies du Web et celles de la virtualisation, adoptent des architectures de supervision centralisée. De plus, ces solutions ne supportent pas la tolérance aux pannes dans leurs architectures ; ce qui est susceptible d'entraîner des ruptures de services en cas de panne du nœud central du système. Afin de contribuer à la résolution de ce problème, nous avons proposé un nouveau système basé sur un algorithme de supervision distribué des différentes machines du réseau en employant le principe de privilège tournant. La solution se base sur une représentation en arbre des différents nœuds du réseau en déléguant des nœuds « fils » dont le rôle consiste à superviser les nœuds « parents » jugés critiques. De cette manière, une panne quelconque survenue au niveau de ces nœuds est automatiquement perçue par le nœud « fils » élu qui s’auto-attribue les fonctions et charges du nœud sortant par changement d’état. La solution a été appliquée aux services IaaS et les différents tests effectués ont montré sa capacité à assurer la disponibilité des services dans un environnement de cloud privé.

Mots clés : Virtualisation, Cloud computing privé, Système distribué, Algorithme de contrôle distribué, Tolérance aux pannes.

(12)

xi Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

ABSTRACT

In the domain of cloud computing, especially the private cloud’s, current solutions for the IaaS (Infrastructure as a Service) implementation, which enable the administration and the use of virtual and physical resources within the network, using Web and virtualization technologies, remain based on centralized architectures for the monitoring of these resources. Moreover, these solutions don’t include fault-tolerance in their architectures. This may lead to the breaking of the services in case of failure of the system’s central node. In order to contribute to solve this problem, we have proposed a new system based on a distributed monitoring algorithm of the different machines on the network using the privilege turning principle.

The solution uses a tree representation of the different nodes on the network to delegate child nodes of which the role is to oversee the critical parent nodes of the network. This way, an occurring failure at any point of these nodes is automatically detected by the elected child node which dynamically changes its state to get in charge of the functions and role of the leaving node. The system has been applied to IaaS services and has proved its ability to ensure the high availability of these services in a private cloud environment.

Key words: Virtualization, Private cloud computing, Distributed system, Distributed monitoring algorithm, Fault-tolerance.

(13)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

INTRODUCTION GENERALE

Les technologies de l’information et de la communication évoluent et révolutionnent nos modes de vie et de travail. Le cloud computing ou informatique virtuelle, est apparu ces dernières années comme un nouveau modèle de gestion et d’utilisation des systèmes informatiques. Le concept consiste à déporter sur des serveurs distants les traitements et stockages habituellement effectués en local afin d’y accéder sous forme de service.

En fonction des besoins, les services du cloud computing peuvent s’étendre du simple approvisionnement de machines virtuelles, services IaaS (Infrastructure as a service) aux services de type applications SaaS (Software as a service). Plusieurs modes de déploiement de ces services peuvent être employés selon l’ « institut national des normes et de la technologie » des Etats-Unis (National Institute of Standard and Technology NIST) parmi lesquels le mode public et le mode privé.

Déployés en public, les services du cloud computing permettent d’offrir aux utilisateurs des applications ou systèmes informatiques sous forme de service accessible via l’Internet. Ils permettent aux utilisateurs de s’affranchir des tâches de déploiement et d’administration des systèmes informatiques complexes en local, en leur offrant ces derniers suivant un mode de payement à l’usage. Toutefois, selon Galán et al (2009), les offres publiques du cloud computing sont sujettes à des contrôles de type vendor lock-in qui empêchent les utilisateurs de profiter pleinement de l’architecture. Des questions de sécurité et de réseau, soulevées par les auteurs tels que Ginovsky (2011), Subashini et Kavitha (2011), constituent également des facteurs limitant l’adoption des services publics du cloud computing.

En privé, le cloud computing permet d’optimiser et de faciliter l’utilisation et l’administration des ressources informatiques internes, généralement distribuées sur un réseau local, en offrant une haute disponibilité de ces dernières, accessibles de façon dynamique via une

(14)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

plateforme Web. Ce mode de déploiement apporte de nombreux avantages en termes de coût de gestion et de temps d’administration des systèmes informatiques. Si les solutions du cloud computing privé constituent une alternative aux services publics en termes de sécurité et de réseau, elles adoptent cependant des architectures centralisées de supervision des ressources du système et d’exposition des services aux utilisateurs (Nurmi et al 2008; Sempolinski et Thain 2010; Alrwais, 2011) ; ce qui est susceptible de conduire à des ruptures de service en cas de panne du nœud central du système (Naing, 2012). Il est donc nécessaire, en vue d’implémenter un système de cloud computing privé efficace, de concevoir une nouvelle solution qui intègre la tolérance aux pannes en offrant à tous les hôtes du réseau la possibilité d’être élus pour les différentes tâches de supervision afin d’assurer la continuité des services en cas de panne d’un nœud quelconque du système. C’est dans cette optique que s’inscrit le présent projet de fin d’étude qui vise la conception d’une solution de cloud computing privé basée sur un algorithme de supervision distribué.

Le présent mémoire rédigé, en guise de synthèse du travail effectué dans ce contexte, s’organise en trois grandes parties. Dans une première partie, nous passerons en revue les différents concepts du cloud computing et présenterons l’état de l’art dans le domaine. Dans la deuxième partie, nous aborderons la conception de la solution proposée à travers sa modélisation et les différents choix techniques effectués. Dans la troisième partie, nous présenterons les résultats obtenus après tests et simulations pour enfin conclure par une discussion et des perspectives.

(15)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

1. CONTEXTE, JUSTIFICATION ET PROBLEMATIQUE

Dans le but de faciliter le déploiement, l’administration et l’utilisation des systèmes informatiques dans les grands centres de données ou entreprises, un nouveau concept, le cloud computing, a été développé. Trois types de services permettent de mettre en œuvre la facilité d’accès et l’homogénéité de gestion des ressources apportées par ce concept: ce sont les services IaaS (Infrastructure as a Service), les services PaaS (Platform as a Service), et les services SaaS (Software as a Service). Ces différents services du cloud computing visent à offrir respectivement à travers le réseau l’accès à des ressources physiques (stockage, systèmes d’exploitation) sous forme virtuelle, des environnements de développement préconfigurés et adaptés au travail de test et d’exécution d’applications et enfin des applications prêtes à l’usage mises à la disposition des utilisateurs finaux. Ainsi, tous les traitements habituellement effectués en local sont désormais déportés sur des serveurs distants avec pour buts: la mobilité des utilisateurs, la haute disponibilité des ressources, la facilité d’administration, l’accès à distance à partir de simples clients légers à des systèmes (calculateurs) performants, le partage simplifié de ressources, etc.

Consciente des avantages du cloud computing, la société Logisoft-Bénin, spécialisée dans les offres de solutions logicielles, de développement et d’intégration de systèmes d’information (SI) d’entreprise et de fourniture des applications de gestion de la relation clients CRM (Customer RelationShip Management), souhaite déployer en interne un système de cloud computing privé. Le but est de mettre à la disposition de son équipe de développement, des environnements (systèmes d’exploitation) virtuels pour le test des applications ou logiciels développés.

Plusieurs solutions existent dans le domaine du cloud computing permettant le déploiement de l’architecture en privé. On distingue Eucalyptus, OpenNebula, Nimbus, Openstack, etc. Sempolinski et Thain (2010) donnent une vue détaillée de l’architecture de ces solutions et en

(16)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

présentent les avantages et inconvénients des unes par rapport aux autres.

Il s’avère donc que ces solutions, bien qu’éprouvées et souvent employées pour l’implémentation du système en privé, adoptent des architectures centralisées de supervision des différents hôtes du réseau, et d’exposition des services aux utilisateurs ; ce qui est susceptible de conduire à des ruptures de service en cas de panne du nœud central (Naing, 2012). Ainsi, notre travail dans le cadre de ce projet consiste à proposer une nouvelle solution de cloud computing privé supportant la tolérance aux pannes qui désigne une méthode de conception permettant à un système de continuer à fonctionner, éventuellement de manière réduite au lieu de tomber complètement en panne, lorsque l'un de ses composants ne fonctionne plus correctement.

2. OBJECTIFS

L’objectif général visé par le présent travail est la conception d’une solution de cloud computing privé basée sur un algorithme de supervision distribué. De façon spécifique, il s’agira de :

Présenter l'état de l’art du cloud computing, en particulier des solutions privées ;

 Etudier les solutions architecturales existantes dans le domaine du cloud computing privé ;

Proposer une solution pour le cloud privé supportant la tolérance aux pannes dans le réseau ;

 Modéliser le fonctionnement de la solution proposée et montrer sa capacité à assurer la continuité des services IaaS du cloud privé en cas de panne d’un nœud quelconque du système.

(17)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

PREMIERE PARTIE : Synthèse bibliographique

Cette partie vise à exposer les différents concepts liés au cloud computing et à présenter l’état de l’art dans le domaine.

(18)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

CHAPITRE 1. LES CONCEPTS DU CLOUD COMPUTING Introduction

Le cloud computing est un concept assez récent dans le domaine de l’informatique. La première énonciation de ce concept date de 1960 par John McCarthy (Zhang, Cheng, Boutaba, 2010). Il envisageait à cette époque que les matériels, équipements, ou installations informatiques pouvaient être délivrés aux utilisateurs sous forme de services. Ce concept a évolué dans le temps et est actuellement à une étape de concrétisation.

1.1. Définition

Plusieurs approches de définitions ont été proposées par différents auteurs. Mais la définition la plus couramment adoptée est celle du National Institute of Standard and Technology (NIST) formulée en ces termes : “cloud computing is a model for enabling ubiquitous, convinient, on-demand network access to a shared pool of configurable computing ressources that can be rapidly provisioned and released with minimal management effort or provider interaction”. C’est donc un modèle permettant un accès réseau convenable, à la demande et omniprésent à un pool de ressources configurables et partagées pouvant être rapidement approvisionnées et libérées avec un minimum d’effort ou interaction du fournisseur.

Dans son document intitulé « Livre blanc pour un leadership éclairé » réalisé en 2010 dans le cadre de clarifier le flou entourant le cloud computing, la société de construction de matériels informatiques IBM précise que le cloud computing est à la fois un mode de travail pour les utilisateurs et un modèle de gestion. Par mode de travail, il expose qu’il s’agit d’une informatique d’un nouveau genre où les applications, les données et les ressources sont offertes aux utilisateurs sous la forme de services distribués sur le réseau. Par gestion, il énonce qu’il s’agit d’une façon de gérer un grand

(19)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

nombre de ressources virtualisées qui peuvent être installées sur plusieurs sites de manière à les présenter comme une ressource unique. L’accès à ces ressources se faisant par la suite d’une façon simple avec beaucoup plus de flexibilité à l’aide d’une plateforme Web (Figure 1.1).

Figure 1.1: Cloud computing.

1.2. Les services du cloud computing

Il existe généralement trois types de services dans le cloud computing.

Ces services s’organisent en trois niveaux successifs : le niveau infrastructure (IaaS), le niveau plateforme (PaaS) et le niveau application (SaaS) (Figure 1.2).

Figure 1.2: Les différentes couches des services du cloud computing (Sun et al, 2011).

(20)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

1.2.1. Infrastructure as a Service (IaaS)

Les services IaaS du cloud computing permettent de mettre à la disposition des utilisateurs des ressources matérielles (réseau, stockage, systèmes d’exploitation) accessibles sous forme virtuelle. Ces ressources sont généralement de type serveur équivalent à des machines physiques pouvant être utilisées pour des opérations telles que l’hébergement, le test d’applications ou les travaux de recherche en réseau informatique. L’exemple le plus souvent cité est la plateforme EC2 (Elastic Compute Cloud) d’Amazon.

Les offres d’Amazon sont des machines virtuelles (Virtual Machine VM en anglais) de tailles prédéfinies mises en location pour l’exécution d’applications Web. Ces services peuvent également être employés pour le bureau à distance (VDI1) afin d’allouer dynamiquement des machines à différents utilisateurs (Cristofaro et al, 2010). L’intérêt consiste à faciliter le déploiement de nouvelles applications pour les utilisateurs, uniformiser les environnements de travail et accroître la sécurité des systèmes. Les ressources virtuelles des services IaaS sont généralement accessibles grâce aux protocoles de prise de contrôle à distance tels que SSH (Secure Shell), VNC (Virtual Network Computing) ou encore le protocole RDP (Remote Desktop Protocol). Les éléments constitutifs des services IaaS du cloud computing selon Sun et al (2011) sont :

Le centre d’administration du cloud : C’est l’interface livrée aux utilisateurs, accessible via un portail Web. Il permet l’utilisation des ressources du cloud mais aussi leur administration. Le centre d’administration du cloud IaaS reçoit les requêtes de la part des utilisateurs et crée les ressources demandées à leur endroit.

Le centre des ressources du cloud : Il est composé des ressources physiques utilisées pour l’exécution des services du cloud. Ces machines physiques représentent généralement les hôtes utilisées pour accueillir et exécuter les machines virtuelles de l’infrastructure.

Les hôtes ainsi que les services qu’ils exécutent à travers les machines

1 Virtual Desktop Infrastructure

(21)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

virtuelles sont tous administrés depuis le centre d’administration du cloud.

Le centre de stockage du cloud : Il est composé des machines physiques servant d’espaces de stockages des images systèmes et fichiers de configuration des machines virtuelles du cloud.

Afin de montrer les suites d’opérations menées par un utilisateur des services IaaS du cloud computing, Sun et al (2011) numérotent les opérations effectuées durant le processus de 1 à 9 (voir figure 1.3).

Figure 1.3: Les éléments constitutifs des services IaaS du cloud computing (Sun et al, 2011).

1.) L’utilisateur émet une requête d’utilisation de ressource à l’endroit du portail des services.

2.) Le portail des services (généralement une application Web) renvoie la requête vers le serveur d’orchestration.

(22)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

3.) Le serveur d’orchestration recherche une machine physique adéquate pour créer et exécuter la machine virtuelle demandée. Cette recherche se base sur les caractéristiques des machines physiques du réseau.

4.) Le serveur d’orchestration choisit une machine physique de performance optimale et envoie la commande de création de machine virtuelle.

5.) Le serveur d’orchestration choisit un modèle de machine virtuelle à partir du centre de stockage et l’envoie à la machine physique précédemment sélectionnée.

6.) Le serveur d’orchestration démarrera la machine virtuelle sur l’hôte physique si la machine est correctement chargée. Dans le cas contraire, une autre machine est sélectionnée à l’étape 4.

7.) Si la machine virtuelle démarre correctement, l’utilisateur peut y accéder via les protocoles d’accès à distance tels que RDP, VNC, ou SSH.

Les étapes 8 et 9 concernent la mise à jour des informations du système et des services de supervision.

1.2.2. Platform as a Service (PaaS)

Les services du type PaaS disposent des environnements spécialisés au développement d’applications comprenant les outils et les modules nécessaires pour ce type de travail. Selon Etchevers et al (2011), il s’agit des environnements d’exécution qui permettent de gérer le cycle de vie des applications. Ce cycle de vie comprend notamment les phases de conception, de déploiement et plus généralement d’administration des applications.

Google App Engine2, Microsoft Azure3 sont des exemples de services PaaS. La plateforme de Microsoft offre la possibilité de modifier directement les

2 Plateforme de développement d’applications web dans le cloud proposée par Google.

<http://code.google.com/appengine/>, consulté le 20/06/2012

3< http://www.windowsazure.com/fr-fr/>, consulté le 20/06/2012

(23)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

applications en ligne grâce aux techniques de bureau à distance (Galloway, Vrbsky et Smith, 2011).

1.2.3. Software as a Service (SaaS)

Les services SaaS du cloud computing permettent de mettre à la disposition des utilisateurs des applications prêtes à l’emploi. A la différence des applications Web ordinaires, les services SaaS du cloud computing sont caractérisés par un haut niveau d’abstraction qui permet d’adapter l’application à un cas particulier d’usage. Il s’agit entre autres des applications de gestion de la relation clients (CRM4), des applications de planifications de ressources d’entreprises (ERP5) ou des applications de messagerie électronique. Parmi les solutions SaaS existantes, on peut noter comme exemples la suite bureautique Google Apps6 for Business en mode SaaS, les services de messagerie électronique tels que Gmail, etc.

Figure 1.4: Les services SaaS du cloud computing (Armbrust et al, 2009).

4<www.salesforce.com/fr/crm/>, consulté le 20/06/2012

5 Enterprise Resource Planning

6< http://www.google.com/intl/fr/enterprise/apps/business/>,consulté le 29/12/12.

(24)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

1.3. Les modèles de déploiement du cloud computing

Il existe quatre modèles de déploiement des solutions du cloud computing. Selon que l’architecture soit publique, privée, communautaire ou hybride, on parle respectivement du cloud computing public, du cloud computing privé, du cloud computing communautaire ou du cloud computing hybride.

1.3.1. Le modèle public (Public cloud computing)

Le cloud computing public représente les offres du cloud livrées, par des tiers fournisseurs, aux entreprises dans un mode de payement à l’usage.

Il permet aux utilisateurs de se priver des difficultés liées au déploiement des infrastructures informatiques complexes en interne (Armbrust et al, 2009). La gestion des infrastructures est ainsi confiée aux fournisseurs de services et le payement se fait à l’usage par les clients. Les services sont fournis via l’Internet et les utilisateurs y accèdent à volonté.

Cette forme d’utilisation des systèmes informatiques permet aux entreprises de se concentrer sur les processus métiers représentant le fondement de leurs activités en confiant la gestion de leurs systèmes informatiques aux fournisseurs distants. Plusieurs autres avantages sont également liés aux services publics : il s’agit de la mobilité à travers un accès omniprésent et rapide aux ressources, le partage de ressources notamment des machines de grandes performances accessibles à partir de simples clients légers, etc. Les grands acteurs de ces services sont Google, Amazon et Salesforce7.

7 <http://www.salesforce.com/fr/cloudcomputing/>, consulté le 20/06/2012

(25)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

1.3.2. Le modèle privé (Private cloud computing)

Dans un cloud privé, l’infrastructure est déployée en interne à une organisation ou entreprise et gérée par la direction informatique de cette dernière. Le cloud privé permet la maximisation de l’utilisation effectuée des ressources disponibles grâce aux techniques de la virtualisation employée (Dillon et al, 2010). Le cloud privé offre également la flexibilité et l’agilité dans l’exploitation des ressources informatiques disponibles.

Dans les environnements de forte utilisation des systèmes informatiques tels que les universités ou les grandes entreprises, il est également utile de disposer de l’infrastructure en privé. Dans le cas des universités par exemple, les machines virtuelles du service IaaS sont octroyées dynamiquement aux étudiants pour accomplir les tâches d’expérimentation en réseau informatique. L'université de Caroline du Nord des Etats-Unis (North Carolina State University) emploie le cloud privé IaaS à travers son projet VCL (Virtual Computing Laboratory) (Averitt et al, 2007).

L’objectif consiste à mettre en œuvre de façon rapide des logiciels didactiques (didacticiels) utilisés par les étudiants (MatLab8, Autodesk9, etc.) en embarquant ces derniers dans des machines virtuelles et en les attribuant aux étudiants suivant un mode de réservation ou de demande de la part de ces derniers. L’université Hochschule Furtwangen University (HFU) suit la même logique en développant le projet cloudIA (Cloud Infrastructure and Application) (Doelitzscher et al, 2011), qui consiste également à répondre aux demandes en ressources informatiques de la part des étudiants pour les travaux du e-learning (Figure 1.5).

8 Logiciel de calcul technique destiné aux ingénieurs et scientifiques

<http://www.mathworks.com/products/matlab/>, consulté le 25/09/2012

9 Logiciel de dessin pour la représentation en 3D des figures et architectures géométriques destiné aux ingénieurs. <http://www.autodesk.fr/>, consulté le 25/09/2012

(26)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Figure 1.5: Le cloud privé de l’université HFU (Doelitzscher et al, 2011).

1.3.3. Le modèle communautaire (Community cloud)

Dans un cloud communautaire, l’infrastructure est déployée pour un usage exclusif par un groupe d’entreprises ou d’organisations partageant les mêmes intérêts. Dans une telle architecture, l’administration du système peut être effectuée par l’une ou plusieurs des organisations partageant les ressources du cloud.

1.3.4. Le modèle hybride (Hybrid cloud)

Le cloud hybride est la mise en commun des ressources du cloud privé et public. Dans ce type d’architecture, les ressources critiques du client sont hébergées en local tandis que celles louées auprès des fournisseurs sont accédées à distance via l’Internet ou un réseau privé virtuel VPN10.

Conclusion partielle

Nous venons de voir dans ce chapitre les concepts liés au cloud computing, son architecture, ses services et leurs modèles de déploiement. Le chapitre suivant sera consacré aux différentes technologies impliquées dans l’élaboration d’une solution de cloud computing.

10 Virtual Private Network : réseau privé virtuel.

(27)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

CHAPITRE 2. LES TECHNOLOGIES DU CLOUD COMPUTING

Introduction

Les solutions du cloud computing se basent sur quelques technologies indispensables. Il s’agit de la virtualisation et des technologies du Web. La virtualisation permet de fournir les ressources nécessaires au support des applications du cloud. Elle est indispensable dans la mise en place des services IaaS en pourvoyant aux utilisateurs les machines virtuelles disponibles. Les technologies du Web permettent d’un autre côté de livrer les services aux utilisateurs à travers des portails Web. Elles permettent également d’assurer l’interopérabilité des différentes solutions existantes en fournissant des méthodes de communication de haut niveau telles que les services Web.

2.1. La virtualisation

La virtualisation est l’ensemble des techniques matérielles ou logicielles employées pour faire tourner plusieurs systèmes d’exploitation sur une même machine physique (Bonnet, 2008). Le système d’exploitation ainsi virtualisé est appelé système invité (guest system) et le système d’exploitation servant d’accueil s’appelle le système hôte (host system). La machine physique utilisée est appelée machine hôte tandis que celle émulée au système invité est la machine virtuelle. Une machine virtuelle peut donc être vue comme un logiciel au même titre qu’un navigateur Web qui fournit au système d’exploitation invité un environnement similaire à celui d’une machine physique. La figure 2.1 illustre le principe de la virtualisation.

(28)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Figure 2.1: Principe de la virtualisation (adapté du schéma de la virtualisation complète de Bonnet, 2008).

Ainsi comparée à un simple logiciel (ici un navigateur Web), une machine virtuelle est constituée d’un ensemble de fichiers gérés par le système hôte.

En pratique, le disque dur de la machine virtuelle est la plupart du temps géré comme un fichier volumineux pour le système hôte, alors que la mémoire vive dont le système invité dispose est réservée par le programme de la machine virtuelle.

Il existe plusieurs catégories de virtualisation utilisant chacune des technologies différentes.

2.1.1. L’isolation

L’isolation ou le cloisonnement consiste à diviser un système d’exploitation en plusieurs espaces ou contextes. Chaque contexte est géré par le système d’exploitation hôte comme un processus isolé dont il est théoriquement impossible d’en sortir. Avec l’isolation, l’espace noyau n’est pas différencié, il est unique, partagé entre les différents contextes. Le partage du même noyau limite cette technologie aux environnements de mêmes types. On ne peut faire cohabiter ensemble que des distributions issues d’un même noyau.

Le projet le plus connu basé sur l’isolation est openVZ. Il permet à un serveur physique d’exécuter plusieurs instances de systèmes d’exploitation isolés. OpenVZ offre moins de flexibilité dans le choix du système

(29)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

d’exploitation. En effet le système d’exploitation invité et hôte doivent être de type Linux partageant le même noyau, contrainte logique de la technique basée sur l’isolation.

2.1.2. La virtualisation complète

La virtualisation complète consiste à émuler l’intégrité d’une machine physique pour le système invité. Le système invité croit s’exécuter sur une véritable machine physique. La machine virtuelle est chargée d’émuler cet environnement de machine physique. Son rôle consiste à transformer les instructions du système invité en instructions pour le système hôte à travers la couche d’abstraction de ce dernier. Les systèmes invités n’ont donc pas d’accès direct au matériel, mais uniquement aux couches d’abstraction du système hôte. La machine virtuelle émule donc de manière logique tout le matériel habituel de l’architecture d’un ordinateur physique. Ainsi, la virtualisation complète permet l’exécution de n’importe quel type de système d’exploitation comme un système invité (Figure 2.2).

Figure 2.2: La virtualisation complète (Bonnet, 2008).

(30)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Les solutions actuelles les plus connues de la virtualisation complète sont : VMware et VirtualBox. Elles permettent d’émuler le comportement d’un ordinateur réel auprès du système invité. VMware est cependant, le leader dans le domaine de la virtualisation complète grâce à la performance de ces produits. Elle est de nature commerciale mais dispose des versions gratuites offrant moins de performance. La solution VMware est de plus en plus confrontée à l’évolution de virtualBox, qui est une solution open source.

2.1.3. La para-virtualisation

La para-virtualisation (en anglais para-virtualization) est très proche du concept de la virtualisation complète dans le sens où c’est toujours un système d’exploitation complet qui s’exécute sur le matériel émulé par une machine virtuelle; cette dernière s’exécutant au dessus d’un système hôte.

Toutefois, dans une solution de para-virtualisation, le système invité est modifié pour être exécuté par la machine virtuelle (Figure 2.3). Les modifications effectuées visent à rendre le système invité au courant du fait qu’il s’exécute dans une machine virtuelle. De ce fait, il pourra collaborer plus étroitement avec le système hôte, en utilisant une interface spécifique (interface para-virtualisée).

Figure 2.3: La para-virtualisation (Bonnet, 2008).

(31)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

La solution de Microsoft pour la virtualisation dénommée Hyper-V11 est considérée comme un système de para-virtualisation.

2.1.4. Les systèmes à hyperviseur

L’utilisation d’un hyperviseur est en quelque sorte une évolution logique de la para-virtualisation. Dans les technologies précédentes, le système hôte était le seul à avoir un accès direct au matériel physique. Avec un hyperviseur, le système hôte partage cet accès avec les systèmes invités.

Au démarrage de l’ordinateur, c’est normalement le système d’exploitation qui prend la main et le contrôle du matériel. Dans le cas de l’utilisation d’un hyperviseur, c’est un système minimaliste (l’hyperviseur) qui prend le contrôle du matériel. Ensuite, des systèmes d’exploitation complets pourront être exécutés par-dessus l’hyperviseur (Figure 2.4).

Figure 2.4: Principe d’un hyperviseur (Bonnet, 2008).

Dans une architecture à hyperviseur, les systèmes d’exploitation exécutés ont presqu’un accès direct au matériel physique. Le rôle de l’hyperviseur est donc de s’assurer qu’ils n’accèdent qu’aux ressources qui leur sont autorisées sans perturber le fonctionnement des autres systèmes.

Xen12 et hyper-V sont les solutions majeures dans ce domaine.

11< http://www.microsoft.com/en-us/server-cloud/hyper-v-server/>, consulté le 20/08 2012

12 <http://www.xen.org/>, consulté le 20/08 2012

(32)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Xen est un moniteur de machines virtuelles VMM (Virtual Machine Monitor) open source pour l’architecture x8613 qui permet l’exécution simultanée de plusieurs OS (Operating System) en fournissant une isolation des ressources et un confinement des différents environnements. Dans les terminologies utilisées par Xen, une machine virtuelle est appelée domaine.

Au démarrage sur la machine hôte, Xen crée un domaine privilégié appelé dom0 (domaine 0), qui accède à l’interface de contrôle et exécute l’application de gestion des domaines virtuels. Le domaine 0 permet de contrôler le lancement et l’arrêt des autres domaines, domU (User domain), dans lesquels les OS invités sont exécutés. L’utilisation de Xen nécessite que les systèmes invités soient portés (modifiés pour utiliser les pilotes de l'hyperviseur) avant d’être installés. Cette contrainte dénote du principe même de la para-virtualisation. La nécessité de porter les systèmes invités pose des problèmes concernant les systèmes d’exploitation propriétaires ; Ainsi a-t-on introduit les possibilités de la virtualisation assistée par le matériel qui résolvent ce problème en même temps qu’elles remédient aux problèmes de performances dont souffre la virtualisation complète.

2.1.5. La virtualisation assistée par le matériel

La para-virtualisation ainsi que les solutions à hyperviseur nécessitent de porter les systèmes invités pour être capables de communiquer avec l’hyperviseur. La virtualisation complète échappe à cette contrainte de compatibilité au détriment d’une perte de performances à son niveau. Afin de conserver le gain atteint, en termes de rapidité et de performances avec les systèmes à hyperviseur sans toutefois passer par un portage des systèmes invités, la virtualisation assistée par le matériel en anglais Hardware Assist Virtualization consiste à introduire des fonctionnalités de la virtualisation directement dans les processeurs des machines physiques. Les processeurs Intel-VT (Intel Virtualization

13 La famille x86 regroupe les microprocesseurs compatibles avec le jeu d'instructions de l'Intel 8086. Cette série est nommée IA-32 (pour Intel architecture 32 bits) par Intel pour ses processeurs à partir du Pentium.

(33)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Technology) et AMD-V (Advanced Micro Devices Virtualization) permettent déjà cette forme de virtualisation et rendent ainsi possibles des solutions de la virtualisation complète des systèmes invités non modifiés avec de très bonnes performances (Santy, 2010).

Les solutions de virtualisation reconnues dans ce domaine sont KVM14 et Xen. KVM pour Kernel-based Virtual Machine est intégrée aux systèmes GNU/Linux d’un noyau 2.6.20 ou supérieur et emploie la virtualisation complète mais aussi la para-virtualisation (Schellenberger, 2011). On retrouve également Xen dans le domaine de la virtualisation matérielle ; ce qui rend complète cette solution qui reste la plus utilisée dans le domaine du cloud computing. Elle est cependant de plus en plus concurrencée par KVM dont l’architecture est plus simplifiée et qui de surcroit est intégré aux systèmes Linux ; ce qui facilite son adoption.

2.1.6. La migration de machines virtuelles

La migration d’une machine virtuelle consiste à transférer cette machine d’un hôte à un autre (Figure 2.5). Elle permet de résoudre entre autres les problèmes de tolérance aux pannes, de la continuité des services lorsqu’un hôte particulier doit être remplacé pour des tâches de maintenance ou de mise à niveau des services hébergés (Clark et al, 2005). Il existe deux types de migrations : La migration à froid en anglais cold migration et la migration à chaud, en anglais live migration.

14 <http://www.linux-kvm.org/page/Main_Page>, consulté le 20/08 2012

(34)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Figure 2.5: Migration de machine virtuelle (Zhao et Figueiredo, 2007).

La migration à froid (cold migration)

La migration à froid d’une machine virtuelle consiste à déplacer l’ensemble des fichiers de spécification et d’images systèmes de la machine d’un hôte d’origine à un hôte de destination. Dans une migration à froid, l’état de la machine reste éteint pendant le transfert.

La migration à chaud (live migration)

La migration à chaud consiste à transférer une machine virtuelle en cours de fonctionnement d’un hôte à un autre avec maintien de l’état de la machine pendant le processus du transfert (Clark et al, 2005). Ce type de migration permet de maintenir les services des utilisateurs pendant le temps du processus. L’utilisateur des services hébergés sur la machine n’a aucune conscience d’un quelconque changement de l’hôte abritant cette dernière.

(35)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

2.1.7. Synthèse sur la virtualisation

Dans la section 2.1, nous avons présenté quatre techniques de virtualisation : l’isolation, la para-virtualisation, la virtualisation complète ainsi que la notion de la virtualisation assistée par le matériel.

Dans le tableau 2.1, nous pouvons remarquer qu’en termes de performances, les solutions de la virtualisation employant les technologies de la para-virtualisation et les techniques de la virtualisation matérielle sont classées en tête de liste.

Du côté de la para-virtualisation, Xen, KVM et Hyper-V sont les implémentations disponibles. Si ces solutions emploient la même technologie, Xen est plus utilisée car est une solution gratuite et open source, tandis que Hyper-V est une version libre et réduite d’une solution payante et plus complète nommée virtualPC. Les deux solutions (Hyper-V et virtualPC) fonctionnent sur les systèmes d’exploitation et serveurs Windows.

Tableau 2.1 : Synthèse des techniques de virtualisation (adaptée de Mahjoub, 2011).

Isolation Para- virtualisation

Virtualisation complète

Virtualisation matérielle (complète) Conscient de

la virtualisation

Non Oui Non Non

Performance

++ +++ + +++

Simplicité

+++ + ++ ++

Exemples de

solutions OpenVZ Xen, Hyper-V, KVM

VirtualBox, VMWare

KVM XEN Types

Eléments

(36)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Concernant KVM, elle est originellement implémentée pour la virtualisation matérielle. Les fonctionnalités de la para-virtualisation ne sont rendues possibles qu’avec l’utilisation d’un outil externe appelé Virtio15. La para- virtualisation est cependant la solution la moins facile à mettre en œuvre. En ce qui concerne Xen, il s’agit d’un système minimaliste, représenté par un noyau Linux xenifié16 qui est installé et qui fonctionne à part entière, de façon indépendante du système Linux présent sur la machine physique.

La virtualisation matérielle offre également de très bonnes performances grâce aux instructions de la virtualisation introduites directement dans les processeurs des machines physiques. Xen et KVM sont les solutions leaders dans ce domaine. Si KVM est plus simple et facile à mettre en œuvre, elle est cependant frappée par sa jeunesse dans le domaine de la virtualisation. Ce qui limite son adoption par les entreprises par rapport à Xen. La virtualisation matérielle est une amélioration des performances observées au niveau de la virtualisation complète

« traditionnelle » implémentée par VMware et VirtualBox.

OpenVZ est la solution basée sur la technique d’isolation offrant une bonne performance. Elle est limitée par la nécessité de virtualiser uniquement les systèmes Linux basés sur un même noyau. La technique d’isolation employée rend cette solution plus facile à mettre en œuvre ; chaque machine virtuelle étant un processus à part entière exécuté par le système hôte.

15 Virtio (Virtual Input Output) est une API (Application Programming Interface) qui permet aux machines invitées d’accéder directement au matériel géré par l’hôte. <http://www.linux-kvm.org/page/Virtio>, consulté le consulté le 20/08 2012.

16 Noyau linux modifié et adapté à la technologie de xen et fonctionnant comme un système d’exploitation à part entière.

(37)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

2.2. Les services Web

Un Service Web est un programme informatique permettant la communication et l'échange de données entre applications et systèmes hétérogènes dans des environnements distribués. Il s'agit d'un ensemble de fonctionnalités exposées sur Internet ou sur un Intranet, pour des applications ou machines, sans intervention humaine, et en temps réel17. Le terme temps réel signifie que les services peuvent être invoqués à tout moment avec une réponse instantanée de la part des applications.

Les solutions de cloud computing se basent sur les services Web à la fois pour l’exposition des fonctionnalités du système sur Internet en respectant les standards tels que le WSDL18 ou l’UDDI19, et aussi pour l’interaction des différents composants internes du système en se basant sur les protocoles de communication tels que le XML-RPC, le SOAP ou le REST.

2.2.1. XML-RPC

La technologie XML-RPC repose, comme son nom l'indique, sur XML (Extensible Markup Language) et sur le protocole RPC (Remote Procedure Calling). Tandis qu'XML apporte l'indépendance vis-à-vis de la plateforme d'exécution, RPC apporte la possibilité d'effectuer des appels de procédures à distance. Il s’agit d’une spécification simple et d’un ensemble de codes qui permettent à des processus s'exécutant dans des environnements différents de faire des appels de méthodes à travers le réseau. Les processus utilisent la norme XML pour le codage des données et le protocole HTTP20 pour leur transport (Laurent, Johnston et Dumbill, 2001).

17 http://fr.wikipedia.org/wiki/Service_Web consulté le 05/10/2012

18 Web Services Description Language

19 Universal Description Discovery and Integration

20 Hypertext Transfer Protocol

(38)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

2.2.2. SOAP

SOAP (Simple Object Access Protocol) est un protocole basé sur XML permettant l’échange des données dans des environnements distribués (Box et al, 2000). Il est constitué essentiellement de trois composants : une enveloppe, contenant des informations sur le message lui-même afin de permettre son acheminement et son traitement, un ensemble de règles de codage pour les types de données des instances des applications définies et une convention pour l’invocation des méthodes à distance. Il représente un protocole plus complet que le XML-RPC mais à la fois plus complexe.

2.2.3. REST

REST (Representational State Transfer) repose sur le même principe de fonctionnement que les Web Services. Elle s'appuie sur les protocoles Internet, dont HTTP, pour véhiculer des messages décrits au format XML.

Cependant, la principale différence qui réside entre REST et les autres protocoles est qu’il ne s’agit pas d’un standard mais d’un style architectural qui se veut simple pour l’échange de données entre applications (Costello, 2007).

2.3. Le Web 2.0

Le Web 2.0 représente une avancée dans l’utilisation des technologies du Web. Son but est d’améliorer la créativité, la collaboration et le partage d’informations (Murugesan, 2007). Il est basé sur les technologies telles que le HTML, le CSS21, le XML et le JavaScript. L’utilisation en mode asynchrone du XML sur HTTP avec le JavaScript est connu sous l’acronyme « Ajax » (Asynchronous JavaScript And XML). Les services du cloud computing sont par nature des applications Web dynamiques qui fournissent aux utilisateurs les ressources demandées (WANG et Laszewski, 2008).

21 Cascading Style Sheet

(39)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

Conclusion partielle

Dans ce deuxième chapitre, nous avons présenté les technologies utilisées dans le domaine du cloud computing. Il s’agit de la virtualisation et des technologies du Web. Le chapitre suivant abordera l’état de l’art des solutions du cloud computing en insistant particulièrement sur les architectures de supervision employées dans le domaine du cloud computing privé.

(40)

Conception d’une solution de cloud privé basée sur un algorithme de supervision distribué. Par CODO P. Paterne

CHAPITRE 3. LES SOLUTIONS DU CLOUD COMPUTING

Introduction

Dans le domaine du cloud computing, plusieurs acteurs sont impliqués : les fournisseurs d’offres publiques et ceux proposant le système sous forme de logiciels pouvant être employés en privé. Les solutions du cloud sont ainsi classées en deux grandes catégories : les solutions propriétaires et les solutions open source.

3.1. Les solutions du cloud computing public

Actuellement, trois acteurs potentiels existent sur le marché du cloud computing public. Windows par sa plateforme Azure, Google par sa plateforme de développement d’applications AppEngine et Amazon par ses services EC2 de l’informatique virtuelle.

3.1.1. Windows Azure

Azure est une plateforme de Microsoft pour les services PaaS du cloud computing. Il s’agit d’une plateforme de développement d’applications fournissant les services d’exécution et d’administration d’applications en offrant les outils nécessaires. Elle permet aux développeurs de programmer et de stocker directement leurs applications sur Internet en leur allouant dynamiquement des machines virtuelles de son centre de données (data center). Windows Azure est une plateforme flexible qui supporte plusieurs langages de programmations tels que .Net, C#, Java, PHP, Python, etc. De plus, elle supporte les standards et protocoles tels que SOAP, XML, REST.

L’infrastructure soutenant la plateforme Azure est basée sur la solution de virtualisation Xen (Letaifa et al, 2010).

Références

Documents relatifs

En revanche, elle n’assure pas la disponibilité constante du serveur de données puisque ce dernier peut être arrêté pour cause de panne pendant une période allant de

Juliette SÉNÉCHAL, Maître de Conférences HDR à l'Université Lille 2 Nicolas DESRUMAUX, Ingénieur de Recherches à l’Université Lille 2. Frais d'inscription : 30 € (gratuit

In particular, Cloud computing can offer a very powerful, reliable, predictable and scalable computing infrastructure for the execution of multi-agent systems implementing complex

VoltDB [13] est une nouvelle solution open-source qui est pens´ee pour ˆetre performante sur chaque nœud et capable de passer `a l’´echelle (notamment grˆace au fait qu’il

Create a class that extends AsyncTask To start the new thread, call the AsyncTask's execute method When execute is called, Android does the following: 1.. runs onPreExecute in the

Mobile device HTTP protocol Cloud Ressource request (service)/ Client initiates communication. Retrieve new data / Client decides of data updates checks on

•1) Associate a Looper with the thread. •2) The Handler processes only Runnables. Hence, it is not required to implement Handler.handleMessage. •3) Post a long task to be executed

Sur des processeurs ayant les instructions de virtualisation matérielle (AMD-V et Intel VT), le système d’exploitation invité n’a plus besoin d’être modifié pour pouvoir