Mémoire
Mémoire
Mémoire
Le théme
Réaliser par :
REZZOUG Lamine
ZENATI Massinissa
2020-2021
REMERCIEMENT
Introduction générale 2
I
I.8.1 Les centres de données et fermes de serveurs . . . . . . . . . . . . . 10
I.8.2 Virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
I.8.3 Interfaces de programmation d’applications . . . . . . . . . . . . . . 10
I.8.4 Le cryptage dans le cloud . . . . . . . . . . . . . . . . . . . . . . . 11
I.9 Avantages et inconvénients du cloud computing . . . . . . . . . . . . . . . 11
I.9.1 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
I.9.2 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
I.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
IV Réalisation 45
IV.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
IV.2 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . 45
IV.2.1 Visual studio code . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
IV.2.2 Node js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
IV.2.3 Mongo Atlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
IV.2.4 Visual Paradigm for UML . . . . . . . . . . . . . . . . . . . . . . . 46
IV.2.5 Postman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
IV.3 Technologies logicielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
IV.3.1 Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
IV.4 Organisation du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
IV.4.1 Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
IV.4.2 Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
IV.5 diagrame de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
IV.6 Présentation des interfaces de l’application . . . . . . . . . . . . . . . . . . 50
IV.6.1 interface d’Authentification . . . . . . . . . . . . . . . . . . . . . . 50
IV.6.2 Interface principale de l’administrateur . . . . . . . . . . . . . . . . 51
IV.6.3 Interface ajouter un compte . . . . . . . . . . . . . . . . . . . . . . 51
IV.6.4 Interface modifier compte . . . . . . . . . . . . . . . . . . . . . . . 52
IV.6.5 Interface d’ajout de fichier . . . . . . . . . . . . . . . . . . . . . . . 53
IV.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Conclusion générale 54
Bibliographie 55
Table des figures
V
IV.3 Organisation du code Frontend. . . . . . . . . . . . . . . . . . . . . . . . 49
IV.4 diagramme de Déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . 50
IV.5 Interface d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . 51
IV.6 Interface principale de l’administrateur . . . . . . . . . . . . . . . . . . . . 51
IV.7 Interface d’ajout des comptes . . . . . . . . . . . . . . . . . . . . . . . . . 52
IV.8 Interface modifier compt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
IV.9 Interface d’ajout de fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Liste des tableaux
VII
Liste des abréviations
CC Cluster Controller
UC Central Unit
UP Unified Process
2
Chapitre I
I.1 Introduction
L’informatique a toujours evolué, elle a mis de nouvelles technologies pour répondre
à de nouvelles demandes. L’informatique est centralisé avec l’avènement des data center.
Et surtout, elle se dématérialise et devient ”l’informatique dans les nuages”, ou Cloud
Computing. La puissance informatique se virtualise et se consomme à l’endroit et au
moment où on en a besoin et devient extensible tout ceci grâce à l’internet.
Dans ce chapitre, nous présenterons les principales caractéristiques du Cloud com-
puting, ses types de services (Saas, Paas, Iaas), et les types de système (public, privé,
hybride, communautaire), ainsi que ses composantes technologiques.
I.2 Définition
Le Cloud Computing est un concept qui consiste à stoker et accéder à des données sur
des serveurs distants via internet. Le cloud se repose sur une architecture distante. Un
fournisseur assure la continuité du service, la maintenance, et le support d’exploitation.
Ce modèle offre des services de différentes natures, allant des services d’infrastructure
(location de capacités de stockage ou de calcul), des services de plateforme (location
d’environnements de développement préconfigurés) ou de services d’applications (location
d’applications).
3
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
• Accessibilité via le réseau : Les services sont accessibles en ligne et sur tout type
de support. Tout se passe dans un navigateur Internet.
• Solution multi client : Une même instance d’un logiciel est partagée par l’en-
semble des clients de façon transparente et indépendante. Tous les clients utilisent
la même version du logiciel et bénéficient instantanément des dernières mises à jour.
Chaque client dispose d’un paramétrage utilisateur qui lui est propre.
Page 4/57
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
• IaaS (Infrastructure as a Service) : C’est une offre proposant des machines vir-
tuelles de traitement et des capacités de stockage virtuel qui sont gérées à distance
par les utilisateurs. Certains fournisseurs peuvent proposer des prestations supplé-
mentaires telles qu’une exploitation de premier ordre des équipements physiques.
Figure I.1 – Différentes couches de services offerts par le cloud computing [2]
Page 5/57
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
Les utilisateurs n’ont aucun contrôle de l’infrastructure ni aucun pouvoir d’audit. Les
fournisseurs mettent à disposition des ressources –par exemple applicatifs ou capacités de
stockage – accessibles au moyen de connexions de type internet ou réseau privé virtuel. Les
infrastructures et les logiciels associés sont la propriété des fournisseurs. L’utilisateur paie
pour les services consommés grâce à des moyens appropriés de facturation. La sécurité est
moins élevée que dans le cloud privé. Il existe trois grandes classes de cloud publics :
• Cloud gratuit : aucun cout n’est à supporter par l’usager. Le business model repose
sur la génération de revenus par la publicité. Les services offerts se limitent par
exemple au courrier électronique et à celui d’un moteur de recherche. Aucune mesure
de sécurité n’est mise à disposition. Le terminal est la cible potentielle de spams et
de cookies, souvent dans le cadre de ce qui est appelé le one-to-one marketing.
• Cloud payant à services non négociables : il n’y a pas de publicité et des méca-
nismes de sécurité sont disponibles. Les termes du contrat de services sont prédéfinis
et ne sont pas négociable. De plus, ils peuvent être modifiés unilatéralement par le
fournisseur.
Parmi les cloud publics on y retrouve : Microsoft azure, Google cloud, Amazone web
service (AWS) [2].
Page 6/57
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
Les deux approches précédentes sont combinées. Les données considérées comme cri-
tiques par l’entreprise sont maintenues dans des domaines privés, alors que les données
moins critiques sont logées dans un cloud public. Entre les deux peut être mis en place
une passerelle de façon à permettre l’échange de données de manière sécurisée. La sécu-
rité des données constitue donc un facteur déterminant de prise de décision dans les choix
d’architecture cloud [2].
Il s’agit d’une configuration fermée partagée par plusieurs organisations. Elle peut être
constituée d’un périmètre de plusieurs cloud privés connectés entre eux et isolés vis-à-vis
de l’extérieur [2].
• Client cloud : Une personne ou une organisation qui entretient une relation d’af-
faires ou utilise le service de fournisseur cloud ou bien les deux
Page 7/57
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
• Vérificateur cloud : Une entité qui peut procéder à une évaluation indépendante
des services de cloud computing, au fonctionnement du système d’inf1ormation, à
la performance et à la sécurité de la mise en œuvre du cloud.
Les failles de sécurité du cloud computing sont devenus une principale problématique,
parmi ces problèmes [2] :
• Les plates-formes partagées sont moins sécurisées que les plates-formes monoutili-
sateur.
Beaucoup de grandes entreprises sont encore en train d’établir des modèles pour la
gestion des données dans le cadre des services cloud et pour leur protection. Ces points
sont d’autant plus importants quand il y a des réglementations à respecter comme la
légalisation de l’union européenne sur la protection des données [2].
Page 8/57
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
• Tous les fournisseurs de services ne proposent pas toujours des accords de niveaux
de service bien définis ou ceux proposés ne satisfont pas les exigences des entreprises.
Par exemple, le temps de reprise du fonctionnement après arrêt est décrit par les
meilleurs délais, au lieu d’une durée déterminée ou d’une plage horaire. Les mesures
correctives du fournisseur ne couvrent pas les pertes potentielles du client en cas de
panne.
• Les clients sont pratiquement dans l’incapacité d’influencer les termes des contrats
de service. Du point de vue du fournisseur de service, il est également difficile de
pouvoir personnaliser les contrats pour chaque client.
• Des supports logiciels qui doivent résider dans le cloud pour des raisons de perfor-
mance, mais pour lesquels des licences ne peuvent être accordées pour des environ-
nements cloud.
Page 9/57
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
Un centre de données (data center) est un site physique sur lequel se regroupe des
équipements constituants un système d’information de l’entreprise (mainframes, serveurs,
baies de stockage, équipements réseaux, etc.). Il peut être interne ou externe a l’entreprise
[5].
I.8.2 Virtualisation
• Combinaison d’entités physique multiples en une seule entité disposant d’un large
spectre de fonctionnalités et de grandes capacités qu’une seule entité physique ne
pourrait fournir.
API (Application Programming Interface) offre des fonctionnalités aux clients, comme
l’auto-approvisionnement et le contrôle des services et des ressources. Ils permettent éga-
lement la communication entre les applications étrangères et le service sur le cloud. Le
type d’API dépend du modèle de déploiement [5].
Page 10/57
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
Le cryptage est le processus de codage des messages ou des informations d’une manière
que seuls les parties autorisées puissent lire cette information, empêchant ainsi des parties
indésirables à les intercepter. Cela se fait habituellement à l’aide d’une clé de cryptage
qui spécifie la façon dont le message est codé. Ensuite, la partie autorisée utilise une clé
de décryptage secrète pour déchiffrer le message et le lire [5].
I.9.1 Avantages
• Accessibilité garantie : avec le cloud, les services et les applications sont acces-
sibles à tout moment et depuis n’importe quel ordinateur, téléphone portable ou
tablette.
• Flexibilité et partage : les services sont flexibles et peuvent être ajustés à tout
moment en fonction des besoins et de l’activité de l’entreprise. Celle-ci peut di-
minuer ou augmenter les ressources disponibles, payant ainsi seulement ce qu’elle
consomme. Ces ressources peuvent être partagées permettant aux employés de tra-
vailler à plusieurs sur un même document, et ce en temps réel.
I.9.2 Inconvénients
Page 11/57
CHAPITRE I. GÉNÉRALITÉ SUR LE CLOUD COMPUTING
I.10 Conclusion
Le cloud computing est l’une des grandes révolutions informatiques, dans la manière
de gérer et de partager des ressources informatiques, c’est une technologie qui permet
d’effectuer plusieurs taches à moindre couts.
Page 12/57
Chapitre II
II.1 Introduction
L’explosion de l’usage des Smartphones et le développement des Cloud a engendrée
une masse gigantesque de données de manière plus ou moins temporaire et sécurisé. A
chaque avancée technologique, le nombre d’utilisateurs croît et les données qui seront
stockée augmenteront en parallèle avec ce dernier.
• Front-end.
• Back-end.
II.2.1 Front-end
13
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
II.2.2 Back-end
Il se compose de toutes les ressources nécessaires pour fournir des services de cloud
computing. Il comprend un énorme stockage de données, des machines virtuelles, un
mécanisme de sécurité, des services, des modèles de déploiement, des serveurs, etc.
• Service : c’est l’un des composants les plus importants du cloud. Il fait référence
aux trois principaux types de services (Saas, Paas, Iaas). Il gère le type de service
auquel l’utilisateur accède.
Page 14/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
• Mode fichier : Le stockage en mode fichier est le plus utilisé sur les systèmes NAS 1 .
Il permet d’organiser les données et de les présenter aux utilisateurs. Sa structure
hiérarchique permet de parcourir les données du haut vers le bas en toute simplicité,
mais augmente le temps de traitement.
• Mode bloc : Le stockage en mode bloc permet de diviser un seul volume de sto-
ckage en plusieurs instances individuelles appelées blocs. Il s’agit d’une solution de
stockage rapide à faible latence, idéale pour les charges de travail hautes perfor-
mances.
• Mode objet : Le stockage en mode objet attribue à chaque donnée des identifiants
uniques, que l’on appelle les métadonnées. Compte tenu du fait que les objets ne
sont ni compressés ni chiffrés, ils sont rapidement accessibles à très grande échelle.
Il s’agit donc d’une solution idéale pour les applications Cloud native.
Page 15/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
• Données relatives aux applications critique dont l’accessibilité rapide est indispen-
sable et qui sont conservées sur des supports : data sensitive applications.
• Données utilisées pour des calculs qui nécessite peu d’entrées/sorties : computing
intensive applications.
Architectures NAS (Network attached Storage) pour laquelle les ressources de stockage
sont distribuées sur le réseau accessible au moyen de protocoles de haut niveau tels que
NFS (network file system) assure un accès transparent a des ressources distantes en don-
nant l’impression à l’utilisateur que ces ressources sont locales, quels que soient les réseaux
et protocoles utilisé, il est indépendant du système d’exploitation même s’il doit maintenir
la sémantique UNIX.
Page 16/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
• Avantage
— Meilleur performance.
— Configuration simple.
• Inconvénients
Architectures SAN (Storage area network) est configurée autour de réseaux à haut débit
auxquels sont connectées des unités de stockage fonctionnant indépendamment.
• Avantage
Page 17/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
— Fournit une capacité disque illimitée avec l’ajout sans cesse de nouveaux péri-
phériques de blocs pour sauvegarder les données.
• Inconvénients
La phase liée à l’envoi des données depuis les systèmes internes d’une entreprise vers le
Cloud. Les données peuvent être chiffrées en internes par l’entreprise et ensuite envoyées,
ou alors on utilise une couche de transport intégrant cette fonction de chiffrement. Dans
cette seconde catégorie, les protocoles standards qui sont IPSEC (internet Protocol Secu-
rity) et SSL (secure socket layer) sont très répandus. En liaison avec une authentification
basée sur des clés asymétriques (certificats à clé publique par exemple), ces protocoles
permettent de transmettre des données en toute sécurité vers ou depuis le Cloud, ainsi
les systèmes deviennent fiables et faciles à utiliser [9].
Page 18/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
• Une clé publique : celle-ci est installé sur une plateforme en ligne et permet
aux utilisateurs de chiffrer leurs informations avant qu’elles soient envoyées (leurs
identifiants de connexion par exemple).
• Une clé publique : celle-ci est installé sur une plateforme en ligne et permet
aux utilisateurs de chiffrer leurs informations avant qu’elles soient envoyées (leurs
identifiants de connexion par exemple).
IPsec (Internet Protocol security) est un cadre normalisé pour sécuriser les communi-
cations IP en cryptant et/ou en authentifiant chaque paquet IP dans un flux de données.
Ce dernier a deux mode de fonctionnement :
• Mode transport : Dans ce mode uniquement les données transférées sont chiffrés
et/ou authentifiers. Le reste du paquet IP est inchangé et de ce fait le routage des
paquets n’est pas modifié.
• Mode tunnel : Dans ce mode c’est la totalité des paquet IP qui sont chiffré et/ou
authentifiés.
Les données fraichement crées ou récolté doivent être stockées dans un environnement
sécurisé est protégé. De ce fait un process de restauration doit voir le jour afin de s’assurer
de la bonne conservation des datas dans le cycle.
Dans cette étape, les données collectées doivent être traitées, elles peuvent subir soit :
Page 19/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
Lors de cette étape, une copie des données est créée puis stockée dans un nouveau
support afin d’optimiser sa sécurité, elle peut être réaliser plusieurs fois lors du cycle de
vie des données.
Les données peuvent être réutiliser pour de nombreuse raisons par exemple : répondre
à une interrogation, ajouter des données nouvelles pour les ajouter a des anciennes données
afin d’obtenir de nouveaux résultats, . . . ect
Une fois que des données ont été récupérées depuis un Cloud, il est important de
s’assurer leur destruction. Il convient de demander quels sont les engagements, moyens et
procédures mise en œuvre par un fournisseur pour effacer toute trace de vos données. Dans
ce cas, le chiffrement peut être utilisé. En effet, sans la clé pour les déchiffrer, des données
préalablement chiffrées sont totalement inutilisables. Donc pour détruire des données, il
suffit de détruire la clé de chiffrement. C’est ce concept qui permet de s’assurer que des
données sont bien inaccessibles même dans le cas extrême où un fournisseur de Cloud
vient de détruire la clé sans prévenir.
Contrôler l’accès aux données s’appuie sur des mécanismes d’authentification. Une
personne, un système ou un programme doit être fiable (saint) afin de pouvoir accéder
aux données. Cloud Identity and Access Management (IAM) permet aux administrateurs
Page 20/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
d’accorder les autorisations nécessaires aux utilisateurs intervenant sur des ressources
spécifiques. Grâce à cette solution, contrôler complètement l’accès aux ressources Cloud
et leur visibilité afin de centraliser leur gestion.
La réplication est la copie continue des changements de données d’un site principale
vers un site secondaire. Les deux sites sont généralement situés dans différents serveurs
physiques, résultant dans le cadre de l’équilibrage de charges en répartissant les requêtes,
offrant ainsi une capabilité de reprise. Le serveur secondaire peut être configuré comme
un serveur de secours en cas de défaillance du serveur principal [10].
• Réplication instantanée : Les données sont copiées du site principal vers les se-
condaires. Les changements au niveaux des sites secondaires doivent provenir du
principal. Ainsi, seuls les secondaires sont interrogés, mais leurs données ne peuvent
être modifiées par les clients.
• Réplication par fusion : Les données sont combinées de deux ou plusieurs sites
vers un troisième site. Cette méthode est plus difficile à mettre en œuvre qu’une
réplication instantanée.
• Réplication synchrone : Garantit que, lorsqu’une transaction met à jour une réplique
primaire, toutes ses répliques secondaires sont mises à jour dans la même transaction.
L’avantage essentiel de la mise à jour synchrone est de garder toutes les données
au dernier niveau de mise à jour. Le système peut alors garantir la fourniture de
la dernière version des données quel que soit la réplique accédée. Les inconvénients
sont cependant multiples, ce sont d’une part, la nécessité de gérer des transactions
multiples coûteuses en ressources et d’autre part, la complexité des algorithmes de
Page 21/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
gestion de panne d’un site, etc. C’est pour cela que l’on préfère souvent le mode de
mise à jour asynchrone.
Page 22/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
• La synchronisation des mises à jour entre les environnements distribués est compli-
quée car la copie de données à partir de diverses sources à des intervalles de temps
différents peut entraîner une désynchronisation de certains ensembles de données
avec le reste.
II.6 Authentification
L’authentification est le processus qui consiste à déterminer l’identité d’un principal
de sécurité. L’autorisation consiste à accorder à un principal authentifié l’autorisation
d’effectuer une action ou d’accéder à une ressource. Parfois, l’authentification est raccour-
cie AuthN et l’autorisation est raccourcie vers AuthZ . Les applications Cloud natives
doivent s’appuyer sur des protocoles HTTP ouverts pour authentifier les principaux de
sécurité, car les clients et les applications peuvent s’exécuter n’importe où dans le monde
sur n’importe quelle plateforme ou n’importe quel appareil. Le seul facteur commun est
HTTP.
Les solutions open source du Cloud computing sont destinées au déploiement de l’ar-
chitecture en privé pour un usage en interne.
II.7.1.1 OpenNebula
Il s’agit d’une plateforme purement open source permettant de déployer des Cloud
privés, publics et hybrides. Elle est centrée autour d’un nœud appelé front-end qui per-
met de superviser toute l’architecture, et elle est basé sur la personnalisation en offrant
plusieurs modules configurables et adaptés aux besoins, ce qui est un avantage mais aussi
Page 23/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
Tools : C’est l’ensemble des outils de gestion de l’architecture. Il est constitué des inter-
faces de lignes de commandes CLI (Command Line Interface) pour l’interaction avec le
système.
Driver : C’est à ce niveau que se déroulent les processus liés aux transferts de machines
virtuelles d’un nœud à un autre.
3. Un protocole RPC, une spécification simple et un ensemble de codes qui permettent à des processus
s’exécutant dans des environnements différents de faire des appels de méthodes à travers un réseau
Page 24/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
II.7.1.2 Eucalyptus
Eucalyptus est un outil open source développé en C, Java, Python.eucalyptus est dis-
ponible en deux licence, une licence GPL (General Pblic License) gratuite supportant
les hyperviseurs Xen (un hyperviseur de machine virtuelle) et KVM (Kernel-based Vir-
tual Machine) et une licence commerciale offrant des fonctionnalités avancées telles que
le support de VMware. Eucalyptus permet de construire des solutions privées du Cloud
computing, son principal avantage c’est qu’il est intégré dans les distributions Ubuntu et
Debian. L’architecture d’Eucalyptus est constituée de quatre composants principaux[14].
Page 25/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
Page 26/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
II.7.1.3 Openstack
OpenStack est une plateforme qui permet de créer et gérer des clouds privés ou pu-
blics à partir de pools de ressources virtuelles. Il est constitué d’un ensemble d’outils qui
permettent d’assurer les principaux services du Cloud computing tel que le calcul, la mise
en réseau, le stockage, etc[15].
Composants
Six services essentiels assurent la puissance de calcul, la mise en réseau, le stockage, la
gestion des identités et la gestion des images.
Nova : C’est un outil qui permet de gérer des ressources de calcul d’OpenStack et des
accès, et de gérer la planification, la création et la suppression des ressources.
Neutron : Permet de connecter les réseaux pour tous les autres services OpenStack.
Swift : C’est un service de stockage en mode objet à forte tolérance aux pannes, qui
permet de stocker et récupérer les objets de données non structurées au moyen d’une API
RESTful.
Cinder : Cinder est un service de stockage persistant en mode bloc, accessible via une
API en libre-service.
Glance : Permet de stocker et récupérer les images disque des machines virtuelles, depuis
Page 27/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
divers emplacements.
C’est une plateforme de Microsoft pour les services PaaS du cloud computing.
Il s’agit d’une plateforme de développement d’applications fournissant les services d’exé-
cution et d’administration d’applications en offrant les outils nécessaires.
Page 28/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
Azure est une plateforme flexible qui supporte plusieurs langages de Programmations tels
que .Net, C, Java, PHP, Python, etc. De plus, elle supporte les Standards et protocoles
tels que SOAP, XML[16].
Microsoft azure est constitué de trois composants :
— Windows azure : Windows azure est la plateforme en elle-même peut à son tour
être diviser en 3 composants :
— Storage : Permet aux développeurs de stocker dans une instance azure des
données non relationnelles
— SQL azure : SQL azure est un système de gestion de base de données dans le cloud.
Son utilisation revient à utiliser une base de données SQL server.
— Service bus : Permet d’exposer des services simplement, puis le bus se charge
du routage des requêtes vers le service concerné. Il supporte des connexions en
full duplex, et proposes des accès au choix par REST, tcp ou http.
— Access control : Permet de gérer l’accès au service bus suivant des mécanismes
tel que ’ OAUTH’ et les simples ‘web tokens’ (SWT) pour les services REST.
Page 29/57
CHAPITRE II. ARCHITECTURE ET FONCTIONNEMENT D’UN CLOUD
pour exécuter des applications sur l’infrastructure Amazon Web Services (AWS).
AWS est une plateforme de Cloud computing, alors qu’EC2 est un service qui permet
d’exécuter des programmes applicatifs.
Dans le but de satisfaire les besoins de chacun, Amazon propose une gamme de types
d’instances aux configurations différentes en termes d’UC (Central Unit), de mémoire, et
de ressources de stockage et réseau.
Ces dernières sont regroupées en catégorie selon des profils applicatifs cibles : général,
optimisé pour le calcul, instances GPU (Graphics Processing Unit), optimisé pour la
mémoire, optimisé pour le stockage et micro-instances.
Les instances sont créées à partir d’images machines AMI (Amazon Machine Images). Ces
images machines sont comparables à des modèles configurés avec un système d’exploitation
et d’autres logiciels, le tout formant l’environnement d’exploitation de l’utilisateur.
Les utilisateurs peuvent sélectionner une instance AMI auprès d’AWS, de la communauté
des utilisateurs ou d’AWS Marketplace. Ils peuvent également créer leurs propres AMIS et
les partager. L’utilisation des services d’Amazon est facturée selon le temps d’utilisation
des machines louées[17].
II.8 Conclusions
Dans ce chapitre, nous avons mené une étude sur le système de stockage des données
dans un cloud ainsi que les alternatives open source est propriétaire des plateformes du
cloud computing. Ceci nous a permis d’avoir une idée sur les techniques disponibles pour
la création d’un environnement du cloud.
Page 30/57
Chapitre III
III.1 Introduction
Dans ce chapitre on s’intéresse à l’étude et la conception d’un mini Cloud destiné aux
étudiants de l’université de Bejaia. Le langage de modélisation engagé pour ce fait est
l’UML qui est consacré à faire une étude préliminaire de l’application à concevoir. Ce
présent chapitre offre également une conception UML bien détaillé de l’application que
nous allons réaliser après cette étape de conception.
III.2 Problématique
L’université de Bejaia dispose d’un nombre de ressources et de matérielles comme les
serveurs, les Datacenter. Notre travail de master est de mettre en place une solution afin de
permettre aux étudiants appartenant à l’université de partager entre eux des documents
comme des cours, exercices, etc.
Quel type de solution choisir ? Quel est le matérielle nécessaire ? Est-ce que cette solution
est adaptée pour notre université ?
31
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
3. Frontend envoi une requête aux Backend pour utiliser l’API adéquat.
Page 32/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
III.5.1 Le formalisme
UML, est l’acronyme anglais pour « Unified Modeling Language ». On le traduit par
« Langage de modélisation unifié ». La notion UML est un langage visuel constitué d’un
ensemble de schéma, appelés des diagrammes qui donnent chacun une vision différente
du projet à traiter. UML nous fournit donc des diagrammes pour représenter le logiciel
à développer : son fonctionnement, sa mise en route et les actions susceptibles d’être
effectuées par le logiciel [19].
UML dans sa 2ème version (UML 2.0) propose treize (13) diagrammes pouvant être
utilisés dans la description d’un système. Ces diagrammes sont regroupés dans deux grands
ensembles [20] :
Page 33/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
• Étudiants : C’est les étudiants de l’université de Bejaia, qui peuvent soit ajouter
des fichiers, consulter ou supprimer des fichiers dans la plateforme et modifier leurs
compte.
Page 34/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
La description des cas d’utilisations prend souvent une forme rédigée qui convient
mieux à la Communication avec les utilisateurs. Des règles de structuration doivent être
appliquées pour en faciliter l’expression, la compréhension et la cohérence.
Se connecter à l’application.
Le système affiche l’interface d’authentifica-
tion.
L’utilisateur saisi son nom de l’utilisateur et
son mot de passe.
Scénario nominal
Le système vérifié la conformité des informa-
tions saisies puis valider.
Le système récupère l’animation du mot tra-
duie dans l’ontologie.
Le système affiche le résultat à l’utilisateur
Page 35/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
Précondition S’authentifier
Page 36/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
Précondition S’authentifier
Page 37/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
Page 38/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
Page 39/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
Page 40/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
Page 41/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
Page 42/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
Page 43/57
CHAPITRE III. CONCEPTION ET RÉALISATION D’UN MINI CLOUD
ÉTUDIANTS
III.11 Conclusion
Nous avons présenté dans ce chapitre la phase de conception de notre projet via les
diagrammes de séquence, qui nous ont permis de décrire de manière globale et détaillée
le fonctionnement désiré du système que nous avons implémenté. Nous avons recensé par
la suite le diagramme de classe qui nous permet d’avoir le schéma de la base de données
de l’application à réaliser.
Page 44/57
Chapitre IV
Réalisation
IV.1 Introduction
La réalisation de notre application web a nécessité l’utilisation de plusieurs technolo-
gies spécifiques. Nous allons donc présenter notre environnement de développement, les
diférents langages de programmation, en précisant les différents outils auxquels nous avons
eu recours, ainsi que les principales interfaces graphiques.
Visual Studio Code est un éditeur de code multiplateforme, open source et gratuit
développé par Microsoft. Il est livré avec une prise en charge intégrée de JavaScript, Type-
Script et Node.js et dispose d’un riche écosystème d’extensions pour d’autres langages
(C++, C, Java, Python, PHP, Go) et des environnements d’exécution (tels que .NET et
Unity)[21].
45
CHAPITRE IV. RÉALISATION
IV.2.2 Node js
Nodejs est un environnement d’exécution JavaScript asynchrone piloté par des événe-
ments, il est conçu pour créer des applications réseau évolutives.
Parmi les modules natifs de Node.js, on retrouve http qui permet le développement de
serveur HTTP. Ce qui autorise, lors du déploiement de sites internet et d’applications web
développés avec Node.js, de ne pas installer et utiliser des serveurs webs tels que Nginx
ou Apache [22].
MongoDB Atlas est le service de base de données cloud mondial pour les applications
modernes. Déployez MongoDB entièrement géré sur AWS, Azure ou GCP. Une automati-
sation de pointe et des pratiques éprouvées garantissent la disponibilité, l’évolutivité et la
conformité aux normes de sécurité et de confidentialité des données les plus exigeantes[23].
Visual Paradigm for UML est un logiciel de création de diagrammes, dans le cadre
d’une programmation tout-en-un, il possède plusieurs options, permettant une large pos-
sibilité de modélisation en UML.
Page 46/57
CHAPITRE IV. RÉALISATION
IV.2.5 Postman
Postman est une plate-forme d’API pour la création et l’utilisation d’API. Il simplifie
chaque étape du cycle de vie des API et rationalise la collaboration afin de pouvoir créer
de meilleures API, plus rapidement.
IV.3.1 Javascript
Page 47/57
CHAPITRE IV. RÉALISATION
IV.4.1 Backend
Le rôle de cette partie c’est gérer la communication entre la base de donné mongo-
atlas est notre application comme aussi dans cette partie en trouve des fichiers distinct :
Controllers, middlewares, models, routes.
Page 48/57
CHAPITRE IV. RÉALISATION
IV.4.2 Frontend
Page 49/57
CHAPITRE IV. RÉALISATION
Page 50/57
CHAPITRE IV. RÉALISATION
La figure IV.6.3 l’interface d’ajout d’un compte nous permettra d’ajouter des compte
étudiants ou administrateurs en saisissons leur donnés et choisir le type du compte qui
Page 51/57
CHAPITRE IV. RÉALISATION
Page 52/57
CHAPITRE IV. RÉALISATION
La figure IV.6.5 représente l’interface qui permet à l’étudiant d’ajouter un fichier pdf.
IV.7 Conclusion
La phase de réalisation et importante dans le cycle de vie d’une application. Dans ce
dernier chapitre nous avons présenté les étapes de réalisation de notre application mini
cloud pour les étudiants de l’université de Bejaia et les different outils de développements
que nous avons utilisé.
Page 53/57
Conclusion générale
Ce travail se résume en la conception et la réalisation d’un mini cloud pour les étudiants
de l’université de Bejaïa.
Pour cela, nous avons créé un mini cloud vu la difficulté du thème nous avons réussi
à implémenté une application web qui permet à des étudiants de déposer un type de
document et de le retirer à la demande.
Ce travail nous a permis d’apprendre avec précision, les différentes étapes de la concep-
tion et réalisation d’une application web, qui peuvent être pratique et théorique. Le déve-
loppement de cette application nous a permis aussi d’enrichir nos connaissances dans les
différents langages et outils auxquels nous avons eu recours, à savoir visual studio code,
UML, Mongo-db, ainsi que JavaScript, Html, Css. En ce qui concerne l’aspect humain, ce
travail d’équipe nous a donné un aperçu sur la vie professionnelle, à mieux nous organiser
dans notre travail, afin d’accomplir les tâches qui nous sont confiées dans les meilleures
conditions et dans les plus brefs délais. Grâce à cette application, nous espérons faciliter
la gestion des fichiers pour les étudiants pour un meilleur parcours universitaire.
Ceci n’est qu’un commencement pour la conception et la réalisation d’un véritable
cloud pour toute la communauté estudiantine de Bejaia. Les perspectives sont donc les
suivantes :
• Elargir le mini-cloud pour qu’il puisse gérer plusieurs types de documents, et un
grand nombre d’utilisateurs.
54
Bibliographie
[1] D.Martinez. Privacy and confidentiality issues in cloud computing architectures. Mé-
moire de master en informatique, Université polytechnique, Catalogne, 2013.
[2] Jean-Pierre Briffaut, François Stéphan, Cloud computing évolution technologique ré-
volution des usages, ISBN 978-2-7462-4511-2, Lavoisier, Paris, 2013.
[3] Le cloud computing une nouvelle filiere fortement structurante. Direction regionale
des entreprises, de la concurrence, de la consommation du travail et de l’emploi (DI-
RECCTE) ILE-DE-FRANCE, septembre 2012.
[4] R.Bohn, J.Messina, F.Liu, J.Tong, and J.Mao. NIST :cloud computing reference ar-
chitecture. Rapport de recherche, National Institute of Standards and Technology,
Etats-Unis, 2011.
[5] Z.Aouameur and H.Tahrine. Comparaison et mise en place des plateformes de cloud
computing : Openstack et eucalyptus. Mémoire master académique en informatique
industrielle, Université Kasdi Merbah, Ouargla, 2013.
[6] Redhat,data-storage [en ligne] consulté le [mois de Mars 2021] Disponible sur : https:
//www.redhat.com/fr/topics/data-storage/what-is-cloud-storage
[7] https://www.unedose.fr/article/network-storage-solutions-explained-\
cloud-vs--nas-vs--san-vs--das consulté le [mois de Juin 2021]
[9] https://fr.sawakinome.com/articles/security/difference-between-ipsec-and-ssl.
html consulté le [mois de Avril 2021]
[10] https://www.spoonylife.org/algorithms-and-computation/
methodes-de-clustering consulté le [mois de Juin 2021].
55
BIBLIOGRAPHIE
[11] L. M. Vaquero, L. Rodero-Merino, Finding your Way in the Fog : Towards a Com-
prehensive Definition of Fog Computing,ACM SIGCOMM Computer Communication
ReviewVolume 44Issue 5October 2014 pp 27–32, 2014.
[15] Redhat,Architecture openstack [en ligne], consulté le [mois de Juin 2021] https:
//www.redhat.com/fr/topics/openstack
[17] https://aws.amazon.com/fr/ec2/?ec2-whats-new.sort-by=item.
additionalFields.postDateTime&ec2-whats-new.sort-order=desc consulté
le [mois de Juin 2021]
[19] https://www.dunod.com/sciences-techniques/uml-2-analyse-et-conception-mise-en-oeu
consulté le [mois de juillet 2021].
[20] https://www.academia.edu/9648899/Modélisation_UML_Diagrammes_
Structurels_Diagramme_des_Classes consulté le [mois de juillet 2021].
Page 56/57
Résumé
Ce travail réalisé dans le cadre d’un projet de fin de cycle, contient l’étude, la conception
et la réalisation d’une application web, qui permet la gestion le stockage et le partage
des fichiers pour les étudiants de l’université de Béjaïa. Ce mémoire contient une étude
sur le cloud computing en général, son fonctionnement et son architecture en particulier.
La réalisation de ce projet a nécessité une bonne analyse conceptuelle, nous avons donc
approfondi nos connaissances en UML, afin d’aboutir à un meilleur résultat lors de la
réalisation de notre application.
Mots clés : application web, fichier, UML, JavaScript, node.js, mongo-db, cloud compu-
ting, plateforme cloud.
Abstract
This work, carried out as part of an end-of-cycle project, contains the study, design and
production of a web application, which allows the management, storage and sharing of
files for students of the University of Béjaïa. This thesis contains a study on cloud com-
puting in general, its operation and its architecture in particular. The realization of this
project required a good conceptual analysis, so we deepened our knowledge in UML, in
order to achieve a better result When making our application.
Keywords : web application, file, UML, JavaScript, node.js, mongo-db, cloud com-
puting, cloud platform..