Référence Dép. TI
AN 2022
N° RSI2206
Rapport de
Elaboré par :
Hlel FIRAS
&
Dehech MOHAMED FIRAS
Encadré par :
Mr Snoussi ELYES (ISET)
Mr Ameur KAIS (TT)
Effectué à :
Entreprise : TUNISIE TELECOM
Adresse : Rue Lac Tchad - 1053 Berges du Lac - Tunis
Tel : 71 960 414
Nous Tenons à remercier toutes les personnes qui ont contribué au succès de notre
stage et qui m'ont aidé lors de la rédaction de ce rapport.
Tout d'abord, nous adressons nos remerciements les plus sincères à toute l’équipe
pédagogique de l’Institut Supérieur des Etudes technologiques de Bizerte en
particulier, mon encadrant de stage, Mr Elyes Snoussi, pour la richesse ainsi que la
qualité de son encadrement et son enseignement et les efforts fournis afin d’assurer
une formation actualisée.
Nous tenant à remercier vivement notre maitre de stage, Mr Kais Ameur au sein de
l'entreprise Tunisie Telecom, pour son accueil, le temps passé ensemble et le
partage de son expertise au quotidien. Il fut d'une aide précieuse dans les moments
les plus délicats.
Nous aimerons aussi gratifier les efforts de Mme Hiba Cherif, qui a eu l’amabilité
de répondre à nos questions et de nous fournir les explications nécessaires.
Dédicace
A mes chers parents qui m’ont toujours encouragé, poussé, motivé dans mes
études, je les remercie énormément pour leur amour, support et leurs énormes
sacrifices.
A mes chers amis qui sont toujours présents, et n’ont jamais cessé de m’encourager
et pousser en avant.
Hlel Firas
Dédicace
Avec l'expression de ma reconnaissance, je dédie ce modeste travail a ceux qui je
n'arriverais jamais à leur exprimer mon amour sincère :
A l'homme, mon précieux offre du dieu, qui m’a poussé et motivé pour réussir mes
études et atteindre mes objectifs, mon cher père
Lassaad.
A la femme qui a souffert sans me laisser souffrir, qui n'a jamais dit non à mes
exigences et qui n'a épargné aucun effort pour me rendre heureux, ma chère mère
Hela.
A mes frères Amir et Fourat pour ses soutiens moraux et leurs conseils précieux
tout au long de mes études.
Sans oublier mon binôme Firas Hlel pour son soutien moral, sa patience et sa
compréhension tout au long de ce projet.
Et finalement a tous mes amis, pour la confiance et le soutien morale dans les
moments difficiles.
L'explosion quantitative des données numériques a obligé les chercheurs à trouver de nouvelles
façons de visualiser et d'analyser les diverses données. Il s'agit de découvrir de nouveaux ordres
de grandeur pour la collecte, la recherche, le partage, le stockage, l'analyse et la présentation des
données. Ainsi est né le " Big Data ".
De plus en plus d'entreprises envisagent de migrer des applications existantes vers le cloud.
Les objectifs peuvent être multiples : augmenter leur flexibilité, leur coût, améliorer leurs
performances et la sécurité des données. Tunisie Télécom en tant qu'entreprise moderne doit être
en pleine évolution. Elle souhaite virtualiser toutes les applications et les serveurs de base de
données du département partie mobiles dans une seule plateforme pour bien exploiter le workflow.
TT a choisi de travailler avec le modèle IAAS lui permettant de bénéficier de l'infrastructure
virtuelle.
Le Premier chapitre, présentera la thématique abordée ainsi que la démarche adoptée. Ensuite,
le deuxième chapitre enchainera par une étude de l’état de l’art, dont laquelle nous allons présenter
une étude des différents notion informatique (Big Data et Cloud Computing). Et finalement, le
troisième chapitre expliquera le travail effectué pendant le stage avec plusieurs tests pour assurer
le fonctionnemen
8
Cadre et contexte du projet
I. Introduction
Dans ce chapitre, nous allons donner un aperçu de la société d’accueil ainsi que son
architecture existante et ses divers plateformes et serveurs de bases de données. Nous allons
présenter également notre projet d’un point de vue globale, son contexte, sa signification et ses
objectifs ultimes.
ENM est un système de gestion de réseau unifié de nouvelle génération qui permet aux
opérateurs d'avoir une image plus claire de leurs ressources et services réseau.
Web Intelligence est un outil de création de rapports de Business Intelligence permettant
aux utilisateurs professionnels d'analyser les données dans Data Warehouse. Il assiste les
chefs d'entreprise dans le processus de prise de décision pour la construction des stratégies
futures.
9
Cadre et contexte du projet
La partie mobile au sein du Tunisie Telecom travail toujours avec l'architecture traditionnelle.
Il est donc en train d'exécuter plusieurs systèmes d'exploitation simultanément dans plusieurs
serveurs comme il est montré dans la figure suivante :
10
Cadre et contexte du projet
La diversité des données nous impose de les séparer, cette contrainte nous coute plus de
stockage et des serveurs de base de données.
V. Solution proposée :
Notre maquette consistait à déployer une plate-forme openstack qui contrôle de grands pools
de ressources informatiques, de stockage et de réseau via des API et un tableau de bord.
Gestion des instances : l'utilisateur pourra consulter la liste des instances en cours et des
informations spécifiques telles que le projet auquel elles appartiennent, l'adresse IP, la
taille. Il aura également la possibilité de modifier, résilier, suspendre, redémarrer ou
supprimer une instance.
Gestion des images : Les utilisateurs peuvent consulter la liste des images autorisées pour
le projet, créer de nouvelles images ou supprimer des images existantes. Vous pouvez
également utiliser ces images pour démarrer de nouvelles instances.
Gestion des volumes : La plateforme permettra aux utilisateurs de consulter une liste de
volumes de disques virtuels existants, de créer de nouveaux volumes et de modifier
d'anciens volumes.
Gestion des utilisateurs : L'administrateur peut créer des utilisateurs et affecter différents
rôles, groupes et applications à chaque utilisateur. Un utilisateur peut effectuer des tâches
en fonction des autorisations données à l'utilisateur.
En combinant les points ci-dessus, nous pouvons conclure que la plupart des problèmes
rencontrés seront résolus par openstack grâce à la création de machines virtuelles.
Après avoir terminé notre infrastructure IAAS, nous allons implémenter une solution Big Data
dans le but de mieux exploiter les ensembles volumineux de données et exécuter des applications
sur des clusters de matériel de base. Dans ce cas, nous utiliserons le framework Hadoop qui fournit
les fonctionnalités suivantes :
11
Cadre et contexte du projet
Nous utilisons les mégadonnées fournies par Hadoop pour améliorer la qualité et la rapidité du
travail tout en réduisant les coûts, l'espace mémoire et le temps de traitement.
L’image ci-dessous résume le travail à effectuer et nous donne une explication graphique a notre
architecture et ses différentes couches.
12
Cadre et contexte du projet
VII. Conclusion
Ce chapitre présente le cadre général du projet. Dans le chapitre suivant, nous définissons les
notions générales de Cloud Computing et de Big Data ainsi qu’une étude détaillée de la solution
OpenStack et Hadoop.
13
Etat de l’art
1. Les 4 V fondamentaux
Les experts du Big Data, définissent le Big Data en termes de ces quatre V : volume, vitesse
variété et véracité. Ces quatre dimensions caractérisent et distinguent les big data des regular data.
14
Etat de l’art
a) Volume
La capacité est une caractéristique clé du Big Data. Le terme est en effet tiré directement de la
quantité massive de données qui est générée chaque jour. Selon IBM, une moyenne de 2,5
téraoctets de données est générée chaque jour, soit environ 2,3 billions de gigaoctets. Ces données
augmentent considérablement chaque jour à mesure que les données source continuent d'être
ajoutées. Sur l’ensemble de l’année 2020, 40 zettabytes de données sont créés.
b) Vitesse (Velocity)
La vélocité est la vitesse à laquelle les données circulent. C'est-à-dire la fréquence à laquelle
ils sont générés, sélectionnés et partagés. Grâce aux nouvelles technologies, les données peuvent
toujours se propager rapidement en moins de temps. Les entreprises sont obligées de collecter et
de partager des données en temps réel, mais le cycle de création de nouvelles données se répète
rapidement, rendant rapidement les données obsolètes.
c) Variété
Les types et les sources de données se diversifient de plus en plus, et la structure des données
traditionnelles est concise et facile à utiliser. Ces nouveaux types de données incluent une quantité
énorme de contenus très divers : localisations géographiques, connexions, mesures, processus,
social, texte, web, images, vidéos, e-mails, livres, tweets, enregistrements audio…
d) Véracité
Enfin, l'authenticité des données ou leur fiabilité lorsqu'il est important de le faire pour les gros
volumes à collecter rapidement est primordiale. Il est difficile de savoir que les données sont en
fait intactes, non interrompues par une source attendue.
Dans une moindre mesure, on retrouve également d'autres V dans le Big Data :
Valeur : pour toutes les informations qui peuvent être extraites de ces données massives.
Variabilité : pour assurer la stabilité des modèles de données, des associations peuvent
être faites dans cette chaîne de montagnes. [3]
a) Développement de produits
Des entreprises comme Netflix utilisent le big data pour répondre aux demandes des clients.
Ils créent des modèles prédictifs pour de nouveaux produits ou services, classent les attributs clés
des produits et modélisent la relation entre les attributs et le succès commercial de leurs produits.
15
Etat de l’art
b) Expérience client
Vous pouvez désormais comprendre l'expérience client mieux que jamais. Le Big Data vous
permet de collecter des données à partir des réseaux sociaux, des visites Web, des journaux
d'appels et d'autres sources pour améliorer l'expérience d'interaction et maximiser les offres.
Commencez à proposer des offres personnalisées, à réduire la fatigue des clients et à résoudre les
problèmes.
c) Machine Learning
L 'apprentissage automatique est un sujet brûlant de nos jours. Les données, en particulier les
mégadonnées, rendent cela possible. Nous pouvons maintenant enseigner les machines, pas
seulement la programmation. La disponibilité de données volumineuses pour la formation de
modèles d'apprentissage automatique rend cela possible. [4]
Dans notre cas, Tunisie Telecom génère une dizaine de milliards d’informations collectées
par jour. C'est un ensemble très volumineux de données numériques qu’aucun outils
classique de gestion de base de données ne peut travailler. C'est pourquoi ils sont stockés
dans plusieurs serveurs de bases de données externes. Et cette contrainte nécessite un grand
budget pour le stockage et les serveurs de base de données. L'implémentation donc d'une
solution big data est une priorité. En effet, les appareils, les services les applications
mobiles ou encore la gestion des historiques de navigation web produisent de plus en plus
d’informations qu’il convient de gérer et traiter efficacement.
b) MapReduce
MapReduce est un framework de traitement de données de cluster. Inclut les fonctions Mapper
et Réduire, qui permettent des tâches de traitement de données sur différents ordinateurs, puis
réduisent les résultats à un seul résumé.
16
Etat de l’art
c) Hadoop
Hadoop est un framework logiciel open source pour stocker des données et exécuter des
applications sur des clusters de machines standard. La solution offre un espace de stockage énorme
et une puissance de traitement puissante pour tous les types de données. Hadoop se compose de
plusieurs éléments : un système de stockage (HDFS), un système de planification de traitement
(YARN) et un cadre de traitement (MapReduce).
d) Stockage "In-Memory"
Il s'agit d'un système de gestion de base de données en mémoire basé sur le stockage de
collections de données directement dans la RAM de nombreux ordinateurs. L'utilisation de la
RAM présente un avantage décisif en fournissant une base de données en mémoire à une vitesse
plus élevée. Par conséquent, les données sont faciles à obtenir. [5]
4. Théorème CAP
Ce théorème, publié par Eric Brewer en 2000, décrit tout système distribué. Le théorème CAP
nous dit que les systèmes distribués ne fournissent que deux des trois propriétés souhaitées :
cohérence, disponibilité et tolérance de partition.
Ainsi, à partir de l'illustration ci-dessous, lors de la sélection de votre base de données NoSQL,
vous ne pouvez choisir que deux caractéristiques, à savoir AP, AC, CP. [6]
17
Etat de l’art
• 43 trillions de gigabytes de données en 2020, soit plus de 300 fois le volume collecté en
2002. [7]
2. Écosystème Hadoop
L'écosystème Hadoop comporte des éléments de base indispensables au Framework, d'autres
sont des éléments complémentaires qui ajoutent des fonctionnalités.
a) Éléments de base
Les éléments de base de Hadoop sont les suivants :
HDFS :
HDFS (Hadoop Distributed File System) est un système de fichiers distribué et un élément
central de Hadoop, permettant aux données d'être stockées et répliquées sur plusieurs serveurs.
18
Etat de l’art
HDFS utilise NameNode et DataNode. Les DataNodes sont des serveurs standard pour stocker des
données. NameNode contient des métadonnées (informations sur les données stockées dans
différents nœuds). L'application n'interagit qu'avec le NameNode, qui communique avec le Data
Node selon les besoins.
YARN :
MapReduce :
MapReduce est un modèle de programmation que Google a d'abord utilisé pour indexer ses
opérations de recherche. Suivant cette logique, cet élément exécute un algorithme pour
décomposer les données. MapReduce s'appuie sur deux fonctions : Map et Reduce, qui analysent
les données rapidement et efficacement. La fonction Map regroupe, filtre et trie plusieurs
ensembles de données en parallèle et produit des tuples (paires clé-valeur). La fonction Reduce
agrège ensuite les données de ces tuples pour produire le résultat souhaité.
Hadoop Common :
Hadoop Common contient les bibliothèques et les utilitaires nécessaires aux autres modules
Hadoop.
b) Autres éléments
Hive :
Le logiciel d'entrepôt de données Apache Hive peut facilement lire et gérer de grands
ensembles de données résidant dans un stockage distribué à l'aide de SQL. La structure peut être
projetée sur des données déjà stockées. Un outil de ligne de commande et un pilote JDBC sont
fournis pour connecter les utilisateurs à Hive.
19
Etat de l’art
Pig :
Pig élimine le besoin de créer des fonctions MapReduce pour interroger HDFS. Il dispose
également d'un environnement d'exécution qui s'interface avec HDFS. Des scripts écrits dans des
langages tels que Java ou Python peuvent également être intégrés à Pig.
HBase :
HBase est une base de données en colonnes non relationnelle au-dessus de HDFS. L'un des
défis de HDFS est qu'il est limité au traitement par lots. Cela dit, pour les requêtes interactives
simples, les données doivent toujours être regroupées, ce qui entraîne une latence élevée. HBase
contourne cela en prenant en charge les requêtes impliquant une seule ligne, même sur les plus
grandes tables, ce qui réduit considérablement la latence.
Sqoop :
Sqoop est un outil d'importation de données. Étant donné que la plupart des données
d'entreprise sont stockées dans des bases de données relationnelles, ces données sont importées
dans Hadoop à l'aide de Sqoop pour que les analystes puissent les visualiser.
20
Etat de l’art
Hadoop apporte également une grande puissance de traitement. Son modèle de calcul
distribué offre performance et efficacité.
Un autre avantage majeur est l'élasticité. Le système peut être augmenté ou réduit
simplement en modifiant le nombre de nœuds dans le cluster. [8]
IV. La virtualisation
1. Le mécanisme de la virtualisation
Dans le vaste monde informatique, la virtualisation se définit comme un ensemble de
techniques permettant de créer plusieurs systèmes d'exploitation sur un même matériel en
partageant ses ressources. En d'autres termes, est une technique qui inclut une abstraction des
propriétés physiques des ressources informatiques pour les restituer à un système, une application
ou utilisateurs. Actuellement, la virtualisation semble être vraiment la seule solution fiable pour
vraiment réduire les coûts liés au SI (Système d’Information).
Un système hôte unique est installé sur un seul serveur physique. Ce système servira à
héberger plusieurs autres systèmes d'exploitation grâce à un logiciel nommé hyperviseur.
En conséquence, un hyperviseur est un logiciel de virtualisation installé dans le système
d'exploitation principal ou le serveur. Il est ainsi possible de créer plusieurs
environnements indépendants pouvant accueillir d'autres systèmes d'exploitation. Les
espaces indépendants créés par l'hyperviseur sont des machines virtuelles.
La virtualisation système : Son rôle est de virtualiser le système d’exploitation. On peut citer
deux types de cette virtualisation :
Système modifié : La virtualisation nécessite une modification pour régler le noyau du
système. C'est ce qu'on appelle la para virtualisation.
Système non modifié : C'est le type le plus utilisé. VMware, Hyper V, VirtualBox et plus
entrent dans cette catégorie.
21
Etat de l’art
22
Etat de l’art
V. Le Cloud Computing
Le cloud computing est la fourniture des services informatiques (y compris les serveurs, le
stockage, les bases de données, la gestion de réseau, les logiciels, les outils analytiques,
l'intelligence artificielle) via Internet (cloud) pour fournir une innovation plus rapide, des
ressources flexibles et des économies d'échelle.
23
Etat de l’art
b) Le Datacenter :
Un centre de traitement de données est un site physique sur lequel sont regroupés des appareils
constituant des informations d'entreprise. Il peut être interne et/ou externe à l'entreprise, opéré sans
l'appui de prestataires. Il comprend généralement le contrôle de l'environnement, l'alimentation de
secours et de secours et une sécurité physique élevée. Cette infrastructure peut être propre à une
entreprise et à elle-même ou à des fins commerciales. De ce fait, les particuliers ou les entreprises
peuvent accéder à leurs données selon des processus bien définis.
c) La Plateforme collaborative :
La plateforme de travail collaboratif est un espace virtuel. Il s'agit d'un site internet qui
centralise tous les outils nécessaires à la prise en charge d'un projet et les met à disposition des
acteurs. Le but du travail collaboratif est de faciliter et d'optimiser la communication
interpersonnelle dans l'environnement de travail d'une tâche.
24
Etat de l’art
a) Cloud public
Le cloud public est basé sur un modèle informatique standard, dans lequel un fournisseur de
services met des éléments tels que des applications et du stockage à la disposition du public via
Internet. Les services de cloud public sont disponibles pour quiconque peut les utiliser ou les
acheter. Il s'agit d'une architecture flexible et ouverte, gérée par un tiers.
b) Cloud privé
Un cloud privé est un ensemble des services et des ressources disponibles pour un client. Il
peut être géré par l'entreprise elle-même ou avec ses affiliés, dans ce cas on l'appelle le « Cloud
Privé Interne ». Il peut être géré par un prestataire externe engagé auprès de l'entreprise, auquel
cas il s'appelle le « Cloud externe », accessible via un réseau VPN sécurisé. L'avantage de ce type
de cloud par rapport au public réside dans l'aspect de la sécurité et de la protection des données.
25
Etat de l’art
c) Cloud hybride :
Avec le modèle hybride, les organisations peuvent combiner le privé avec le public, de cette
façon elles déploient des applications centrales et critiques dans leur cloud et déploient le reste sur
le cloud public, ce qui peut réduire considérablement le coût de la construction et des ressources
cloud.
3. Divers services
Le cloud computing peut être divisé en trois couches :
Application
Platform
Infrastructure
26
Etat de l’art
L'infrastructure en tant que service, c'est l’interface dédier aux architectes réseau, la couche
PaaS est destinée aux développeurs, et finalement le logiciel en tant que service est le "produit
final" pour les utilisateurs.
Flexibilité : Le cloud utilise plusieurs locataires pour ces ressources lors de l'exécution, une
application peut utiliser plusieurs ressources.
Cela donne l'occasion de demander d'autres ressources nécessaires.
27
Etat de l’art
Gestion de l'énergie : pour définir un plan de ressources, le fournisseur doit définir une
stratégie de gestion de l'énergie.
Confidentialité et sécurité : dans toute technologie, il y a toujours un problème. Le
problème est lié aux attaques lors des opérations de données.
Gestion des ressources : Cette problématique prend toujours en compte chaque
technologie. En raison de la nature multidimensionnelle des machines virtuelles, la
gestion des ressources est complexe.
Dépendances : dans le cas où une entreprise souhaite des fonctionnalités spécifiques, il
peut être difficile de convaincre le fournisseur de fournir ces fonctionnalités. Les clients
doivent finalement choisir un fournisseur en qui ils ont confiance.
Difficulté à migrer vers un autre : actuellement il n'y a pas de standard entre les
différents agents, donc il y a un risque de transmission de données incompatibles. [10]
28
Etat de l’art
Ci-dessous le tableau qui nous donne une comparaison entre quelques outils :
29
Etat de l’art
De plus les modules bénéficient du support nécessaire pour corriger les erreurs passées et
atteindre un bon niveau de maturité de production. Aujourd'hui, les modules de base sont tous
prêts pour le déploiement en production. Les membres d'OpenStack en sont bien conscients : le
site Openstack.org publie une liste des composants et leurs niveaux de maturité.
La plupart des fournisseurs de cloud public sont déterminés à travailler avec OpenStack car le
projet tend à faciliter l'interaction entre les clouds.
30
Etat de l’art
Le principe d’OpenStack c’est qu’il utilise ces propres ressources pour construire des clouds.
Au lieu d’exécute les commandes, il les diffuse au système d’exploitation. Ces trois technologies
(OpenStack, logiciel de virtualisation et le système d'exploitation) nécessitent de travailler
parfaitement ensemble. Ceci répond aux questions pourquoi plusieurs clouds openstack sont
déployer sous Linux. [11]
31
Etat de l’art
2. L’architecture Openstack
a) Architecture conceptuelle
Openstack se compose d’un ensemble des parties indépendantes, ce sont des programmes et
des services destinés à la création et la préparation de l’environnement cloud. Voilà le diagramme
ci-dessous nous montre les relations entre ces services.
En interne, les services Openstack se constituent d’un ensemble des processus. Chaque service
possède au moins un seul processus d’API qui écoute les requêtes API et les traite ensuite les
transmet aux autres parties du service. Hormis du service d’identité, la tache se fait par des
processus distincts. Pour communiquer entre les processus du chaque service, on utilise le
gestionnaire d’allocation de message AMQP. Les états de chaque service sont stockés dans une
base de données. [12]
32
Etat de l’art
b) Architecture logique
D’un point de vue logique, Openstack peut être représenté par au moins trois services :
33
Etat de l’art
Il gère les accès, les droits, les domaines, les tenants. Il gère également l'accès aux différentes API
du système, les endpoints qui permettront de gérer l'accès aux autres services grâce à ces API.
34
Etat de l’art
Service de compute « Nova » : Le service de calcul est la partie principale d'un système
IAAS. Nova est un contrôleur d’instance de cloud computing, il permet la gestion des ressources :
la création, la suppression.
Nova-api : Service web API RESTful qui accepte les commandes entrantes pour interagir
avec le Cloud.
Nova-compute : C'est un démon qui gère les instances des machines virtuelles.
Nova-scheduler : Il reçoit une requête de la file d'attente et détermine l'hôte du serveur de
calcul sur lequel il doit fonctionner.
Nova-conductor : Il fournit des services de nova-calcul, tels que la mise à jour des bases
de données et la gestion des tâches de longue durée.
Nova-database : Elle stocke les états de construction et d'exécution pour une infrastructure
de Cloud.
Nova-network : C'est un démon ouvrier similaire à nova-compute. Il accepte les tâches de
mise en réseau de la file d'attente et il exécute ensuite des tâches pour manipuler le réseau.
Nova-volume : Il gère la création, l'attachement et le détachement de volumes persistants
des instances.
Service de gestion des réseaux « Neutron » : Neutron est le service qui permet la gestion
réseau dans OpenStack pour facilite la connexion des machines virtuelles entre eux et apporter des
services réseaux (pare-feu, vpn, load balancer…)
35
Etat de l’art
Neutron-server : Ce service s'exécute sur le nœud de réseau pour l'API réseau et ses
extensions. Il applique également un modèle d'adressage et de mise en réseau par port. Le
serveur neutron nécessite un accès persistant indirect à la base de données. Cela se fait via
des plugins, qui communiquent avec la base de données en utilisant AMQP1.
Neutron agent : Il s'exécute sur chaque nœud de calcul pour gérer la configuration du
commutateur virtuel local. Le plug-in utilisé détermine l'agent qui s'exécute. Ce service
nécessite un accès à la file d'attente et dépend du plugin utilisé.
Neutron-DHCP-agent : Il fournit un service DHCP au réseau locataire. Cet agent est le
même pour tous les plug-ins, également responsable de la gestion et de la configuration
DHCP. Il nécessite l'accès à la file d'attente des messages.
Neutron-l3-agent : permet l'accès du réseau externe au virtuel sur le réseau du client. Il
nécessite l'accès à la file d'attente des messages.
Network provider services : Fournit des services de mise en réseau supplémentaires aux
réseaux de locataires.
36
Etat de l’art
Service de stockage par bloc « Cinder » : Cinder est un service de stockage persistant en
mode bloc aux instances en cours d’exécution. Les volumes sont adaptés selon le besoin. Il
interagit avec le service de calcul d'OpenStack afin d’affecter des volumes aux instances. Il gère
donc les opérations de création, d'attachement et de détachement de ces périphériques sur les
serveurs.
Cinder-api : c’est l’api qui accepte les requêtes et les achemine vers cinder-volume pour
l'action.
Cinder-volume : Interagit avec d'autres processus (cinder-scheduler) et réagit en écrivant
ou en lisant dans la base de données Cinder. Il gère aussi les périphériques de stockage en
mode bloc.
Cinder-scheduler : Sélectionne le nœud de stockage de bloc optimal pour créer le volume.
Cinder-database : Stocke la plupart des états des volumes.
Service de stockage par objet « Swift » : Swift est un service de stockage en mode objet
qui se caractérise par sa forte tolérance aux pannes, ce service permet le stockage et la récupération
via une API. Il s'agit du type de stockage le plus couramment utilisé pour stocker tout type de
fichier.
37
Etat de l’art
Service d'orchestration « Heat » : Heat est le projet principal qui permet de traiter
l’orchestration des services OpenStack. En orchestrant les services Heat permet de gérer le cycle
de vie complet des applications ainsi que l’infrastructure à l’aide de services accessibles par
l’homme et la machine dans les clouds OpenStack.
De plus, il n'est pas nécessaire d'installer OpenStack avec tous ces modules ou les modules
qu'il peut fournir. Parce que nous pouvons choisir de n'utiliser que les modules dont nous
avons besoin. L'indépendance de ses modules et la conception de ses composants permet
d'avoir autant d'architectures que de solutions (ou d'applications) cloud à mettre en place.
[14]
VIII. Conclusion
Après avoir présenté l’état de l’art du Cloud Computing et Big Data au cours de ce chapitre,
nous passons au chapitre suivant « Réalisation et Tests ».
38
Réalisation et tests
I. Introduction
Après avoir terminé la spécification des besoins et bien étudier les composants d’OpenStack,
nous présentons dans ce chapitre les recommandations techniques et la mise en œuvre de notre
maquette. Nous avons utilisé deux méthodes pour notre travail : à l’aide du dashboard et par ligne
des commandes.
Noeud contrôleur (Controller node) : Ce nœud exécute plusieurs services tels que le
service de gestion de l'identité, le service de gestion d'images et le tableau de bord. En plus
il traite éventuellement une partie du service de stockage en mode bloc et en mode objet
aussi le service d'orchestration et le service de télémétrie.
Noeud de calcul (Compute node) : Ce nœud exécute certains services comme le service
de gestion des réseaux et celui de la gestion des instances notamment la partie hyperviseur.
Noeud stockage (stockage node) : Ce nœud contient les services de stockage en mode
bloc qui fournit des disques persistants pour les instances et en mode objet qui permet le
stockage et la récupération en mode objet.
39
Réalisation et tests
Pour implémenter une solution Big Data basée sur Hadoop, c'est recommandé d'utiliser au moins
deux noeuds. Pour le mieux fonctionnement du Hadoop il faut ajouter des noeuds supplémentaires.
Master Node ou Name Node (nœud maitre) : Le nœud maître dans un cluster Hadoop
est responsable du stockage des données dans HDFS et de l'exécution du calcul parallèle
des données stockées à l'aide de MapReduce.
Worker Node ou Data Node (nœud esclave) : Chaque DataNode contient un bloc d’un
fichier des données utilisateur. Ce nœud se chargera de répondre aux demandes de lecture
et d’écriture des clients du système de fichiers. Sous les instructions du NameNode, le
DataNode peut également créer, supprimer ou dupliquer des blocs. [15]
40
Réalisation et tests
41
Réalisation et tests
2. Environnement logiciel
VirtualBox
VirtualBox est un logiciel Open Source proposé par Oracle permettant la virtualisation de système
d'exploitation (OS). Cette opération consiste à créer une machine virtuelle utilisant les ressources
physiques de votre ordinateur. [16]
Ubuntu :
Ubuntu est un système libre et ouvert de source de distribution Linux basée sur Debian. Ubuntu
est officiellement publié en trois éditions : Desktop, Server, et Core (pour l’internet des objets et
les robots). Ubuntu est un système d'exploitation populaire pour le Cloud Computing, avec prise
en charge d’OpenStack. [17]
MariaDB :
MariaDB est un système de gestion de bases de données relationnelle (SGBDR) Open Source
C’est une solution de remplacement compatible avec la technologie très répandue des bases de
données MySQL. Il est installé et utilisé lors d’installation de tous les composants d’OpenStack.
MariaDB est utilisé parce qu'il est rapide, évolutif et robuste, avec un riche écosystème de moteurs
de stockage, de plugins et de nombreux autres outils, qui le rendent très polyvalent pour une grande
variété de cas d'utilisation. [18]
Hadoop :
Hadoop est un Framework logiciel open source permettant de stocker des données et de lancer des
applications sur des grappes de machines standards. Cette solution offre un espace de stockage
massif pour tous les types de données, une immense puissance de traitement. Hadoop est composé
de plusieurs éléments : un système de stockage (HDFS), un système de planification des
traitements (YARN) et le Framework de traitement (MapReduce). [19]
Spark :
Apache Spark est un Framework open source permettant le traitement de données rapide dédié au
Big Data. Il permet d'effectuer un traitement à grand volume d'une manière distribuée (cluster
computing). [20]
42
Réalisation et tests
Cassandra :
Apache Cassandra est un système de base de données NoSQL hautement évolutif et disponible qui
facilite le stockage et la gestion à grande vitesse des données structurées sur le serveur. [21]
Tester la connectivité.
43
Réalisation et tests
# add-apt-repository cloud-archive:victoria
Ensuite nous installons le client OpenStack dans tous les nœuds :
44
Réalisation et tests
Pour le nœud contrôleur, nous utilisons « MariaDB » comme support de base de données.
Nous commençons par l’installation du package avec la commande :
# mysql_secure_installation
45
Réalisation et tests
7. Configuration du Memcached
Memcached est un système d'usage général servant à gérer la mémoire cache distribuée.
Le mécanisme d'authentification du service d'identité utilise Memcached pour mettre en
cache les jetons. Sur chaque noeud, nous effectuons cette procédure.
Nous commençons par installer le package avec la commande :
8. Configuration de l’Etcd
Les services OpenStack utilisent Etcd. C’est un fournisseur de clé-valeur distribuée permettant
le verrouillage de clé distribuée, le stockage de la configuration, le suivi de la qualité de service.
46
Réalisation et tests
V. Travail réalisé
L’installation de tous les composants est faite correctement. Nous avons spécifié toutes les
étapes d’installation et de configuration nécessaires pour aboutir la création de notre plateforme.
Au niveau de cette étape, nous testons les différentes fonctionnalités attendues du cloud privé.
1. Vue d’ensemble
Nous accédons via le service d’Horizon, à l’aide de l’adresse : http://controller/horizon à la
plateforme comme il est montré avec la figure ci-dessous.
47
Réalisation et tests
Tous les utilisateurs doivent être authentifier, comme il est présenté dans la figure ci-dessous,
pour accéder à la plateforme. La gestion d’authentification est faite par le service keystone qui est
responsable aussi de la création des projets et des rôles.
48
Réalisation et tests
Le service Horizon est l'implémentation canonique du tableau de bord OpenStack qui fournit
une interface graphique Web à laquelle les administrateurs et les utilisateurs du cloud peuvent
accéder pour gérer les services de calcul, de stockage et de mise en réseau d’OpenStack.
49
Réalisation et tests
L’accès à Horizon et aux API OpenStack s’effectue via des combinaisons identifiant/mot de
passe appelées « OpenStack user ». Vous pouvez créer autant d’utilisateurs OpenStack que
nécessaire et leur attribuer différents droits d’accès.
50
Réalisation et tests
51
Réalisation et tests
La figure suivante montre la liste des rôles disponibles qui ont été créés :
52
Réalisation et tests
Premièrement nous devons télécharger l’image. Dans ce cas nous allons télécharger l’image
Ubuntu20.04.
Les deux figures suivantes présentent les étapes de création de l’image sous le service Glance
a l’aide du format du disque QCOW2 et avec une visibilité publique afin que tous les projets
puissent y accéder :
53
Réalisation et tests
Les deux figures suivantes nous affichent la liste des images existants dans le service Glance :
54
Réalisation et tests
55
Réalisation et tests
Le service neutron nous aide à créer des réseaux afin de connecter les machines virtuelles entre
elles. En plus, il permet l'association d'une adresse IP flottante à la VM afin d'autoriser la
connexion à l’Internet.
Comme c’est montré aux figures ci-dessous, à l’aide de tableau du bord et ligne des
commandes, nous pouvons créer des réseaux en spécifiant le nom, le projet à quel il appartient,
son adresse, l’adresse IP du serveur DNS et la plage des adresses à affecter aux instances.
56
Réalisation et tests
Les deux figures suivantes nous montre la liste des réseaux crées :
57
Réalisation et tests
A l’aide du service Cinder, nous pouvons ajouter un stockage persistant à une instance. Ce
service fournit la possibilité de gestion des volumes. Comme montre les figures ci-dessous, pour
créer un volume, nous devons spécifier le nom de volume, taille en GB.
58
Réalisation et tests
59
Réalisation et tests
Premièrement, nous donnons les noms et le nombre de machines virtuelles comme il est
montré ci-dessous :
60
Réalisation et tests
Puis, nous choisissons le Flavor convenable pour notre instance. Ce service définit la
capacité de calcul, de mémoire et de stockage des instances.
Pour que l’instance soit bien créée, nous devons l’associer à un réseau.
61
Réalisation et tests
En plus, nous choisissons le groupe de sécurité. Ce sont des règles qui permettent aux
utilisateurs de faire un ping et d'utiliser le protocole SSH pour se connecter à l'instance.
Nous choisissons une paire de clés pour notre instance. Ceux sont des informations
d’identification SSH qui sont insérées dans une instance lors de son lancement.
62
Réalisation et tests
63
Réalisation et tests
64
Réalisation et tests
65
Réalisation et tests
Comme c’est montré dans la figure suivante Spark est correctement installé avec la version 3.2.1 :
VI. Conclusion
Dans ce chapitre, nous avons présenté la réalisation de notre projet tout en montrant
l’architecture de notre solution. Nous avons aussi précisé le matériel utilisé et nous avons testé la
validité de notre implémentation
66
Conclusion Générale
Le Cloud Computing est un domaine en plein essor qui répond à un grand nombre de besoins
des entreprises. L’investissement dans ce domaine attire donc de plus en plus les ingénieurs
réseaux qui ne cessent de proposer des solutions de Cloud variées en qualité de service fiable et
rentable.
Dans le cadre de notre stage de fin d’études, nous avons mis en place une solution de big data
dans une plateforme Cloud Computing basée sur la technologie OpenStack. L’implémentation
d’une telle architecture est assez complexe et elle est onéreuse en termes de temps. Nous avons pu
par la suite tester l’ensemble des fonctionnalités d’Opentack.
Nous souhaitons par la suite intégrer un système de détection des défaillances et alarme pour
informer l’administrateur ou l’utilisateur à propos des problèmes aussi automatiser la prise de
sauvegardes et les snapshots pour tous les projets.
67
Neto-graphique
[1] https://www.tunisietelecom.tn/Fr/Particulier/A-Propos/Entreprise
[2] https://www.lebigdata.fr/definition-big-data
[3] https://blog.avanci.fr/le-big-data-et-les-4-v-de-la-donnee
[4]https://aptude.com/fr/blog/entr%C3%A9e/5-cas-d%27utilisation-du-Big-Data-couramment-
rencontr%C3%A9s-dans-les-organisations/
[5] https://www.piloter.org/business-intelligence/technologie-big-data.htm
[6] https://www.ibm.com/fr-fr/cloud/learn/cap-theorem
[7] https://www.lebigdata.fr/chiffres-big-data
[8] https://datascientest.com/hadoop
[9] https://www.appvizer.fr/magazine/services-informatiques/virtualisation/type-virtualisation
[10] https://www.lebigdata.fr/definition-cloud-computing
[11] https://www.redhat.com/fr/openstack-35971
[12] https://docs.openstack.org/install-guide/get-started-logical-architecture.html
[13]https://www.unixarena.com/2015/08/openstack-architecture-and-components-
overview.html/
[14] https://fr.slideshare.net/AhmedSlim4/mise-en-place-dune-infrastructure-base-sur-openstack
[15]https://sysblog.informatique.univ-paris-diderot.fr/2020/03/26/architecture-technique-de-
hadoop/
[16] https://en.wikipedia.org/wiki/VirtualBox
[17] https://fr.wikipedia.org/wiki/Ubuntu_(syst%C3%A8me_d%27exploitation)
[18] https://en.wikipedia.org/wiki/MariaDB
[19] https://www.lebigdata.fr/hadoop
[20] https://www.lebigdata.fr/apache-spark-tout-savoir
[21] https://cassandra.apache.org/_/index.html
[22] https://docs.openstack.org/install-guide/environment.html
68