Vous êtes sur la page 1sur 87

N° d’ordre : 04 / STI / TCO Année Universitaire : 2014 / 2015

UNIVERSITE D’ANTANANARIVO
----------------------
ECOLE SUPERIEURE POLYTECHNIQUE
-----------------------
DEPARTEMENT TELECOMMUNICATION

MEMOIRE DE FIN D’ETUDES

En vue de l’obtention

Du DIPLOME de MASTER à VISEE PROFESSIONNELLE

Titre : Ingénieur
Mention : Télécommunication
Parcours : Système de Traitement de l’Information (STI)

Par : MANANJARASOA Onjanohasoavina


Joseph Ruphin

ETUDE ET MISE EN PLACE DES PLATEFORMES DE


CLOUD COMPUTING DE TYPE IAAS

Soutenu le 04 mars 2016 à 08h devant la Commission d’Examen composée de :

Président :
M. RAKOTOMALALA Mamy Alain

Examinateurs :
M. Boto ANDRIANANDRASANA Jean Espérant

M. RAJAONARISON Tianandrasana Roméo

M. ANDRIAMANALINA Ando Nirina

Directeur de mémoire :
M. RATSIHOARANA Constant
REMERCIEMENTS

« Chaque efforts est une réussite. »

En préambule de ce mémoire, il m’est particulièrement agréable d’exprimer mes remerciements au


Seigneur de m’avoir donné la force de mener à bien l’élaboration de ce mémoire de fin d’études.

Je tiens à remercier sincèrement Monsieur ANDRIANAHARISON Yvon Dieudonné, Professeur


titulaire, Directeur de l’Ecole Supérieure Polytechnique d’Antananarivo.

Je tiens à témoigner ma reconnaissance et ma gratitude les plus sincères à Monsieur


RATSIHOARANA Constant, Maître de Conférences, qui, en tant que Directeur de ce mémoire,
s'est toujours montré à l'écoute et très disponible tout au long de sa réalisation.

J’exprime également ma gratitude aux membres de jury, présidés par Monsieur


RAKOTOMALALA Mamy Alain, Maître de Conférences, Responsable de la Mention
Télécommunication, Enseignant-Chercheur, qui ont voulu examiner ce travail :
 Monsieur Boto ANDRIANANDRASANA, Assistant d’Enseignement et de Recherche
 Monsieur RAJAONARISON Tianandrasana Roméo, Docteur en Télécommunication
 Monsieur ANDRIAMANALINA Ando Nirina, Maître de conférences

Ce travail de mémoire n’aurait pu être mené de façon efficace et rigoureuse en parallèle à ma


formation académique sans l’aide des différents enseignants et personnels administratifs de l’Ecole,
à qui j’adresse toute ma gratitude.

Finalement, j’exprime ma reconnaissance à mes plus proches soutiens, ma mère, pour son aide, ses
sacrifices et son amour qui a toujours nourri en moi cette volonté d’aller en avant. J'adresse mes
plus sincères remerciements à tous mes proches et amis, qui m'ont toujours soutenu et encouragé au
cours de la réalisation de ce mémoire.

Merci à tous et à toutes.

i
TABLE DES MATIERES

REMERCIEMENTS ...................................................................................................................................... i
TABLE DES MATIERES ............................................................................................................................ ii
NOTATIONS ET ABREVIATIONS .......................................................................................................... vi
INTRODUCTION GENERALE.................................................................................................................. 1
CHAPITRE 1 ................................................................................................................................................. 2
CLOUD COMPUTING CONCEPT ET TERMINOLOGIE .................................................................... 2
1.1 Introduction ......................................................................................................................................... 2

1.2 Historique ............................................................................................................................................ 2

1.3 Généralités ........................................................................................................................................... 3

1.3.1 Définitions ..................................................................................................................................... 3

1.4 Eléments constitutifs du Cloud Computing ...................................................................................... 4

1.4.1 Virtualisation ................................................................................................................................ 4

1.4.2 Datacenter ..................................................................................................................................... 4

1.4.3 Plateforme collaborative ............................................................................................................... 5

1.5 Modèles de déploiement du Cloud Computing ................................................................................ 5

1.5.1 Cloud public .................................................................................................................................. 5

1.5.2 Cloud privé .................................................................................................................................... 6

1.5.3 Cloud hybride ................................................................................................................................ 7

1.6 Services du Cloud Computing ........................................................................................................... 8

1.6.1 IaaS (Infrastructure as a Service) ................................................................................................ 8

1.6.2 PaaS (Plateform as a Service) ...................................................................................................... 9

1.6.3 SaaS (Software as a Service) ...................................................................................................... 10

1.6.4 Avantages et inconvénients des services .................................................................................... 13

1.7 Propriétés fondamentales des services ............................................................................................ 14

1.7.1 Haute disponibilité ...................................................................................................................... 14

1.7.2 Passer à l’échelle ........................................................................................................................ 14

1.7.3 Elasticité ...................................................................................................................................... 15

1.7.3.1 Autres paramètres qui caractérisent l’élasticité .................................................................... 16

ii
1.8 Avantages et inconvénients du Cloud Computing ......................................................................... 19

1.8.1 Avantages .................................................................................................................................... 19

1.8.2 Inconvénients .............................................................................................................................. 19

1.9 Caractéristiques spécifiques et capacités ........................................................................................ 20

1.10 Cloud Computing et Sécurité ......................................................................................................... 21

1.10.1 Confidentialité........................................................................................................................... 21

1.10.2 Intégrité ..................................................................................................................................... 22

1.10.3 Disponibilité .............................................................................................................................. 22

1.11 Cloud Computing et Clusters......................................................................................................... 22

1.12 Conclusion ....................................................................................................................................... 24

CHAPITRE 2 ............................................................................................................................................... 25
ANALYSE ET COMPARAISON DES ENVIRONNEMENTS CLOUD EXISTANT ......................... 25
2.1 Introduction ....................................................................................................................................... 25

2.2 Analyse des solutions existant .......................................................................................................... 25

2.2.1 Solutions propriétaires................................................................................................................ 25

2.2.1.1 VMwareCloud ...................................................................................................................... 25

2.2.1.2 Office 365............................................................................................................................. 26

2.2.1.3 Windows Azure .................................................................................................................... 26

2.2.2 Solutions Open Source ............................................................................................................... 27

2.2.2.1 Eucalyptus ............................................................................................................................ 27

2.2.2.2 OpenNebula .......................................................................................................................... 28

2.2.2.3 OpenStack ............................................................................................................................ 29

2.3 Comparaison entre les logiciels existant du Cloud Computing .................................................... 29

2.4 Choix de la solution à déployer ........................................................................................................ 31

2.5 OpenStack .......................................................................................................................................... 32

2.5.1 Présentation ................................................................................................................................ 32

2.5.2 Architecture................................................................................................................................. 34

2.5.2.2 OpenStack Compute (Projet nova) ....................................................................................... 35

iii
2.5.2.3 OpenStack Objet Storage (Projet Swift)............................................................................... 37

2.5.2.4 OpenStack Imaging Service (Projet Glance) ........................................................................ 38

2.6 Conclusion ......................................................................................................................................... 41

CHAPITRE 3 ............................................................................................................................................... 42
CONFIGURATION ET MISE EN PLACE D’OPENSTACK................................................................ 42
3.1 Introduction ....................................................................................................................................... 42

3.2 Mise en place de la solution OpenStack .......................................................................................... 42

3.2.1 Architecture d’installation.......................................................................................................... 42

3.2.2 Utilisateurs du système ............................................................................................................... 43

3.2.2.1 L’administrateur ................................................................................................................... 43

3.2.2.2 L’utilisateur .......................................................................................................................... 43

3.2.2.3 Diagrammes ......................................................................................................................... 43

3.3 Installation d’OpenStack.................................................................................................................. 45

3.3.1 Installation et configuration de VirtualBox............................................................................... 46

3.3.2 Création de la machine virtuelle ................................................................................................ 47

3.3.3 Etapes d’installation d’OpenStack Kilo ..................................................................................... 47

3.4 Conclusion ......................................................................................................................................... 51

CHAPITRE 4 ............................................................................................................................................... 52
ETUDES DE CAS D’UN FOURNISSEUR DE CLOUD ......................................................................... 52
4.1 Introduction ....................................................................................................................................... 52

4.2 Etudes de cas ..................................................................................................................................... 52

4.3 Création d’un espace cloud pour la startup informatique ............................................................ 53

4.3.1 Création de projet et manipulation de quotas ............................................................................ 53

4.3.2 Création d’un utilisateur ............................................................................................................ 56

4.3.3 Création d’un réseau .................................................................................................................. 56

4.3.4 Création d’un sous réseau .......................................................................................................... 57

4.3.5 Création d’un routeur virtuelle .................................................................................................. 58

4.3.6 Mettre le routeur comme passerelle par défaut ......................................................................... 58

4.3.7 Création d’un serveur ................................................................................................................. 59

iv
4.4 Conclusion ......................................................................................................................................... 59

CONCLUSION GENERALE .................................................................................................................... 60


ANNEXE 1 ................................................................................................................................................... 61
ETAPES D’INSTALLATION ET DE CONFIGURATION D’OPENSTACK ..................................... 61
FICHE DE RENSEIGNEMENT ............................................................................................................... 78
RESUME ...................................................................................................................................................... 79
ABSTRACT ................................................................................................................................................. 79

v
NOTATIONS ET ABREVIATIONS

1. Minuscules latines
lnf Temps de latence finale
lni Temps de latence initiale
nf Nombre de nœuds
t Le temps
tm Instant de modification du système
2. Majuscules latines
A Augmentation du temps résultant de la modification
Av1 Temps moyen de traitement du système stable 1
Av2 Temps moyen de traitement du système stable 2
B Déviations standard des ensembles de requêtes
N Average
Rt1 Temps moyen de réponse 1
Rt2 Temps moyen de réponse 2
3. Minuscules grecs
α1 Montée des temps de latence
α2 Descente des temps de latence
µ Coefficient d’adaptation
π Perturbation d’adaptation
λ Impact maximal
4. Majuscules grecs
Δl Variation du temps de latence
Δt Temps d’adaptation
5. Abréviations
AMQP Advanced Message Queue Protocol
AOE Ata Over Ethernet
API Application Programming Interface
ASP Application service provider
BIOS Basic Input Output System
CIGREF Club Informatique des Grandes Entreprises Françaises

vi
CPU Central Processing Unit
DHCP Dynamic Host Configuration Protocol
EC2 Elastic Compute Cloud
FAH Fournisseur Applications Hébergées
GB Giga Bytes
GPL General Public License
IAAS Infrastructure as a Service
iSCSI Internet Small Computer Systems Interface
KVM Kernel-based Virtual Machine
LDAP Lightweight Directory Access Protocol
LTS Long Term Support
MySQL My- Structured Query Language
NASA National Aeronautics and Space Administration
NAT Network Adrress Translator
PAAS Plateform as a Service
PC Personal Computer
RAM Radom Access Memory
RESERVOIR Projet Europeen Open source
REST REpresentational State Transfer
SAAS Software as a Service
SAN Storage Area Network
SGBD Système de Gestion de Base de Données
SLA Security Level Agreement
SPOF Single Point Of Failure
SSL Secure Sockets Layer
SQL Structured Query Language
TIC Information and Communication Technologies
VLAN Virtual Local Area Network
VM Virtual Machine
VPN Virtual Private Network
VT-x Virtual Technology
WSRF Web Services Resource Framework

vii
INTRODUCTION GENERALE

Face à l’augmentation continuelle des coûts de mise en place et de maintenance des systèmes
d’information, les entreprises externalisent de plus en plus leurs services informatiques en le
confiant à des entreprises spécialisées comme les fournisseurs de Cloud. L’intérêt principal de cette
stratégie pour les entreprises réside dans le fait qu’elles ne paient que pour les services effectivement
consommés.

Le Cloud Computing est aujourd’hui le sujet phare dans le domaine des systèmes d’information et
de télécommunication. Après la virtualisation, le Cloud parait être la révélation qui va permettre aux
entreprises d’être plus performantes et de gérer le coût des systèmes d’information d’une manière
efficiente.
Mais suite à cette entrée fracassante nous pouvons tout de même nous demander en quoi consiste
le Cloud Computing. C’est pour cela que ce travail de fin d’études de mastère s’intéresse à ce
domaine d’actualité.
Le terme Cloud Computing ou « informatique dans les nuages » est un nouveau modèle
informatique qui consiste à proposer les services informatiques sous forme de services à la demande,
accessibles de n’importe où, n’importe quand et par n’importe qui. Cette nouvelle technologie
permet à des entreprises d’externaliser le stockage de leurs données et de leur fournir une puissance
de calcul supplémentaire pour le traitement d’une grosse quantité d’informations.

L’objectif de ce travail est justement d’approfondir et d’expérimenter nos connaissances sur ce


thème de Cloud Computing, puis de faire son état de l’art (ou de l’existant), en vue de choisir la
meilleure solution disponible à l’heure actuelle, de le déployer et de l’évaluer. Pour se faire nous
avons déployé un Cloud privé de type infrastructure en tant que service.

Ainsi, le présent manuscrit s’articule autour de quatre chapitres principaux. On va l’entamer par
quelques définitions et généralités sur le Cloud Computing, ensuite, le deuxième chapitre sera
consacré à la description de différentes solutions existant sur le Cloud. Le troisième chapitre détaille
quelques cas d’utilisation du Cloud, ainsi que l’installation et la configuration des différents
composants de la solution choisie par nos soins dans le chapitre précédent, en vue d’avoir une
utilisation du Cloud dans un contexte privé.
Enfin dans le dernier chapitre nous effectuons une étude pour simuler le cas d’un fournisseur de
service Cloud avec la création d’une architecture de types IaaS pour une startup informatique.

1
CHAPITRE 1
CLOUD COMPUTING CONCEPT ET TERMINOLOGIE

1.1 Introduction

Indéniablement, la technologie de l’internet se développe d’une manière exponentielle depuis sa


création. Actuellement, une nouvelle tendance a fait son apparition dans le domaine de TIC, il s’agit
du Cloud Computing. Ce dernier est un concept qui regroupe plusieurs technologies servant à
délivrer différents services.
Dans ce chapitre, nous allons présenter les notions fondamentales du Cloud Computing, ses enjeux,
ses évolutions et son utilité ainsi que la technologie qui la constitue et les différents acteurs du
secteur.
Nous devons dans un premier temps étudier le Cloud Computing de manière générale (définitions,
avantages, inconvénients), puis nous allons étudier les trois services principaux, sur lesquels le
Cloud Computing se repose : applicatif, plateforme, infrastructure et qui ont donné naissance par la
suite au fameux SaaS/PaaS/IaaS. La dernière partie de ce chapitre présente les différents avantages
et inconvénients du Cloud Computing, et met l’accent sur l’aspect de la sécurité du Cloud.

1.2 Historique

Techniquement, le concept de Cloud Computing est loin d’être nouveau, il est même déjà présent
depuis des décennies. On en trouve la première trace dans les années 1960, quand John McCarthy
affirmait que cette puissance de traitement informatique serait accessible au public dans le futur. Le
terme en lui-même est apparu plus couramment aux alentours de la fin du XXe siècle.
Salesforce.com fut le premier hébergeur de Cloud en 1999, suivi en 2002 par Amazon qui proposa
un ensemble d'hébergement d'application et de stockage. Amazon développa ses services en 2005
(Amazon Web Services) et en 2006 (Elastic Compute Cloud ou EC2). En 2007, Google, IBM et des
universités lancèrent un projet de recherche sur le Cloud qui permit de lui faire gagner en popularité
et en consistance. C'est en 2009 que la réelle explosion du Cloud survint avec l'arrivée sur le marché
des sociétés comme Google (Google App Engine), Microsoft (Microsoft Azure), IBM (IBM Smart
Business Service), Sun (Sun Cloud) et Canonical Ltd (Ubuntu Enterprise Cloud). Réalisant de ce
qu’ils pourraient faire de toute cette nouvelle opportunité, de nombreuses compagnies ou des
sociétés multinationales ont ensuite commencé à montrer un certain intérêt puis à perfectionner leurs

2
anciennes infrastructures et applications internes contre ce que l’on appelle les « pay per use
service » (service payé à l’utilisation). [1]

Figure 1.01 : Evolution du Cloud Computing

Actuellement des experts sont convaincus que bientôt, nous utiliserons le Cloud Computing de la
même manière que nous utilisons l’électricité, c'est-à-dire en payant uniquement ce que nous
consommons sans même nous soucier des aspects techniques nécessaires au bon fonctionnement du
système. Le principal facteur de développement consiste sur le fait que toute cette puissance est à
tout moment partagée par plusieurs utilisateurs et évite ainsi de perdre du « temps machine » à ne
rien faire. Cela devrait également réduire les coûts du développement et donc les prix. [2]

1.3 Généralités

1.3.1 Définitions

Le Cloud Computing, littéralement l’informatique dans les nuages est un concept qui consiste à
déporter sur des serveurs distants des stockages et des traitements informatiques traditionnellement
localisés sur des serveurs locaux ou sur les postes des utilisateurs. Il consiste à proposer des services
informatiques sous forme de service à la demande, accessible de n’importe où, n’importe quand et
par n’importe qui, grâce à un système d’identification via un PC et une connexion à internet. Cette
définition est loin d’être simple à comprendre, l’idée principale à retenir est que le Cloud n’est pas
un ensemble de technologies, mais un modèle de fourniture, de gestion et de consommation de
services et de ressources informatiques. [3]

3
Pour Wikipédia il s’agit : « d’un concept de déportation sur des serveurs distants des traitements
informatiques traditionnellement localisés sur le poste client ». [4]
Pour CISCO : « le Cloud Computing est une plateforme de mutualisation informatique fournissant
aux entreprises des services à la demande avec l’illusion d’une infinité des ressources ». [5]
Pour le groupe de travail CIGREF le Cloud Computing est défini sur les quatre points suivant :
- Un Cloud est toujours un espace virtuel.
- Contenant des informations qui sont fragmentées.
- Dont les fragments sont toujours dupliqués et repartis dans cet espace virtuel, lequel peut
être sur un ou plusieurs support physique.
- Qui possède « une console (programme) de restitution » permettant de reconstituer
l’information.

1.4 Eléments constitutifs du Cloud Computing

1.4.1 Virtualisation

La virtualisation se définit comme l’ensemble des techniques matérielles et/ou logiciels qui
permettent de faire fonctionner sur une seule machine plusieurs systèmes d’exploitation appelés
machines virtuelles (VM). [6]
La virtualisation des serveurs permet une plus grande modularité dans la répartition des charges et
la reconfiguration des serveurs en cas d’évolution ou de défaillance momentanée.
Les intérêts de la virtualisation sont multiples, on peut en citer quelques-uns :
- l’utilisation optimale des ressources d’un parc de machines (répartition des machines
virtuelles sur les machines physiques en fonction des charges respectives).
- l’économie sur le matériel (consommation électrique, entretien physique, surveillance)
- l’installation, tests, développements sans endommager le système hôte. [7]

1.4.2 Datacenter

Un centre de traitement de données (Datacenter en anglais) est un site physique sur lequel se
trouvent regroupés des équipements constituants le système d’information de l’entreprise
(mainframes, serveurs, baies de stockage, équipements réseaux et de télécommunications). Il peut
être interne ou externe à l’entreprise, exploité ou non avec le soutien des prestataires. Il comprend
en général un contrôle sur l’environnement (climatisation, système de prévention contre l’incendie),
une alimentation d’urgence et redondante, ainsi qu’une sécurité physique élevée.

4
Cette infrastructure peut être propre à une entreprise et utilisée par elle seule ou à des fins
commerciaux. Ainsi des particuliers ou des entreprises peuvent venir y stocker leurs données suivant
des modalités bien définies. [7]

1.4.3 Plateforme collaborative

Une plate-forme de travail collaboratif est un espace de travail virtuel. C’est un site qui centralise
tous les outils liés à la conduite de projet et les met à la disposition des acteurs.
L’objectif du travail collaboratif est de faciliter et d’optimiser la communication entre les individus,
dans le cadre d’un travail ou d’une tâche.
Les plates-formes collaboratives intègrent généralement les éléments suivants :
- des outils informatiques
- des guide ou méthodes de travail en groupe, pour améliorer la communication, la production,
la coordination.
- un service de messagerie.
- un système de partage des ressources et des fichiers.
- des outils de type forum, pages de discussions.
- un trombinoscope ou annuaire des profils des utilisateurs.
- des groupes, par projet ou par thématique.
- un calendrier.

1.5 Modèles de déploiement du Cloud Computing

Nous distinguons trois formes de Cloud Computing : Le Cloud public, également le premier apparu,
le Cloud privé et le Cloud hybride qui est en fin la combinaison de deux premiers.

1.5.1 Cloud public

Le principe est d’héberger des applications, en général des applications web, sur un environnement
partagé avec un nombre illimité d’utilisateurs. La mise en place de ce type de Cloud est gérée par
des entreprises tierces (ex Amazon, Google) et il est accessible selon le modèle pay-as-you-go
(payer selon la consommation). Les fournisseurs de Cloud public les plus connus sont Amazon et
Google. [8]
Ce modèle :
- demande de lourds investissements pour le prestataire de services.
- offre un maximum de flexibilité.

5
Figure 1.02 : Cloud public

1.5.2 Cloud privé

C’est un environnement déployé au sein d’une entreprise. Ainsi elle doit gérer toute seule son
infrastructure. Dans ce cas, implémenter un Cloud privé signifie transformer l’infrastructure interne
existante en utilisant des technologies comme la virtualisation pour enfin délivrer, plus simplement
et plus rapidement, des services à la demande.

L’avantage de ce type de Cloud par rapport au Cloud public réside sur l’aspect de la sécurité et la
protection des données.
En effet, l’ensemble du matériel est conservé au sein de votre propre emplacement. De ce fait les
ressources sont détenues et contrôlées par votre département informatique. [8]
Eucalyptus, OpenNebula et OpenStack sont des exemples pour la mise en place du Cloud privé.
Ce modèle est :
- cher pour le client.
- dédié et sécurisé.
- moins flexible comparé au Cloud public.

6
Figure 1.03 : Cloud privé

1.5.3 Cloud hybride

En général on entend par Cloud hybride, la cohabitation et la communication entre un Cloud privé
et un Cloud public dans une organisation partageant des données et des applications (par exemple,
un Cloud dédié pour les données et un autre pour les applications). [8]
Ce modèle :
- permet d’allier les avantages des deux modèles de déploiement.
- permet la gestion de deux Cloud qui peut s’avérer plus contraignant.

Figure 1.04 : Cloud hybride

7
Figure 1.05 : Représentation des différents types de déploiement d’une infrastructure Cloud

1.6 Services du Cloud Computing

Le Cloud Computing est composé de trois services, que nous allons exposer ci-dessous :

1.6.1 IaaS (Infrastructure as a Service)

Il s’agit de la mise à la disposition et à la demande, des ressources d’infrastructure, dont la plus


grande partie est localisée à distance dans des Datacenter.
L’IaaS permet l’accès aux serveurs et à leur configuration pour les administrateurs de l’entreprise.
Le client a la possibilité de louer des clusters, de la mémoire ou du stockage de données. Le coût
est directement lié au taux d’occupation. Une analogie peut être faîte avec le mode d’utilisation des
industries de commodités (électricité, eau, gaz) ou des télécommunications, Eucalyptus est un
exemple d’infrastructure. [9]
- Avantage
Grande flexibilité, contrôle total des systèmes, qui permet d’installer tout type de logiciel métier.
- Inconvénient
Besoin d’administrateurs système comme pour les solutions de serveurs classiques sur site.

8
Figure 1.06 : Contrôle de service dans IaaS

1.6.2 PaaS (Plateform as a Service)

Il s’agit des plateformes du nuage, regroupant principalement les serveurs mutualisés et leurs
systèmes d’exploitation. En plus de pouvoir délivrer des logiciels en mode SaaS, le PaaS dispose
d’environnements spécialisés au développement comprenant les langages, les outils et les modules
nécessaires.
L’avantage est que ces environnements sont hébergés par un prestataire basé à l’extérieur de
l’entreprise ce qui permet de ne disposer d’aucune infrastructure et de personnel de maintenance et
donc de pouvoir consacrer au développement.
- Avantage
Le déploiement est automatisé, pas de logiciel supplémentaire à acheter ou à installer.
- Inconvénient
Limitation à une ou deux technologies (ex : java ou python pour Google AppEngine, .NET pour
Microsoft Azur, propriétaire pour force.com). Pas de contrôle des machines virtuelles sous-jacentes.
Convient uniquement aux applications web. [9]

9
Figure 1.07 : Contrôle de service dans PaaS

1.6.3 SaaS (Software as a Service)

C’est un concept qui consiste à proposer un abonnement à un logiciel plutôt que l’achat d’une
licence.
On oublie donc le modèle client-serveur et aucune application n’est installée sur l’ordinateur, elles
sont directement utilisables via le navigateur web. L’utilisation reste transparente pour les
utilisateurs, qui ne se soucient ni de la plateforme, ni du matériel, qui sont mutualisés avec d’autres
entreprises.

Le SaaS remplace le ASP, aussi appelé Fournisseur d’Applications Hébergées (FAH), ou


Application Service Provider en anglais, qui est une entreprise fournissant des logiciels ou des
services informatiques à ses clients à travers un réseau.
Les principales différences avec l’ASP traditionnel ce qu’une simple interface web est utilisée côté
client dans tous les cas (pas de client lourd) et, que le SaaS propose une seule instance de logiciel
qui évolue indépendamment des clients.

10
Avec l’arrivée du haut-débit, les logiciels en mode SaaS deviennent utilisables sans problèmes.
- Avantages
- Plus d’installation,
- Plus de mise à jour (elles sont complétées chez le fournisseur),
- Plus de migration de données.
- Paiement à l’usage, test des nouveaux logiciels avec facilité.
- Inconvénients
- Limitation par définition au logiciel proposé
- Pas de contrôle sur le stockage et la sécurisation des données associées au logiciel
- Réactivité des applications web pas toujours idéale. [9]

Figure 1.08 : Contrôle de service dans SaaS

11
Figure 1.09 : Répartition des responsabilités

La figure 1.09 ci-dessus résume les différents modèles de service, et montre comment les
responsabilités sont théoriquement reparties suivant les modèles IaaS, PaaS et SaaS pour
l’entreprise, le partage de contrôle avec le fournisseur et le fournisseur de Cloud.

12
Figure 1.10 : Différents niveaux des services du Cloud Computing

La figure 1.10 ci-dessus présente les trois couches du Cloud Computing ainsi que leurs acteurs en
donnant un compromis flexibilité/simplicité. En Cloud, la flexibilité est obtenue grâce à la
virtualisation des systèmes d’exploitation.

La plateforme est exécutée via des machines virtuelles et les ressources peuvent être allouées et
délibérées à la demande. Ainsi, l’IaaS est considéré comme le service le plus flexible.

1.6.4 Avantages et inconvénients des services

Du point de vue économique, le Cloud Computing est essentiellement une offre commerciale
d’abonnement économique à des services externes. Selon le National Institute of Standards and
Technology, il existe trois catégories de services qui peuvent être offerts en Cloud Computing :
IaaS, PaaS et SaaS. [10]

13
Les avantages et les inconvénients de ces services se résument dans le tableau 1.01 ci-dessous.

Avantages Inconvénients
- Administration - Sécurité
IaaS - Personnalisation - Besoin d’un administrateur système
- Flexibilité d’utilisation - Demande pour les acteurs du Cloud
- Capacité de stockage infini des investissements très élevés
- Pas d’infrastructure nécessaire - Limitation des langages
PaaS - Pas d’installation - Pas de personnalisation dans la
- Environnement hétérogène configuration des machines virtuelles
- Pas d’installation - Logiciel limité
SaaS - Plus de licence - Sécurité
- Migration - Dépendance des prestataires
- Accessible via un abonnement

Tableau 1.01: Avantages et inconvénients des services

1.7 Propriétés fondamentales des services

Après ce tour d’horizon du Cloud, décrivons à présent les propriétés fondamentales des
services sur Cloud. Notons que le SGBD est un service du Cloud. A ce titre, toutes les définitions
suivantes sont immédiatement applicables aux bases de données.

1.7.1 Haute disponibilité

Un service est dit hautement disponible si toute requête reçue par un nœud n'étant victime d'aucune
défaillance et retourne un résultat. La haute disponibilité d'un service caractérise sa capacité à
assurer son effective accessibilité durant une période donnée.
Le service devra donc pouvoir détecter les points de défaillances et réduire l'impact de leur
potentielle défaillance grâce à la mise en place de techniques de redondance et/ou réplication. [11]

1.7.2 Passer à l’échelle

Un des principaux atouts d'une solution Cloud est sa capacité à passer à l'échelle que nous décrirons
plus loin. Définissons d'abord sa capacité à monter à l'échelle.

14
- Capacité à monter à l’échelle
La capacité à monter à l'échelle d'un service, est sa capacité à pouvoir assumer une production
constante lorsque le nombre de requêtes augmente. Cette définition ne fait intervenir aucune notion
de dynamisme ; quel que soit le moyen d'étendre ses capacités, un Cloud est capable de monter à
l'échelle s'il peut monter en charge jusqu'à sa limite (celle de ses composants physiques). On dira
donc qu’un service est capable de monter en charge (horizontalement) de manière
linéaire si une augmentation de X% de ses ressources augmente ses performances de X%.
On remarque dès à présent que décrire l’augmentation du nombre d’instances en terme de
pourcentage est sujet à discussion. Supposons, à ce stade, que chaque instance est identique et que
le pourcentage se résume donc au rapport du nombre d’instances futur sur le précédent.
La plupart des solutions Cloud mettent en avant leurs capacités à monter à l’échelle pour des raisons
commerciales. La capacité à descendre à l’échelle est souvent négligée mais n’en est pas moins
intéressante : pour des enjeux économiques et écologiques, il est très intéressant de pouvoir diminuer
ses ressources lorsqu’elles sont sous-exploitées.

Le Cloud doit être capable de s’adapter et ceci ne peut se résumer à la capacité à monter à l’échelle.
Il faut aussi considérer sa capacité à descendre à l’échelle. L’union de ses deux propriétés est sa
capacité à passer à l’échelle.
La capacité à passer à l’échelle d’un service (Scalability en anglais), est sa capacité à pouvoir
assumer la variation (descente ou montée) de la charge à laquelle il est soumis.
Il la caractérise grâce à un paramètre sans dimension suivant la formule suivante :

𝐴𝑣𝑒𝑟𝑎𝑔𝑒 (2𝑁) − 𝐴𝑣𝑒𝑟𝑎𝑔𝑒 (𝑁) (1.01)


𝑆𝑐𝑎𝑙𝑎𝑏𝑖𝑙𝑖𝑡𝑦(𝑁) =
𝐴𝑣𝑒𝑟𝑎𝑔𝑒 (𝑁)

L’average (N) correspond au temps moyen de réponses pour une Base de Donnée de N nœuds
attaquées par N ensembles de requêtes. Un système qui monterait parfaitement à l'échelle devrait
avoir une montée à l'échelle égale à 0. [12]

1.7.3 Elasticité

L'élasticité d'un service est sa capacité à passer à l'échelle de manière dynamique c'est-à-dire sans
nécessiter de sa réinitialisation et sans entraîner des effets collatéraux trop importants.
Par « collatéraux », on entend des pertes en performance inacceptables.
L'élasticité d'un service est une caractérisation de sa capacité à passer à l'échelle ;

15
dans le but de pouvoir comparer l'élasticité de systèmes forts différents, cette approche propose une
formule définissant l'élasticité tel un unique paramètre sans dimension.

Voici sa définition:

𝐴+𝐵 (1.02)
é𝑙𝑎𝑠𝑡𝑖𝑐𝑖𝑡é =
(Rt1 + Rt2) ∗ (𝐴𝑣1 + 𝐴𝑣2)

Figure 1.11 : Surfaces utilisées pour caractériser l’élasticité

Comme illustré en figure 1.11, la surface A décrit l'augmentation du temps résultant de la


modification tandis que la surface B décrit les déviations standard des ensembles de requêtes. Rt1
et Rt2 sont les temps moyens de réponse pour une requête sur le système stable avant et après la
modification. Av1 et Av2 sont eux les temps moyens de traitement du système stable d'un ensemble
de requêtes avant et après sa modification. [12]

1.7.3.1 Autres paramètres qui caractérisent l’élasticité

- Le coefficient d’adaptation µ
Il quantifiera le gain (ou la perte) en performance survenant immédiatement après la modification.
De manière abstraite, il s’entend donc comme le rapport entre la performance et le coût engendré
par la modification du système.
Le coefficient d'adaptation µ𝑖,𝑓 est sans dimension et détermine l'adaptation d'un système passant
de 𝑛𝑖 à 𝑛𝑓 instances.

16
Définissons la variation des temps de latence :

𝛥𝑙 =lnf - lni (1.03)

Le coefficient d'adaptation µ se définit comme suit :

Δ𝑙
𝑙𝑛𝑖
µ= (1.04)
Δ𝑛

Figure 1.12 : Période d'adaptation théorique supposée

- Le temps d’adaptation Δt
Correspondant à la durée de la phase d'adaptation, ce temps est la durée nécessaire au système pour
assimiler la modification (répartition des données et autres). Un système sera d'autant plus élastique
que ce temps sera réduit.

17
De manière plus descriptive, cette durée commence à l’instant où l’on modifie le système tm
et finit lorsque les temps de réponse du système composé de nf nœuds ne sont plus influencés
par la modification.

- L’impact maximal λ
C’est le rapport entre le pic de perte de performance li et le temps de latence moyen du système
initial lni.

𝑙𝑖 (1.05)
𝜆=
𝑙𝑛𝑖

- La perturbation d’adaptation π
Elle décrit le comportement, la perturbation du système par rapport à un système s'adaptant de
manière linéaire à la modification. Nous la définissons comme suit :

𝑡𝑚+∆𝑡
∫𝑡𝑚 𝑙(𝑡)𝑑𝑡
𝜋= 𝛥𝑙∗𝛥𝑡 (1.06)
2

Figure 1.13 : Perturbation de la période d'adaptation théorique

18
Ce paramètre est donc sans dimension. Plus sa valeur sera proche de 1, plus le comportement du
système sera linéaire durant l'adaptation. Une valeur comprise entre O et 1, nous informera que le
système a un comportement globalement meilleur qu'un système s'adaptant linéaire à l'adaptation,
tandis qu'un grand score nous informera que le comportement du système s'éloigne d'un
comportement linéaire. [13]
Le tableau 1.02 donne une idée récapitulative des différents paramètres.

Tableau 1.02: Tableau récapitulatif des paramètres définissant l’élasticité

1.8 Avantages et inconvénients du Cloud Computing

1.8.1 Avantages

- Un démarrage rapide
Le Cloud Computing permet de tester plus rapidement le Business plan, à coûts réduits et avec
facilité.

- L’agilité pour l’entreprise


Résolution des problèmes de gestion informatique simplement sans avoir s’engager à long terme.

- Un développement plus rapide des produits


Réduction du temps de recherche pour les développeurs sur les paramétrages des applications.

- Pas de dépense de capitale


Plus besoin des locaux pour élargir les infrastructures informatiques.

1.8.2 Inconvénients

- La bande passante peut faire exploser le budget

19
La bande passante qui serait nécessaire pour mettre cela dans le Cloud est gigantesque, et les coûts
seraient tellement importants qu’il est plus avantageux d’acheter le stockage nous même plutôt que
de payer quelqu’un d’autre pour s’en charger.

- La fiabilité du Cloud
Un grand risque lorsqu’on met une application qui donne des avantages compétitifs ou qui contient
des informations clients dans le Cloud.
La plateforme du Cloud, si elle est externe (non installée sur le réseau interne ou avec une ouverture
extérieure) doit être suffisamment sécurisée pour éviter le risque d’intrusion, de vol des données par
piratage.

- Taille de l’entreprise
Si l’entreprise est grande alors ses ressources sont grandes, ce qui inclut une grande consommation
du Cloud. Du coup il serait peut-être plus intéressant à mettre au point son propre Cloud plutôt que
d'en utiliser un externalisé. Les gains sont bien plus importants quand on passe d'une petite
consommation de ressources à une consommation plus importante.

1.9 Caractéristiques spécifiques et capacités

Outre les caractéristiques techniques, distinguons, parmi les différentes caractéristiques essentielles
et relevantes, les non-fonctionnelles et les économiques.
Les aspects non-fonctionnels d’écrivent les propriétés intrinsèques du Cloud. Parmi ces
aspects nous listons :
- L’élasticité :
Il s’agit d’une des caractéristiques les plus essentielles dans notre vision du Cloud. Elle définit la
capacité d’une infrastructure donnée à s’adapter de manière dynamique au changement. L’élasticité
fait intervenir la capacité à passer à l’échelle mais aussi l’agilité.

- La capacité à s’adapté :
Le Cloud doit fournir un ensemble d’automatismes lui permettant de s’auto-gérer. Son
administration devra nécessiter le minimum possible d’interventions humaines.

- La qualité de service :
C’est un autre aspect essentiel du Cloud ; à l’aide de métriques telles que le temps de réponse, le
nombre d’opérations à la seconde, le service fournit des garanties à ses utilisateurs. Il n’appartient

20
plus à l’utilisateur de devoir décider quelles ressources déployer mais plutôt de définir des bornes
que le service doit satisfaire. Le Cloud s’adaptera de manière à assurer ses bornes.

Les aspects économiques du Cloud séduisent de plus en plus les sociétés. Parmi ces aspects,
nous listons :
- Un retour sur l’investissement :
Le paiement à l’utilisation est particulièrement intéressant pour les entreprises de petite taille qui
peuvent à présent profiter des avantages d’un service fonctionnel dès le départ. L’idée sous-jacente
est donc la suivante : le service deviendra coûteux pour une société dans la mesure où il est fort
utilisé, c’est-à-dire à la condition qu’il lui rapporte de l’argent. On passe dès lors de dépenses
d’investissement en capital (l’achat de serveurs d’application) aux dépenses d’exploitation (l’achat
de ressources consommables).

- Une démarche écologique :


L’allocation de ressources à la stricte nécessité, permet de réduire la consommation énergétique des
parcs informatiques. Outre l’aspect économique, ces réductions énergétiques permettent de
diminuer l’empreinte écologique de la société.

1.10 Cloud Computing et Sécurité

La sécurité et la conformité émergent systématiquement, comme les principales préoccupations des


informaticiens lorsqu'il est question de Cloud Computing, des préoccupations encore plus
accentuées lorsqu'il s'agit de Cloud public. [14]
La sécurité permet de garantir la confidentialité, l'intégrité, l'authenticité et la disponibilité des
informations.

1.10.1 Confidentialité

La confidentialité assure les données du client, elles ne doivent être accessibles que par les entités
autorisées. Les différentes solutions de Cloud Computing comportent des mécanismes de
confidentialité comme la gestion des identités et des accès, l’isolation ou le cryptage. La majorité
des échanges internes ou externes au Cloud sont encapsulés en SSL (Secure Sockets Layer) et
authentifiés avec un certificat rédigé et signé par le client.

21
1.10.2 Intégrité

Les utilisateurs de Cloud peuvent stocker plusieurs données, ces données doivent généralement être
protégées contre le vol et les modifications non autorisées. Dans le nuage, il existe plusieurs
systèmes qui fournissent des différents mécanismes pour protéger l'intégrité des informations. Par
exemple pour le service de stockage de Windows Azure, l'intégrité est définie par les applications
utilisant le modèle de contrôle d'accès. Chaque compte de stockage a deux clés qui sont utilisées
pour contrôler l'accès à toutes les données. [15]

1.10.3 Disponibilité

L'un des principaux avantages fournis par des plates-formes de Cloud Computing est la disponibilité
robuste basée sur la redondance réalisée avec des technologies de virtualisation. Windows Azure en
est un exemple, il offre de nombreux niveaux de redondance fournissant une disponibilité maximale
de données et des applications, les données sont répliquées sur trois nœuds distincts pour minimiser
les problèmes des pannes matérielles ; cette technique s’appelle la multi-location, elle permet de
créer des instances d'une même donnée sur plusieurs sites différents. Ce qui permet une récupération
facile en cas de désastre. [16]
La sécurité absolue n'existe pas, donc le problème de sécurité reste le plus souvent un problème de
confiance entre le fournisseur de service et le consommateur de service. Cette confiance se traduit
par la signature d'un contrat nommé SLA (Service Level Agreement). Ce contrat précise les taux de
disponibilité du service. En règle générale, et pour la plupart des fournisseurs, ce taux est supérieur
à 99 %.

1.11 Cloud Computing et Clusters

Le but du Cloud Computing est de construire un nuage de clusters, c'est à dire d'interconnecter un
ensemble de machines sur un réseau défini. Les utilisateurs peuvent ensuite déployer des machines
virtuelles dans ce nuage, ce qui leur permet d'utiliser un certain nombre de ressources. Par exemple,
de l'espace disque, de la mémoire vive, ou encore du CPU (processeur).
Cette infrastructure (figure 1.14), en allant plus dans les détails, est constituée de clusters et de
nœuds. Les clusters servent à gérer l'interface entre les nœuds et l'utilisateur. Ainsi, lorsqu'on déploie
une machine virtuelle sur un cluster, le cluster va créer une instance, qui se matérialisera par
l'utilisation des ressources dans les nœuds. [17]

22
Figure 1.14 : Nuage de clusters

Voici un schéma UML (figure 1.15) récapitulatif qui décrit les étapes de déploiement d'une image.
L'utilisateur final disposera enfin d'un accès SSH sur la machine virtuelle. Pour lui, l'utilisation des
ressources sera transparente. Ce sont des administrateurs réseaux qui lui délivreront ses ressources
en fonction de ses besoins.

Figure 1.15 : Etapes de déploiement d’une image

23
1.12 Conclusion

Au cours de ce chapitre, nous avons fourni une base théorique sur le Cloud Computing, en présentant
ses types (public, privé et hybride), ses services (IaaS, PaaS, SaaS), ses avantages et inconvénients,
afin d’appliquer ses concepts à notre contexte. On a vu aussi que le Cloud se veut capable de
s'autogérer, de fournir un certain degré d'automatisme. Tous ces mécanismes sont transparents pour
l'utilisateur final qui pense le Cloud tel une série de services et fait donc totalement abstraction de
tout autre composant.

24
CHAPITRE 2
ANALYSE ET COMPARAISON DES ENVIRONNEMENTS CLOUD EXISTANT

2.1 Introduction

Le Cloud Computing représente un nouveau défi dans le monde informatique. Plusieurs solutions
sont proposées : des solutions propriétaires et des solutions open sources. Dans ce chapitre, nous
allons présenter les différentes solutions Cloud existantes, d’une manière non exhaustive, leur mode
de fonctionnement, leurs avantages et leurs inconvénients en vue de dégager un choix qu’on va
déployer.

2.2 Analyse des solutions existant

Une comparaison des solutions du Cloud Computing représente donc un bon point de départ. Voici
un panorama de quelques solutions de Cloud existantes.

2.2.1 Solutions propriétaires

2.2.1.1 VMwareCloud

Les solutions de Cloud Computing VMware favorisent l’innovation et rendent l’environnement


informatique plus efficace, plus flexible et plus fiable. VMware fournit à la direction informatique
tout ce qui lui est nécessaire pour concevoir, faire fonctionner et gérer le Cloud, avec le personnel
compétent, tout en quantifiant en permanence son impact. Avec l’aide de VMware, les clients font
évoluer leurs « fondations » techniques, modèles organisationnels, processus d’exploitation et
mesures financières. Ceci leur permet à la fois de bâtir une infrastructure de Cloud Computing et
d’élaborer un modèle d’opérations capable d’exploiter tous les avantages du Cloud Computing. Les
solutions de Cloud Computing VMware optimisent les capacités du Cloud :
- Déploiement de nouveaux services informatiques qui favorisent le développement de
l’entreprise : ainsi il devient plus facile et plus rapide de créer et fournir les services qui
permettront à l’entreprise de se démarquer des autres.
- Transformation de la direction informatique en moteur d’innovation : les ressources
informatiques libérées peuvent être consacrées à la mise en place de services qui facilitent
la réalisation des objectifs métiers.
- Efficacité, flexibilité et fiabilité garanties. [18]

25
2.2.1.2 Office 365

C’est la version Cloud Computing de Microsoft avec des niveaux d’utilisation au choix : messagerie,
office, partage et accès aux données.

Avec Office 365, Microsoft optimise le Virtual Office, et offre une solution Cloud qui permet via
un simple abonnement d’accéder à l’ensemble des données depuis n’importe quelle plateforme (PC,
Smartphone, Tablette). Microsoft met en place cette offre personnalisée et adaptée aux différents
besoins des entreprises. Office 365 leur permet de choisir uniquement les modules utiles pour ses
utilisateurs; en sélectionnant uniquement les options adaptées sans gaspillage. [19]

L’objectif est de mettre en place une solution de Cloud Computing Office 365 pour l’entreprise,
afin de réduire les charges d’investissement et d’exploitation des serveurs et d’applications.
Le but recherché derrière cette démarche est d’externaliser la messagerie électronique, de permettre
aux utilisateurs d’accéder à des documents partagés sur l’espace SharePoint online et de pouvoir
communiquer à l’aide de la messagerie instantanée, de la vidéo conférence et cela de façon intégrée
et cohérente selon des règles d’accès précises à travers des rôles utilisateurs. [20]

Au besoin, la solution sera intégrée en hybride avec le système d’information existant. La solution
Cloud Office 365 proposée, se focalise sur la mise en place des services suivants :
- Externalisation de la messagerie : Exchange online
- Partage et gestion des documents sur office 365 : SharePoint online
- Gestion de la communication instantanée, réunions et conférences en ligne : Lync online.

2.2.1.3 Windows Azure

Microsoft Windows Azure est le système d'exploitation qui sert d'environnement de développement,
d'exécution et de contrôle pour la plateforme Windows Azure.
La Plateforme Microsoft Azure est une infrastructure commerciale et flexible de Cloud Computing,
il est créé par le groupe de Microsoft, qui permet aux utilisateurs de créer et de développer des
applications directement dans le Cloud Computing, héberger, administrer des services Web à travers
un réseau global ; il permet aussi la simplicité de la maintenance, l'exploitation des applications, et
le stockage à la demande en proposant des outils communs.

26
La plateforme Windows Azure est caractérisée par les points suivants :
- L’utilisateur se concentre sur son application et sa valeur fonctionnelle,
- Microsoft s’occupe de la gestion de l’infrastructure, qui est disponible à la demande pour les
applications,
- La facturation est réalisée à l’usage,
- De nombreuses fonctions sont disponibles, immédiatement activables : VPN, réplication des
données, Sécurité, Authentification multiple,
- Les applications et les données sont localisées, répliquées, et hautement disponibles,
- Une place de marché permet la vente et l’achat de données et de composants logiciels.

2.2.2 Solutions Open Source

2.2.2.1 Eucalyptus

Eucalyptus est un outil open source issue d'un projet de recherche de l'université de Californie. Cette
solution est la plus connue, car elle est intégrée dans les distributions Ubuntu Server et Debian.
Eucalyptus est écrit en C, Java et Python et permet de créer des Clouds IaaS de type privé ou hybride.
Il supporte les machines virtuelles Linux ainsi que les hyperviseurs Xen et KVM. Son avantage
majeur est le fait qu'il est compatible avec Amazon EC2.
Il possède également une version entreprise (payante) de la société Eucalyptus Systems qui apporte
des fonctionnalités supplémentaires comme le support de VMware. [21]

Eucalyptus comporte cinq composants principaux :


- Cloud Controller : c'est l'unique point d'entrée (Front end) pour tous les utilisateurs et les
administrateurs d'Eucalyptus. Il est responsable de la gestion de tout le système.
- Cluster Controller : il conserve les informations relatives aux ressources physiques.
- Node Controller : il interagit avec l'hyperviseur pour gérer les machines virtuelles. Lors
d'une demande d'allocation de ressources physiques par le Cloud Controller, c'est le Cluster
Controller qui alloue les ressources en sollicitant les Nodes Controllers.
- Walrus : c'est le composant qui gère l'accès aux services de stockage.
- Storage Controller : ce composant fonctionne avec le composant Walrus et permet de stocker
les images des machines virtuelles et les données des utilisateurs.

27
Figure 2.01 : Architecture d’Eucalyptus

2.2.2.2 OpenNebula

Il s'agit d'une plateforme purement open source permettant de déployer des Clouds privés, hybrides
et publiques. Elle est écrite en C++, Ruby et Shell et elle supporte les hyperviseurs Xen, KVM et
VMware. Le support de Virtualbox est prévu à partir de la version 4.0 de VirtualBox. Sa puissance
consiste dans ses connecteurs vers des fournisseurs d'IaaS sur les Clouds publiques tels que :
Amazon EC2 Web Service, Nimbus WSRF, Elastic Hosts REST. OpenNebula est soutenu par le
projet européen RESERVOIR, qui propose une architecture complète pour la gestion de Datacenter
et la création de services Cloud. [22]

L'architecture interne d'OpenNebula peut être divisée en trois couches :


- Tools : c'est l'ensemble des outils de gestion pour OpenNebula.
- Core : il se compose d'un ensemble de composants pour contrôler les machines virtuelles, le
stockage et le réseau virtuel.
- Drivers : l'interaction entre OpenNebula et l'infrastructure de Cloud est effectuée par des
pilotes spécifiques qui sont les drivers.
Les machines Front end et Node sont reliés entre eux à travers un réseau privé.

28
Figure 2.02 : Architecture d’OpenNebula

2.2.2.3 OpenStack

Créé en juillet 2010 par la NASA et l'hébergeur américain Rackspace, OpenStack est une offre
d'IaaS 100% open source encore en développement qui a livré son code source récemment et qui
permet aux sociétés de développer leurs propres solutions d'infrastructure de Cloud Computing. Plus
de trente fournisseurs soutiennent ce projet tels que : AMD, Intel, Dell et Citrix. OpenStack est
également intégré dans les dernières versions d'Ubuntu comme c'est le cas pour Eucalyptus. Il
comprend le logiciel OpenStack Compute pour la création automatique et la gestion de grands
groupes de serveurs privés virtuels et le logiciel OpenStack Storage pour optimiser la gestion de
stockage, le contenu sur différents serveurs et le mettre à disposition pour une utilisation massive
de données. [23]

2.3 Comparaison entre les logiciels existant du Cloud Computing

Dans les paragraphes précédents, nous avons présenté une liste de logiciels permettant de créer des
solutions Cloud. Il est grand temps maintenant de faire le choix de celui qui nous convient le mieux.
Nous avons décidé de ne comparer que les solutions open source, cette comparaison est menée dans
le tableau 2.01, selon plusieurs critères choisis en fonction des conseils trouvés dans l’état de l’art
(ou de l’existant).

29
OpenStack Eucalyptus OpenNubula
- Entièrement opensource, - Entièrement - Entièrement
Code source - Apache v2.0 opensource, opensource,
- GPL v3.0 - Apache v2.0
Rackspace, NASA, Dell, - Apparu au début - L'union
Citrix, Cisco, Canonical et dans l'université Santa Européenne

Développeurs plus de 50 autres organisations Barbara de l'université


de Californie,
- Créer et offrir des - Une réponse open -Un Cloud privé
fonctionnalités de Cloud source pour le Cloud pur
Computing en utilisant un commerciale EC2
But logiciel open source
- Fonctionnant sur du matériel
standard
- Les sociétés, les fournisseurs -Les entreprises - Les chercheurs
de services, les chercheurs et dans le domaine du
Domaine les centres de données Cloud Computing
d’utilisation mondiaux qui cherchent à et de la
déployer à grande échelle leurs virtualisation
Cloud privés ou publiques
- Linux et récemment - Linux (Ubuntu, - Linux (Ubuntu,
Système
Windows, Fedora,CentOS, RedHatEnterprise,
d’exploitation
- Processeur x64, x86 OpenSUSE et Debian) FedoraetSUSE
supportés
Linux Enterprise
Server)

Langage de
Python Java, C, Python Java, C++, Ruby
programmation
-GridFTP, Comulus
OpenStack Storage Walrus (version récente de
Stockage
GridFTP)
- XCP

30
Xen, KVM Xen, KVM Xen, KVM,
Hyperviseur
VMware
- Problématique, - Manuelle,
- Facile, installation dépend de installation facile
Installation automatisée et documentée. l'environnement sur les distributions
réseau et matériel, supportées (dont
- Difficulté en Debian et Ubuntu).
environnement
hétérogène.
- Cloud public et privé - Cloud public et privé - Cloud privé
Orientation
- Excellente, site bien fourni et - Correcte, complète - Complète,
facile d'accès avec à la fois un mais pas toujours à documentations,
wiki contenant l'essentiel et jour. références de tous
Documentation une documentation officielle les fichiers de
disponible et très détaillée. configuration,
exemples

Tableau 2.01: Comparaison entre les solutions Cloud open source

2.4 Choix de la solution à déployer

Dans les précédents paragraphes, nous avons présenté une liste des logiciels permettant de créer des
solutions de Cloud Computing. La mise en place d'un environnement de ce dernier pour des buts de
recherche nécessite initialement le choix d'une solution :
- Open source sécurisée
- Facile à installer et à déployer
- Extensible
- Modulaire et innovante
- Pouvant s’adapter à tous types d’infrastructures existantes
- Opérationnelle à toutes les tailles d’entreprises
- Extensible

31
Donc la solution qui nous convient le mieux et qui répond à nos besoins est l’OpenStack, la figure
2.03 suivante présente le pourcentage d’utilisation du logiciel OpenStack par rapport aux autres
solutions selon Zenoss.com.

Figure 2.03 : Pourcentage d’utilisation d’Opentack

2.5 OpenStack

2.5.1 Présentation

OpenStack est un logiciel libre qui permet la construction de Cloud privé et public de type IaaS sous
licence Apache 2.0, et qui a pour but d'aider les organisations à mettre en œuvre tant un système de
serveur que de stockage virtuel. Il s'installe sur un système d'exploitation libre comme Ubuntu ou
Debian et se configure entièrement en ligne de commande. C'est un système robuste et qui a fait ses
preuves auprès des professionnels du domaine. OpenStack joue le rôle d’une couche de management
de Cloud qui assure la communication entre la couche physique où se trouvent des serveurs
physiques occupés par des hyperviseurs différents (Vmware ESX, Citrix Xen, KVM, qemu) et la
couche applicative (Applications, utilisateurs, administrateur). [24]

32
Figure 2.04 : Rôle d’OpenStack

OpenStack a libéré plusieurs versions comme indiquées dans le tableau ci-dessous :

Nom Date de sortie Nom de composant inclus

Austin 21 octobre 2010 Nova, Swift


Bexar 03 février 2011 Nova, Swift, Glance
Cactus 15 avril 2011 Nova, Swift, Glance
Diablo 22 septembre 2011 Nova, Swift, Glance
Essex 05 avril 2012 Nova, Swift, Glance, Horizon, Keystone
Folsom 27 septembre 2012 Nova, Swift, Glance, Horizon, Keystone, Quantum, Cinder
Grizzly 04 avril 2013 Nova, Swift, Glance, Horizon, Keystone, Quantum, Cinder
Havana 22 octobre 2013 Nova, Swift, Glance, Horizon, Keystone, Cinder, Neutron,
Heat, Celiometer
Icehouse 17 avril 2014 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder,
Heat, Celiometer, Trove
Juno 16 octobre 2014 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder,
Heat, Celiometer, Trove, Sahara
Kilo 30 avril 2015 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder,
Heat, Celiometer, Trove, Sahara, Ironic

Tableau 2.02: Versions d’OpenStack

33
OpenStack est composé d'une série de logiciels et de projets au code source libre qui sont maintenus
par la communauté incluant: OpenStack Compute (nommé Nova), OpenStack Object Storage
(nommé Swift), et OpenStack Image Service (nommé Glance).
La figure 2.05 ci-dessous montre l’écosystème d’images d’OpenStack en se basant sur ses trois
projets.

Figure 2.05 : Ecosystème d’images d’OpenStack

2.5.2 Architecture

Openstack est constitué d’un ensemble de projets liés, qui constituent les différents composants
d’une plateforme de Cloud Computing. Son architecture est comparable à celle d’Amazon Web
Services. Il y a trois éléments capitaux autour du projet : Openstack Compute (provisionner et
contrôler un large réseau de machines), Openstack Object Storage (créer une plateforme de stockage
hautement disponible) et Openstack Image Service (gérer et organiser un large catalogue d’images
de machines). [25]

Figure 2.06 : Architecture d’OpenStack

34
Ces différents services se communiquent entre eux grâce à la solution de Spring Source, RabbitMQ
qui implémente le protocole AMQP, ce dernier permet de faire du clustering pour une meilleure
tolérance de panne et une meilleure tenue de charge. L’utilisation de cette solution permet une
large modularité dans Openstack. En effet il est alors possible d’imaginer différentes intégrations
au sein de sa propre solution de Cloud privé. C’est d’ailleurs la philosophie de la fondation :
permettre une haute configuration selon ses besoins avec différentes options de stockage et réseau.

2.5.2.2 OpenStack Compute (Projet nova)

Il sert à la gestion de larges réseaux de machines virtuelles et d’une architecture redondante et


évolutive. Elle fournit une interface d’administration et l’API nécessaire à l’orchestration du Cloud.
Elle inclue : les gestions des instances serveurs, la gestion du réseau et les contrôle d’accès. [26]

Figure 2.07 : Architecture de nova

Le tableau 2.03 suivant va nous permettre de comprendre l’architecture Nova Compute et les rôles
de chaque composant :

35
Le composant Rôle
Nova
- Coeur de Nova
- Fonction Principale: Cloud Controller avec le service nova-api.
API - Compatible avec l’API Amazon EC2
- Ecoute sur le port 8773 pour EC2 API et 8774 pour OpenStack API
- Initialise la plupart des activités
- Renforce certaines fonctionnalités (ex : quotas)
- Principe simple: il prend une demande d’instance de machine virtuelle et
détermine où « Compute server » doit-elle être exécutée.
Sheduler - Fonctionnement par algorithmes pour assurer un fonctionnement optimal.
- Trois choix d’ordonnancement :
- Simple : tente de trouver l’hôte le moins « chargé »
- Chance (celui par défaut) : choisit un hôte disponible au hasard
depuis sa « Service Table »
- Zone : Prend un hôte au hasard depuis une zone « disponible »

- Créé et termine les instances de machines virtuelles


- Reçoit et exécute des actions visant à mettre à jour les états des VM dans
Nova Compute
la base de données
- Supporte plusieurs API : KVM, Xen, Citrix, VMware, Hyper-V
- Gère la création, l’attachement et le détachement de volumes persistants.
Nova Volume
- Compatible avec AoE, iSCSI (dont Solaris ZFS), Sheepdog, RBD,
LeftHand (HP).
- Configure les interfaces bridge
- Adapte les règles de pare-feu (Iptables)
- Deux types d’adresse IP pour une instance :
- Adresse fixe : privée
Nova network - Adresse provisoire : publique
- Trois gestionnaire de réseaux:
- Flat : adresse fixe attachée à l’interface bridge
- Flat DHCP : adressage dynamique pour chaque interface bridge

36
- Support des VLAN : chaque projet dispose de sa plage d’adresses IP
accessibles via VLAN.

- Point de passage obligé pour les instructions échangées entre les services
Queue
- Différents types de files d’attente de messages pour faciliter la
communication : Topics, Fanout, Host
- Enregistre la configuration et les états en temps réels pour une
infrastructure Cloud : types d’instances disponibles, instances en cours
Data Base
d’utilisation, réseaux disponibles, projets,
- Supporte la plupart des SGBD : MySQL, PostgreSQL

Tableau 2.03: Les composants de Nova

2.5.2.3 OpenStack Objet Storage (Projet Swift)

Object Storage sert à la création d’espace de stockage redondant et évolutif pour le stockage de
plusieurs pétabytes de données. Il ne s’agit pas réellement d’un système de fichier mais est surtout
conçu pour le stockage à long terme de gros volumes.
Il utilise une architecture distribuée offrant plusieurs points d’accès pour éviter les SPOF (Single
Point Of Failure). [26]

Swift gère trois types d’objets différents :


- Swift Account : Gère une base de données Sqlite3 contenant les objets de stockage
- Swift Contener : Gère une autre base de données Sqlite3 contenant la topologie des
conteneurs
- Swift Object : Topologie des objets réels enregistrés sur chaque nœud. La figure 2.08
suivante présente l’architecture Swift.

37
Figure 2.08 : Architecture de Swift

2.5.2.4 OpenStack Imaging Service (Projet Glance)

Imaging Service fournit les services de stockages, de découvertes, d’enregistrements et de


distributions pour les images disques de machines virtuelles. Il fournit également une API
compatible REST permettant d’effectuer des requêtes pour obtenir des informations sur les images
hébergées par les différents magasins de stockages. [26]
La figure 2.09 suivante montre l’interaction entre les différents composants d’OpenStack cité
précédemment.

38
Figure 2.09 : Architecture de base d’OpenStack

En plus des composants principaux il y a aussi d’autres composants complémentaires comme :


- Quantum : permet d’offrir une gestion des réseaux à la demande à l’intérieur de son Cloud.
Le service permet aux utilisateurs de créer des réseaux à la demande et d’y attacher des
machines virtuelles. Quantum a une architecture ouverte grâce à des plugins permettant de
supporter différents fournisseurs de réseau ou des technologies réseaux différentes.
- Cinder : Cinder, jusqu’à Folsom (sixième version) était une brique intégrée à Nova appelée
Nova Volume, mais est devenue un projet à part entière.
Cinder est un module qui fournit une infrastructure pour la gestion des volumes. Il agit
en quelque sorte comme les disques logiques d’un SAN. C’est un disque qu’il sera possible
d’attacher à une seule instance, à un instant donné.
- Horizon : C’est la partie graphique d’Openstack. C’est un tableau de bord disponible par
une interface web. Il est possible d’administrer les différents modules cités ci-dessus donc
de créer, administrer les machines virtuelles, gérer les volumes. Il utilise la base de données
de Keystone. Une fois connectés, l’utilisateur et l’administrateur peuvent agir sur les projets.
En revanche, les possibilités offertes par Horizon ne sont pas aussi importantes qu’en lignes
de commandes. Il est donc indispensable à l’administrateur d’utiliser son interpréteur de

39
commandes à des fins d’administration. Ce module a finalement été créé pour l’utilisateur,
afin de lui faciliter l’accès.
- Keystone : Il est le point d’entrée. C’est le service d’identité et d’authentification : les
utilisateurs vont devoir s’identifier afin d’obtenir les autorisations nécessaires. Dans ce cas,
Keystone leur fournit un token qui est un jeton autorisant l’interaction avec le service désiré.
Il repose sur un SGBD. Nous avons choisis MySQL. Il est conçu pour être utilisable avec
un annuaire LDAP et ainsi facilite la gestion de droits.
- Neutron : Neutron est le module permettant la mise en place de réseaux virtuels.
Anciennement connu sous le nom de «Quantum » avant la version « Havana » d’Openstack.
Développé par Cisco, il permet la gestion de commutateurs (switch) linux, ainsi que les
améliorations détaillées plus bas. Neutron est également en charge de gérer les règles de
pare-feu, d’attribution des adresses IP pour les instances.
- Heat : c’est une plateforme d’orchestration assurant un approvisionnement plus facile de
nouvelles ressources à la demande. Il déploie automatiquement ses ressources, permet de
lancer des applications, créer des machines virtuelles et automatiser l’ensemble du
processus.
- Celiometer : Ce module supervise l’environnement, afin d’y collecter des données
d’utilisation et s’intègre au module de gestion d’identité Keystone et fournit des
informations précises sur les comportements des utilisateurs. C’est de cette façon qu’il va
pouvoir superviser l’environnement du Cloud Computing et découvrir d’éventuelles
contraintes de ressources. C’est là qu’intervient Heat.
- Trove : Module permettant la gestion des services de bases de données, il offre l’ap-
provisionnement de bases de données relationnelles à la demande sans s’encombrer des
tâches administratives complexes.
- Sahara : L’objectif est de permettre l’approvisionnement et l’administration des clusters
Hadoop (système de traitement de donnée distribuer), en outre Sahara a notamment bénéficié
des contributions d’Horton Works et permet d’approvisionner de façon automatique les
clusters Hadoop.
- Ironic : Fonction de gestion des machines physiques (serveur physique), il permet de
déployer dans OpenStack des conteneurs, c'est-à-dire des machines virtuelles qui hébergent
l’application et ses dépendances (bibliothèques, données, configurations) mais pas le
système d’exploitation sous-jacent. [27]

40
Figure 2.10 : Architecture d’OpenStack Kilo

2.6 Conclusion

Nous venons de présenter une liste non exhaustive des applications permettant de créer des Cloud
privés. Pour notre déploiement, notre choix s'est arrêté sur OpenStack plus précisément sa dernière
version stable nommée Kilo en tenant compte de ses multiples avantages et surtout car il correspond
exactement à ce que nous voulons déployer. Dans la suite, nous allons mettre en place la solution
choisie.

41
CHAPITRE 3
CONFIGURATION ET MISE EN PLACE D’OPENSTACK

3.1 Introduction

Dans ce chapitre, nous allons mettre en place notre solution OpenStack en présentant son
architecture, quels sont les différents cas d'utilisation du système avec des diagrammes, comment
se fera le dimensionnement des couches matérielles, notamment des serveurs et enfin nous allons
présenter des spécifications sur les autres éléments à installer avant d'installer la solution proprement
dite.

3.2 Mise en place de la solution OpenStack

Pour mettre en place la solution open source Openstack choisie, Il va falloir étudier les différents
cas d’architecture possibles, présenter les utilisateurs du système et enfin l’installer. Cette
installation nécessite une configuration matérielle et des outils logiciels et des prérequis bien
spécifiques.

3.2.1 Architecture d’installation

Selon la documentation officielle d’OpenStack il y a plusieurs architectures possibles. La figure


suivante montre ces derniers.

Figure 3.01 : Les différents architectures possibles

42
Pour nos premiers pas nous avons donc essayé la première installation sur un seul nœud dans
laquelle tous les services ainsi que toutes les instances sont hébergés au sein du même serveur. Cette
solution nous permet uniquement d’effectuer des tests sur le Cloud pour des fins purement
techniques.

3.2.2 Utilisateurs du système

Afin de représenter les différentes fonctionnalités et utilisations possible du système, nous allons
présenter une série de diagramme, en l’occurrence un diagramme des cas d'utilisation et des
diagrammes de séquence. Pour notre solution, il existe deux types d'utilisateurs, l'administrateur du
système et les utilisateurs. [28]

3.2.2.1 L’administrateur

L'administrateur est toute personne physique ayant reçu les droits d'administration. Généralement,
lors de l'installation, on configure les droits du premier administrateur.
Un administrateur peut :
- Ajouter de nouveaux administrateurs
- Supprimer des administrateurs
- Ajouter de nouveaux utilisateurs
- Créer un projet
- Créer de nouvelles machines virtuelles
- Gérer et créer des réseaux
Chaque administrateur possède un login et un mot de passe unique, modifiable à volonté par le
concerné.

3.2.2.2 L’utilisateur

L'utilisateur est toute personne physique de l'entreprise ayant reçu un compte d'accès.
A ce titre, il peut :
- Stocker des données dans la limite de ses possibilités
- Instancier des machines virtuelles

3.2.2.3 Diagrammes

- Diagramme de cas d’utilisation

43
Figure 3.02 : Diagramme de cas d’utilisation

- Diagramme de séquence
- Diagramme de séquence « connexion »

Figure 3.03 : Diagramme de séquence « connexion »

44
- Diagramme de séquence « création d’une machine virtuelle »

Figure 3.04 : Diagramme de séquence « création d’une machine virtuelle »

- Diagramme de séquence « stocker de donnée »

Figure 3.05 : Diagramme de séquence « stocker de donnée »

3.3 Installation d’OpenStack

Comme c’est une solution libre, donc son installation a été conduite sous Ubuntu LTS server 14.04
64 bits. L'installation de ce système d'exploitation se fait sur une machine virtuelle, afin d'optimiser
les ressources de la machine. Le logiciel de virtualisation utilisé est VirtualBox.

45
3.3.1 Installation et configuration de VirtualBox

Pour installer VirtualBox, il faut vérifier que le PC hôte supporte la virtualisation (VT-X doit être
activé dans le BIOS), après l’installation on doit configurer le réseau de VirtualBox avec les deux
interfaces réseaux suivantes :
- Eth0 : NAT (pour l’accès vers l’internet)
- Eth1 : VirtualBox Hoste-Only Adapter (pour gérer les composants d’OpenStack)
Comme il est montré dans la figure 3.06 suivante :

Figure 3.06 : Configuration réseau de VirtualBox

46
3.3.2 Création de la machine virtuelle

Nous avons dû créer une machine avec les paramètres suivants :


Nom : ubuntu_OpenStack_Kilo_2015
Type de système d’exploitation : Linux
Version : Ubuntu 14.04 LTS server 64bits
Mémoire RAM : 6 GB.
Disques : 60 GB.
Processeurs : 2

3.3.3 Etapes d’installation d’OpenStack Kilo

Après avoir installé Ubuntu LTS server 14.04 sur une machine virtuelle considérée comme notre
serveur, il va falloir installer OpenStack.
Il existe plusieurs méthodes pour l’installer, dont :
- Devsatck.
- Installation via des scripts.
- Depuis les packages.

Lors de notre déploiement nous avons choisi une installation depuis les packages, (pour plus
d’information sur les scriptes et les étapes de configurations, voir Annexe 1).
Les étapes de l’installation sont comme suit :

a. Configuration des cartes réseaux


Après avoir disposé d’une connexion internet activée et configurée, on modifie avec les droits
d’administrateur le fichier (etc/network/interfaces) comme dans la figure 3.07 suivante :

47
Figure 3.07 : Configuration des cartes réseaux

b. Configuration des dépôts et mise à jour des paquets OpenStack


C’est-à-dire téléchargement des paquets nécessaires pour l’installation d’OpenStack

c. Mise à jour du système


Faire une mise à jour et mise à niveau du système d’exploitation, en l’occurrence ubuntu.
Après cette mise à jour du système, il faut redémarrer la machine. [29]

d. Installation des paquets de support RabbitMQ server et le serveur MySQL


- Installation du service RabbitMQ qui permet aux composants OpenStack de communiquer
entre eux.

Figure 3.08 : Installation de RabbitMQ

48
- Installation du serveur MySQL
MySQL gère tous les bases de données dans OpenStack.

Figure 3.09 : Installation du serveur MySQL

e. Installation de Keystone
Le composant Keystone est chargé de l’authentification, la gestion des utilisateurs et des services.

Figure 3.10 : Installation de Keystone

f. Installation de Glance (image store)


Ce service est chargé de distribuer les images de disque dur système, utilisées par les machines
virtuelles.

Figure 3.11 : Installation de Glance

49
g. Installation de Nova (compute)
Nova permet la gestion des instances des machines virtuelles.

Figure 3.12 : Installation de Nova

h. Installation de neutron (Networking service)


Neutron consiste tout la partie réseau d’OpenStack.

Figure 3.13 : Installation de Neutron

i. Installation de horizon (OpenStack Dashboard)


Horizon est l’interface web d’OpenStack, il permet de simplifier l'administration du serveur et des
projets. L'accès se fait à partir d'un navigateur web pointant à l'adresse du serveur. Les différents
services doivent être installés et configurés avant de pouvoir les utiliser. Une grande partie des
commandes est alors à portée d'un clic de souris.

Figure 3.14 : Installation de Horizon

Pour accéder à l’interface d’administration, il faut saisir dans un navigateur web l’adresse ip du
serveur, puis on s’identifie avec le login et mot de passe configurer auparavant :
http://192.168.17.2
user: admin
password: admin_pass

50
Voici comment se ressemble l’interface d’administration Horizon :

Figure 3.15 : OpenStack Dashboard

3.4 Conclusion

Dans ce chapitre, on a présenté les outils logiciels et matériels ainsi que toutes les étapes et la
démarche à suivre pour installer les différents composants d’OpenStack Kilo. Bien que l’installation
semble facile à première vue, mais on a beaucoup cherché avant de la finaliser avec succès, car à
chaque fois un problème survenait, qu’il fallait résoudre pour passer à l’étape suivante. En plus du
fait que certaines informations ne sont pas évidentes à trouver, et que comme on a pu le constater,
il y a plusieurs composants à installer, chacun ayant un rôle particulier, qu’il est bon de connaitre,
pour mener à bien cette laborieuse installation et configuration.

51
CHAPITRE 4
ETUDES DE CAS D’UN FOURNISSEUR DE CLOUD

4.1 Introduction

Dans ce chapitre nous nous intéressons à « OpenStack », une solution Open Source que nous avons
choisi de déployer et puis on va l’utiliser pour développer une application de Cloud Computing.
Nous nous appuierons sur cette solution en vue de créer une architecture de type IaaS pour une
startup informatique. Nous allons utiliser une machine virtuelle, sur laquelle nous avons installé
OpenStack, pour simuler le cas d’un fournisseur de services Cloud.

4.2 Etudes de cas

Une startup en informatique, qui a développé une application web pour la gestion des payes pour
des sociétés tierces, veut maintenant héberger cette solution sur un serveur pour la proposer à plus
d’entreprises. L'équipe de marketing a réussi à ramener plusieurs clients, mais le logiciel n'est pas
encore online pour l'exploitation. Sachant que deux serveurs au moins sont nécessaires, pour assurer
une haute disponibilité de l'application, et un autre pour effectuer le développement des futures
versions de l’application, les membres de cette startup ont décidé de faire un comparatif en terme
de coût entre:
- Acheter des serveurs pour héberger l'application
- Allouer des ressources sur le Cloud pour héberger l'application.
1. Pour acheter des serveurs, et avec ces serveurs ont doit rajouter:
a. Un abonnement internet à haut débit plus un autre abonnement backup.
b. Un administrateur des systèmes et réseaux pour gérer et maintenir l'infrastructure.
c. Allouer une salle des machines pour mettre les serveurs, et ce qui vient avec :
- Armoire de brassage.
- Switches réseaux.
- Deux routeurs pour les deux abonnements internet.
- Des climatiseurs pour assurer le refroidissement et l'aération de la salle des machines.
- Un système d'alarme anti-incendie.
- Un système de vidéo surveillance pour garder la traçabilité sur ce qui ce passe dans
la salle des machines.
- Un système de gestion d'accès à la salle des machines.

52
- Des onduleurs et des groupes électrogènes pour assurer la disponibilité permanente
en cas de coupure électrique.
- Assurer l'entretien et la maintenance de la salle machine et de son contenu.
2. S'ils optent pour le Cloud :
a. un administrateur système pour gérer l'infrastructure est nécessaire.
b. louer juste les ressources nécessaires (exemple: 6 cœurs CPU, 20GB de RAM, 2000GB de
stockage), ces ressources peuvent être augmentées à tout moment sans perturber le
fonctionnement de la plateforme.
Suite à l’étude fais par la startup, il a été décidé d’opter pour la solution IaaS sur le Cloud afin de
réduire le coût de l’infrastructure, pour qu’il puisse rentrer dans le budget dont ils disposent. Chose
qui était prévisible, car on a démontré le gain de coût substantiel qu’on gagne à utiliser le Cloud,
donc c’est sans surprise qu’on a appris leur choix. Et donc c’est tout naturellement qu’on s’est
proposé pour leur déployer la solution adoptée.

4.3 Création d’un espace cloud pour la startup informatique

Apres avoir accédé à l’interface d’administration d’OpenStack, on peut maintenant créer un projet
qui contient les ressources (CPU, RAM, réseau et espace de stockage) qu’on veut affecter pour cette
startup. On va créer aussi un compte utilisateur, qu’ils vont utiliser pour accéder à leur espace Cloud.

4.3.1 Création de projet et manipulation de quotas

Dans l’interface d’administration, on va créer un nouveau projet pour cette entreprise. Les deux
figures 4.01 et 4.02 ci-dessous montrent un aperçu de cette première étape

Figure 4.01 : Création d’un projet

53
On remplit les champs comme montré sur la figure 4.02 suivant :

Figure 4.02 : Informations nécessaires pour un projet

L’onglet « Quota » nous permet de définir les ressources qu’on veut attribuer à la Startup
Informatique, comme montré dans les figures 4.03 et 4.04 suivante puis on clique sur le bouton «
Créer un Projet » :

Figure 4.03 : Ressources nécessaires pour le projet

54
Figure 4.04 : Ressources nécessaires pour le projet

Maintenant on peut visualiser dans la liste des projets déjà existant notre nouveau projet qui se
nomme startup info, ainsi on peut aussi gérer les membres du projet (éditer le projet, afficher
l’utilisation, supprimer le projet…). La figure 4.05 suivant montre bien cette configuration.

Figure 4.05 : Aperçu de notre nouveau projet

55
4.3.2 Création d’un utilisateur

On clique sur « Utilisateurs », puis sur « Créer un Utilisateur » pour créer un utilisateur qui seront
membre de ce projet, il peut exploiter et manipuler les ressources (quotas) qu'on lui a affectés
seulement. On remplit les champs comme montrés ci-dessous, puis on valide.

Figure 4.06 : Création d’un utilisateur

4.3.3 Création d’un réseau

On clique sur « réseau », puis sur le bouton « Créer un réseau » pour créer un réseau virtuel dédié
au projet Startup Info : On remplit les champs comme montré, puis on clique sur le bouton « Créer
un réseau » :

Figure 4.07 : Création d’un réseau

56
Maintenant pour accéder et exploiter les ressources affectées à cette société, on ferme la session
‘admin’, et on s’identifie avec l’utilisateur membre de ce projet qu’on vient de créer. Dans la page
d’accueil, on peut voir les ressources affectées, et leur taux d’utilisation. On peut aussi exploiter ces
ressources.

Figure 4.08 : Pages d’accueil pour les membres du projet

4.3.4 Création d’un sous réseau

On Clique sur « Réseau », puis sur le nom de réseau « réseau startup », On clique sur le bouton «
Créer un sous-réseau » On remplit les informations de sous-réseau, puis on valide.

Figure 4.09 : Création d’un sous réseau

57
4.3.5 Création d’un routeur virtuelle

On rajoute un routeur virtuel, qui va jouer le rôle d’une passerelle (Gateway) entre le sous-réseau et
l’Internet.

Figure 4.10 : Création d’un routeur

4.3.6 Mettre le routeur comme passerelle par défaut

Figure 4.11 : Définir le routeur virtuelle comme passerelle

58
4.3.7 Création d’un serveur

Figure 4.12 : Création d’un serveur

Maintenant, il ne reste à la startup qu’à entreposer son application, créer des comptes pour ses clients
et le tour est jouée.

4.4 Conclusion

Nous avons vu dans ce chapitre la solution OpenStack, solution libre sur laquelle nous avons fait
notre étude technique. Nous avons créé grâce à cette solution un Cloud Computing de type IaaS
dédié à une startup informatique, qui désire étendre son champ d’activité, en proposant une
application qu’elle a développé, entre autre une application de gestion de paye, à plusieurs
entreprises privées fort intéressées de déléguer cette tâche à la startup. Pour se faire, deux choix se
sont offerts à eux, mettre en place une infrastructure lourde et très couteuse, ou faire du Cloud, le
choix n’a pas été difficile mais au contraire bien évident. Suite à cela, nous nous sommes occupées
de leur faire l’installation et la configuration d’un Cloud ou ils vont entreposer leur application et
ainsi ils peuvent la faire utiliser par plusieurs clients. Chose qui ne sera que bénéfique à leur
développement et bénéfique aux clients qui se voient satisfaits à moindre coût.

59
CONCLUSION GENERALE

Au cours de ce mémoire, nous avons fait une étude et mise en place d’une solution open source du
Cloud Computing pour une entreprise, on a commencé par donner les définitions de base nécessaires
à la compréhension du Cloud, son architecture, ses différents types (privée, public, hybride) et
services (IaaS, PaaS, SaaS), ensuite on a présenté et détaillé les différentes solutions libres
permettant de mettre en place un Cloud privé en faisant une étude comparatives entre elles, ceci
nous a permis d’avoir une idée précise et complète sur les solutions disponibles du Cloud et surtout
de choisir celle qui nous convient le mieux. Pour finir par installer la solution qu’on a choisi et on a
créé une infrastructure pour une entreprise.

Afin de mettre en place notre solution Cloud « OpenStack » on a débuté par utiliser le formalisme
UML en traçant les diagrammes de cas d’utilisation et de séquences, ceci nous a aidés à définir les
besoins des utilisateurs. Nous avons fait par la suite l’installation et la configuration d’OpenStack
qui nécessite des prérequis matériels et logiciels.

L’étude des besoins d’une startup informatique en espace de stockage, fut la dernière étape de ce
projet. Après lui avoir créé une interface d’administration, nous nous sommes attaqués à la création
d’une infrastructure en tant que service pour cette entreprise, ce dernier été fait par l’intermédiaire
de la création des projets, d’un réseau, d’utilisateurs, et des espaces de stockage.

Ce projet étant très ambitieux, nous nous sommes vite heurtés à de nombreux problèmes, que ce
soit dû aux solutions de Cloud ou à leur configuration et installation, notamment en ce qui concerne
le réseau.

Tous ces problèmes nous ont montré la complexité d'utiliser une telle plateforme, et leurs résolutions
nous a souvent retardé mais nous a amené à expérimenter le mode « investigation », primordial pour
tout ingénieur digne de ce nom, qui propose une solution à tout problème quelques soit sa
complexité.

Ce projet a été pour nous une occasion et une formidable opportunité de découvrir un environnement
informatique nouveau, complexe et vaste, ce qui nous a permis d'acquérir de l'expérience en
administration systèmes et réseaux et d'approfondir nos connaissances dans le domaine de la
virtualisation et du Cloud Computing. Mais et surtout d’acquérir les bons réflexes que doit avoir
tout administrateur réseau.

60
ANNEXE 1
ETAPES D’INSTALLATION ET DE CONFIGURATION D’OPENSTACK

Les étapes d’installation et de configuration d’OpenStack sont comme suit :

A1.1 configuration des cartes réseaux


On modifie la configuration des interfaces réseaux dans les fichiers /etc/network/interfaces avec
la commande :
sudo gedit etc/network/interfaces

# Pour exposer l’API d’OpenStack à l’internet


auto eth0
iface eth0 inet static
address 10.0.2.15
netmask 255.255.255.0
gateway 10.0.2.1
broadcaste 10.0.2.255
dns-nameserver 8.8.8.8

# Pour gérer OpenStack à partir du réseau local


auto eth0
iface eth0 inet static
address 192.168.17.2
netmask 255.255.255.0

Après avoir introduit les adresses dans le terminal du Linux, on fait redémarrer le service réseaux
avec la commande:
/etc/init.d/nertworking restart

A1.2 Configuration de dépôts et mise à jour des paquets

Préparation de la machine virtuelle en ajoutant les dépôts d’installation d’OpenStack :


apt-get install ubuntu-cloud-keyring

61
echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/kilo main" >
/etc/apt/sources.list.d/cloudarchive-kilo.list

- Mise à jour du système


apt-get update && apt-get -y upgrade
apt-get dist-upgrade

- Apres l’étape de mise à jour du système on fait redémarrer la machine pour que cette mise à
jour soit prise en compte :
sudo reboot

A1.3 Installation de RabbitMQ server et le serveur MySQL

- Installation de RabbitMQ Server,

L’installation se fait par la commande :

apt-get install -y rabbitmq-server

Après, il faut changer le mot de passe de l’utilisateur « guest » dans RabbitMQ server :
rabbitmqctl change_password guestrabbit

- Installation de serveur MySQL et les dépendances :


apt-get install -y mysql-server python-mysqldb

- Pendant l’installation de MySQL, le système nous demande de taper un mot de passe qui
sera utilisé pour le compte root de MySQL.
- Puis on modifie la ligne dans les fichiers /etc/mysql/my.conf
[mysqld]
...
bind-address = 0.0.0.0
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

62
On redémarre ensuite le service MySQL pour appliquer ces modifications:
service mysql restart

- Installation d’autre paquet support :


apt-get install -y ntpvlan bridge-utils

- Puis on modifie la ligne dans les fichiers /etc/sysctl.conf pour l’activation de l’IP
Forwarding:
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0

Après on change les valeurs :


sysctl -p

A1.4 Installation du composant Keystone :


- Installation des paquets Keystone :
apt-get install –y keystone

- Vérification du service :
service keystone status

- Création de la base de données MySQL pour Keystone et ajout des qualifications :


mysql -u root -p
mysql> CREATE DATABASE keystone;
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY
'keystone_dbpass';
mysql>quit

- Puis on modifie les fichiers /etc/keystone/keystone.conf


connection = sqlite:////var/lib/keystone/keystone.db

- On ajoute la ligne suivant :


connection = mysql://keystone:keystone_dbpass@192.168.17.2/keystone

63
- Redémarrage et synchronisation du service MySQL :
service keystone restart
keystone-manage db_sync

Exportation de la variable d'exécution des commandes initiales de Keystone :


export OS_SERVICE_TOKEN=ADMIN
export OS_SERVICE_ENDPOINT=http://10.0.0.1:35357/v2.0

- Création de admin user, admin tenant, puis on définit le rôle de l’admin et le service
tenant, ensuite on ajout l’utilisateur admin au admin tenant et au admin rôle :

keystone tenant-create --name=admin --description="Admin Tenant"


keystone tenant-create --name=service --description="Service Tenant"
keystone user-create --name=admin --pass=ADMIN --email=admin@example.com
keystone role-create --name=admin
keystone user-role-add --user=admin --tenant=admin --role=admin

- Création d’un service Keystone :


Keystone service create --name = Keystone --type = identity --description = "Keystone
Identity Service"

- Création de Keystone and point :


keystone endpoint-create --service=keystone --publicurl=http://192.168.17.2:5000/v2.0 –
internal url=http://192.168.17.2:5000/v2.0 --adminurl=http://192.168.17.2:35357/v2.0
- Vérification de la connexion :
unset OS_SERVICE_TOKEN
unset OS_SERVICE_ENDPOINT

- Création d’un fichier nommé creds et on rajoute les lignes suivantes :


export OS_USERNAME=admin
export OS_PASSWORD=ADMIN
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://192.168.17.2:35357/v2.0

64
- Puis on charge le fichier avec:
source creds

- Teste de bon fonctionnement de Keystone, avec la commande suivante :


keystone token-get
keystone user-list

A1.5 Installation du composant Glance :


- Installation des paquets Glance :
apt-get install -y glance

- Création de la base de données et l’information d'identification pour Glance :


mysql -u root -p
CREATE DATABASE glance;
GRANT ALL ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance_dbpass';
quit;

- Création des entrées de Keystone reliées avec Glance :


keystone user-create --name=glance --pass=glance_pass --email=glance@example.com
keystone user-role-add --user=glance --tenant=service --role=admin
keystone service-create --name=glance --type=image --description="Glance Image Service"
keystone endpoint-create --service=glance --publicurl=http://192.168.17.2:9292
--internalurl=http://192.168.17.2:9292 --adminurl=http://192.168.17.2:9292

- Modification du contenu du fichier /etc/glance/glance-api.conf par:


rabbit_password = rabbit

# sqlite_db = /var/lib/glance/glance.sqlite
connection = mysql://glance:glance_dbpass@192.168.17.2/glance

[keystone_authtoken]
identity_uri = http://192.168.17.2:35357
admin_tenant_name = service
admin_user = glance

65
admin_password = glance_pass

[paste_deploy]
flavor = keystone

- Puis on modifie le fichier /etc/glance/glance-registry.conf :


rabbit_password = rabbit
# sqlite_db = /var/lib/glance/glance.sqlite
connection = mysql://glance:glance_dbpass@10.0.0.1/glance

[keystone_authtoken]
identity_uri = http://10.0.0.1:35357
admin_tenant_name = service
admin_user = glance
admin_password = glance_pass

[paste_deploy]
flavor = keystone

- Redémarrage des services Glance-api et Glance-registry:


service glance-api restart
service glance-registry restart

- Synchronisation de la base de données Glance:


glance-manage db_sync

Téléchargement d’une image pré-groupée pour les tests :


glance image-create --name Cirros --is-public true --container-format bare --disk-format
qcow2 --location https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-
disk.img

Vérification de la liste des images du service Glance :


glance image-list

66
A1.6 Installation du composant Nova :
- Installation des services de Nova :
apt-getinstall -y nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy
nova-scheduler python-novaclient nova-compute nova-console

Création de la base de données et les informations d'identification de Nova :


mysql -u root -p
mysql> CREATE DATABASE nova;
mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY
'nova_dbpass';
mysql>quit

- Création des entrées Keystone pour Nova :


keystone user-create --name=nova --pass=nova_pass --email=nova@example.com
keystone user-role-add --user=nova --tenant=service --role=admin
keystone service-create --name=nova --type=compute --description="OpenStack
Compute"
keystone endpoint-create --service=nova --
publicurl=http://192.168.17.2:8774/v2/%\(tenant_id\)s--
internalurl=http://192.168.17.2:8774/v2/%\(tenant_id\)s--
adminurl=http://192.168.17.2:8774/v2/%\(tenant_id\)s

- On ouvre le fichier /etc/nova/nova.conf et éditons le dossier comme suit :


[DEFAULT]
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
force_dhcp_release=True
libvirt_use_virtio_for_bridges=True
verbose=True
ec2_private_dns_show_ip=True
api_paste_config=/etc/nova/api-paste.ini
enabled_apis=ec2,osapi_compute,metadata

67
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 192.168.17.2
vnc_enabled = True
vncserver_listen = 192.168.17.2
vncserver_proxyclient_address =192.168.17.2
novncproxy_base_url = http://192.168.17.2:6080/vnc_auto.html

network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver

scheduler_default_filters=AllHostsFilter

[database]
connection = mysql://nova:nova_dbpass@192.168.17.2/nova

[oslo_messaging_rabbit]
rabbit_host = 127.0.0.1
rabbit_password = rabbit

[keystone_authtoken]
auth_uri = http://192.168.17.2:5000
auth_url = http://192.168.17.2:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = nova
password = nova_pass

68
[glance]

host = 192.168.17.2

[oslo_concurrency]
lock_path = /var/lock/nova

[neutron]
service_metadata_proxy = True
metadata_proxy_shared_secret = openstack
url = http://192.168.17.2:9696
auth_strategy = keystone
admin_auth_url = http://192.168.17.2:35357/v2.0
admin_tenant_name = service
admin_username = neutron
admin_password = neutron_pass

- Synchronisation de la base de données Nova:


nova-manage dbsync

- Redémarrage des services Nova:


service nova-api restart ; service nova-cert restart; service nova-consoleauth restart ;
service nova-schedulerrestart; service nova-conductor restart; service nova-novncproxy
restart; service nova-compute restart; service nova-console restart

- Vérification de la sortie de la commande suivante,


nova-manage service list

- La sortie devrait être quelque chose comme ceci, elle doit afficher des smileys, qui indiquent
que tout marchent bien:

69
Figure A1.01: Vérification de service Nova
- Également exécuter la commande suivante pour vérifier si nova est capable de s'authentifier
avec le serveur Keystone
nova list

A1.7 Installation du composant Neutron :


- Installation des services de neutrons
apt-get install -y neutron-server neutron-plugin-openvswitch neutron-plugin-openvswitch-
agent neutron-common neutron-dhcp-agent neutron-l3-agent neutron-metadata-agent
openvswitch-switch

- Création d’une base de données pour Nova:


mysql -u root -p
CREATE DATABASE neutron;
GRANT ALL ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron_dbpass';
quit;

- Créer des entrées Keystone pour Neutron


keystone user-create --name=neutron --pass=neutron_pass --email=neutron@example.com

keystone service-create --name=neutron --type=network --description="OpenStack


Networking"

keystone user-role-add --user=neutron --tenant=service --role=admin

70
keystone endpoint-create --service=neutron --publicurl http://192.168.17.2:9696 --adminurl
http://192.168.17.2:9696 --internalurl http://192.168.17.2:9696

- Modification du fichier /etc/neutron/neutron.conf, est édité comme suit :


[DEFAULT]
......
verbose = True
debug = True
core_plugin = ml2
service_plugins = router
auth_strategy = keystone
allow_overlapping_ips = True
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
nova_url = http://192.168.17.2:8774/v2
nova_region_name = regionOne
nova_admin_username = nova
nova_admin_tenant_id = 2cd03b576bcd44599e4fdcd15453b6f0
nova_admin_tenant_name = service
nova_admin_password = nova_pass
nova_admin_auth_url = http://192.168.17.2:35357/v2.0
notification_driver=neutron.openstack.common.notifier.rpc_notifier
rpc_backend=rabbit

[agent]
......
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf

[keystone_authtoken]
auth_uri = http://192.168.17.2:35357/v2.0/
auth_url = http://192.168.17.2:35357
auth_plugin = password
project_domain_id = default

71
user_domain_id = default
project_name = service
username = neutron
password = neutron_pass

[database]
......
connection = mysql://neutron:neutron_dbpass@192.168.17.2/neutron

[nova]
......
auth_url = http://192.168.17.2:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
region_name = regionOne
project_name = service
username = nova
password = nova_pass

[oslo_concurrency]
......
lock_path = /var/lock/neutron/

[oslo_messaging_rabbit]
......
rabbit_host = localhost
rabbit_userid = guest
rabbit_password = rabbit
rabbit_virtual_host = /

72
- Ouvrez le fichier /etc/neutron/plugins/ml2/ml2_conf.ini et le modifier comme suit :
[ml2]
type_drivers=flat,vlan
tenant_network_types=vlan,flat
mechanism_drivers=openvswitch
[ml2_type_flat]
flat_networks=External
[ml2_type_vlan]
network_vlan_ranges=Intnet1:100:200
[ml2_type_gre]
[ml2_type_vxlan]
[securitygroup]
firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
enable_security_group=True
[ovs]
bridge_mappings=External:br-ex, Intnet1:br-eth1

- Création des ponts :


ovs-vsctl add-brbr-int
ovs-vsctl add-br br-eth1
ovs-vsctl add-brbr-ex
ovs-vsctl add-port br-eth1 eth1
ovs-vsctl add-port br-ex eth2

- Puis modifions le fichier /etc/neutron/dhcp_agent.ini comme suit :


[DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
use_namespaces = True

- On modifie en suite /etc/neutron/l3_agent.ini comme suit :


interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
use_namespaces = True

73
- Synchronisation de la base de données:
neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file
/etc/neutron/plugins/ml2/ml2_conf.ini upgrade kilo

- Redémarrage des services de Neutron:


service neutron-server restart; service neutron-plugin-openvswitch-agent restart; service
neutron-metadata-agent restart; service neutron-dhcp-agent restart; service neutron-l3-
agent restart

- Vérifiez si les services sont en cours d'exécution en utilisant la commande suivante :


neutron agent-list

- La sortie devrait être comme suit:

Figure A1.02 : Vérification du service Neutron

74
A1.8 Installation du composant Horizon :
- Installation des paquets Horizon :
apt-get install -y openstack-dashboard

- Redémarrage des services apache et memcached :


service apache2 restart;
service memcached restart

- Pour accéder à l’interface d’administration :


URL: http://192.168.17.2/horizon
Username: admin
Password: admin_pass

Figure A1.03 : OpenStack Dashboard

75
BIBLIOGRAPHIE

[1] Y. Parent, M. Lemaux, C. Fortina, « Cloud Computing », Université Nancy 2IUT Nancy-
Charlemangne, A.U. : 2010-2011.

[2] N. Grevet, « Le Cloud Computing évolution ou révolution », Mémoire de recherche,


M2IRT, 2009.

[3] P. Sempolinski, « Le Cloud Computing, Définition et impact pour les SSII », Windows
Azure, 2012.

[4] J.S. Brian. Jr. Franklin, « Cloud Computing: Technologies and Strategies of the Ubiquitous
Data Center », CRC Press, 2010.

[5] M. Mahjoub, « Etude et expérimentations du Cloud Computing pour le monitoring des


applications orientées services », Mémoire de master2, Ecole Nationale d’Ingénieurs de
Sfax, 2013.

[6] A. B. Tchana, « Système d’administration autonome adaptable : application au Cloud »,


Institut national polytechnique de Toulouse, 2011.

[7] L. F. Noumsi, « Etude et mise en place d’une solution Cloud Computing », école national
supérieur des postes et des télécommunications Toulouse, 2012.

[8] R. Laurent, « Guide du Cloud », édition 2011.

[9] V. Kherbache, « Cloud Computing une nouvelle filière fortement structurante », IUT
Nancy Charlemagne, 2009-2010.

[10] A.Verma, G. Kumar, R.Koller, « The cost of reconfiguration in a cloud », proceedings of


International Middleware Conférence, Bangalore, Novembre 2010.

[11] Z. Aquamer, H. Tharine, « Comparaison et mise en place des plateformes de Cloud


Computing : OpenStack et Eucalyptus », Master académique, Université de Ouargla, 2013.

[12] P. Joset, « Cloud computing », ABISSA Informatique, 2011.

[13] T. Chardonnens, « Les enjeux du Cloud Computing en entreprise », Université de Fribourg,


Département d’informatique, Suisse, 2012.

[14] M. Armbrust, F. Armando, R. Griffith, D. Anthony, R. Katz, A. Konwinski, D. Patterson,


A. Rabkin, I. Stoica, « A view of cloud computing », Séminaire ACM, New York, Avril
2010.

[15] V. Kherbache, M. Moussalih, Y. Kuhn, A. Lefort, « Cloud computing », Université IUT


Charlemagne, A.U.:2009-2010.

[16] P. Sauliere, « Cloud et sécurité », Microsoft tech.days, 2011.

76
[17] I. Gérard, « Cloud Computing : Attentes & Potentiels – Infrastructures (IaaS) et Plates-
Formes (PaaS) », Référentiel de pratiques 2011-2013.

[18] W. Tehessy, « Datacenters & Clouds Privés d’Entreprise, Approches – Perspectives »,


2013.

[19] M. Rambhadjan, A. Schutijser, « Cloud Computing solutions », 3 février 2010.

[20] B. P. Rimal, C. Eunmi, I. Lumb, « A taxonomy and survey of Cloud Computing systems »,
In Proceedings of the Fifth International Joint Conference on INC, IMS and IDC, NCM,
Washington DC, USA, IEEE Computer Society, 2009.

[21] R. Ferreira, « OpenStack présentation », Enovance, 2014.

[22] A. Sehgal, « Introduction to OpenStack, Running a Cloud Computing Infrastructure with


OpenStack », University of Luxembourg, 2012.

[23] T. Carrez, « OpenStack le cloud libre », Présentation technologique, 2009.

[24] T. Cordeiro, D. Damalio, N. Pereira, P. Endo, A. Palhares, G. Gonçalves, D. Sadok,


J. Kelner, B. Melander, V. Souza et J. Mångs, « Open Source Cloud Computing
Platforms », 9ème Conférence internationale sur la grille et coopérative informatique
(GCC), Nanjing, novembre 2010.

[25] J. Pujot, « L'évolution maitrisée vers le IaaS/PaaS », Euro Cloud France, Novembre 2011.

[26] P. Junjie, X. Zhang, Z. Lei, B. Zhang, W. Zhang, L. Qing, « Comparison of several cloud
computing platforms », In Proceedings of the Second International Chalenge, 2012.

[27] H. Koener, « Gestion de service cloud et standards ouverts », Travail de fin d’études
présenté en vue de l’obtention du grade de Master en sciences informatique, 2014.

[28] L. Rabeherimanana, « Ingénierie, Architecture et Modélisation logicielle », Cours M1P-


TCO, Dép. TCO.-E.S.P.A., A.U. :2013-2014.

[29] D. M. Ravonimanantsoa, « Administration réseau sous Linux », Cours L3 – TCO, Dép.


TCO.- E.S.P.A., A.U. : 2012-2013.

77
FICHE DE RENSEIGNEMENT

Nom : MANANJARASOA
Prénoms : Onjanohasoavina Joseph Ruphin
Adresse de l’auteur : Caserne GN Batiment 3, Ankadilalana
Antananarivo 101 – Madagascar
Tel : +261 33 07 067 63/ +261 34 37 079 04
E-mail : mananjarasoa2332@gmail.com

Titre du mémoire :

« ETUDE ET MISE EN PLACE DES PLATEFORMES DE CLOUD


COMPUTING DE TYPE IAAS»

Nombre de pages : 78
Nombre de tableaux : 5
Nombre de figures : 53

Mots clés :
Cloud Computing, Virtualisation, IaaS, OpenStack.

Directeur de mémoire :
Nom : RATSIHOARANA
Prénoms : Constant
Grade : Maitre de conférences
Tel: +261 34 87 822 43
E-mail: ratsihoarana.constant@yahoo.fr

78
RESUME

Le Cloud Computing est un environnement logiciel puissant et flexible qui délègue la gestion du
matériel, et qu'on paie selon la consommation. La migration des applications d'entreprise sur cet
environnement ne cesse de s'accentuer. Une grande partie de ces applications est offerte sous forme
de services Web, qui standardisent l'accès aux logiciels métier via Internet. Le but de notre projet
est de mettre en place une solution Cloud Computing privé pour une entreprise en lui créant une
infrastructure en tant que service.
ABSTRACT

Cloud Computing is a powerful and flexible software environment, which delegates the
management of the equipment and you pay according to consumption. The migration of company
applications on this environment continues to grow. A large part of these applications is available
as web services which standardized access to business software through the Internet. The aim of our
project is to implement a private Cloud Computing solution for a company by creating its
infrastructure as a service.

79