Vous êtes sur la page 1sur 85

Chapitre 1 : Présentation du

cloud

Cours de Master 1 GADM Dr. Dib A.


Historique (1)
• On-premise (du sur-place) (avant 1990) :
c’est de mettre en place (installer et lancer) du software (des
applications) sur des machines locaux (Ordinateurs) par des personnes
ou des organisations.
• Internet :
Accompagné d’une évolution en télécommunication à partir de 1990

Cours de Master 1 GADM Dr. Dib A.


Historique (2)
• Outsourcing (2000): L’externalisation, ou la gestion déléguée, consiste
à « confier une activité et sa gestion à un prestataire extérieur plutôt
que de la réaliser en interne.

• Virtualisation (2005): c’est une technique d’abstraction des


ressources physiques et de leur emplacement. Les ressources
informatiques (serveurs, applications, bureaux, stockage et réseaux)
sont dissociées des périphériques physiques et présentées sous forme
de ressources logiques. Les technologies de virtualisation créent et
exécutent le mappage entre les ressources physiques et logiques.

Cours de Master 1 GADM Dr. Dib A.


Les Cloud – Définition (1)
• Le cloud est un modèle permettant un accès réseau ubiquitous,
convenable et à la demande à un pool partagé de ressources
informatiques configurables (par exemple, réseaux, serveurs,
stockage, applications et services) pouvant être rapidement
provisionnées et libérées avec un minimum d'effort de gestion ou
interaction avec le fournisseur de services. Ce modèle de nuage est
composé de cinq caractéristiques essentielles, de trois modèles de
service et de quatre modèles de déploiement

Cours de Master 1 GADM Dr. Dib A.


Architecture

Cours de Master 1 GADM Dr. Dib A.


Les Cloud – Caractéristiques (1)
1- Libre service
Un consommateur peut s’approvisionner de manière unilatérale des
ressources de calcul, telles que le temps serveur et le stockage réseau,
selon les besoins, sans nécessiter d'interaction humaine avec chaque
fournisseur de services.
2- Accès large réseau
Les ressources sont disponibles sur le réseau et sont accessibles via des
mécanismes standard qui favorisent l'utilisation par des plates-formes
client hétérogènes (par exemple, téléphones mobiles, tablettes,
ordinateurs portables, etc.).

Cours de Master 1 GADM Dr. Dib A.


Les Cloud – Caractéristiques (2)
3- Agrégation de ressources
Les ressources informatiques des fournisseurs sont mises en commun
pour servir plusieurs consommateurs à l'aide d'un modèle à locataires
multiples, avec différentes ressources physiques et virtuelles attribuées
dynamiquement et réaffectées en fonction de la demande des
consommateurs. Le client n'a généralement aucun contrôle ou
connaissance sur l'emplacement exact des ressources fournies mais
peut spécifier un emplacement à un niveau d'abstraction supérieur
(par exemple: pays, état ou centre de calcul). Des exemples de
ressources incluent le stockage, le traitement, la mémoire et la bande
passante réseau.
Cours de Master 1 GADM Dr. Dib A.
Les Cloud – Caractéristiques (3)
4- Elasticité rapide
Les capacités peuvent être provisionnées et libérées de manière
élastique, dans certains cas automatiquement, pour évoluer
rapidement en fonction de la demande. Pour le consommateur, les
capacités disponibles pour l'approvisionnement semblent souvent
illimitées et peuvent être appropriées en n'importe quelle quantité à
tout moment.

Cours de Master 1 GADM Dr. Dib A.


Les Cloud – Caractéristiques (4)
5- Service Mesuré
Les systèmes Cloud contrôlent et optimisent automatiquement
l'utilisation des ressources en utilisant une unité de mesure appropriée
au type de service (par exemple, stockage, traitement, bande
passante). L'utilisation des ressources peut être surveillée et contrôlée,
ce qui assure la transparence tant pour le fournisseur que pour le
consommateur du service utilisé.

Cours de Master 1 GADM Dr. Dib A.


Modèles des services (1)

Cours de Master 1 GADM Dr. Dib A.


Modèles des services (6)

Cours de Master 1 GADM Dr. Dib A.


Modèles des services (1)
• Software as a Service (SaaS)
Les fonctionnalités offertes au consommateur consistent à utiliser les
applications du fournisseur fonctionnant sur une infrastructure de
cloud. Les applications sont accessibles à partir de divers dispositifs
clients par le biais d'une interface de client léger, telle qu'un
navigateur Web ou d'une interface de programme. Le consommateur
ne gère ni ne contrôle l'infrastructure cloud sous-jacente, y compris le
réseau, les serveurs, les systèmes d'exploitation, le stockage ou même
les applications individuelles, à l'exception possible des paramètres
de configuration d'application spécifiques à l'utilisateur.

Cours de Master 1 GADM Dr. Dib A.


Modèles des services (2)
• Software as a Service (SaaS)
Exemples:
• Blogging/Twitter, Social Networking
• Partage d’information/Connaissance (Wiki)
• Communication (e-mail), Collaboration (e-meeting)
• Outils de Productivité (office)
• Enterprise Resource Planning (ERP)

Cours de Master 1 GADM Dr. Dib A.


Modèles des services (3)
• Platform as a Service (PaaS)
il fournit des instances de middlewares et de contexte d’exécution.
Par exemple : des serveurs de Base de données, des conteneurs, et
des serveurs d’application. Les fonctionnalités offertes au
consommateur consistent à déployer sur l'infrastructure du nuage
des applications créées ou acquises par le consommateur, créées à
l'aide de langages de programmation, de bibliothèques, des services
et d'outils pris en charge par le fournisseur. Le client ne gère ni ne
contrôle l'infrastructure cloud sous-jacente, serveurs, systèmes
d'exploitation ou stockage, mais contrôle les applications déployées
et éventuellement les paramètres de configuration de
l'environnement d'hébergement d'applications.

Cours de Master 1 GADM Dr. Dib A.


Modèles des services (4)
• Platform as a Service (PaaS)
Exemples:
• Développement d’Applications, Données, Workflow.
• Services de sécurité (Single Sign-On, Authentication, etc.)
• Gestion de Bases de données

Cours de Master 1 GADM Dr. Dib A.


Modèles des services (5)
• Infrastructure as a Service (IaaS)
les fonctionnalités offertes au consommateur consistent à
provisionner le traitement, le stockage, les réseaux et d'autres
ressources informatiques fondamentales où le consommateur est
capable de déployer et d'exécuter un logiciel, qui peut inclure des
systèmes d'exploitation et des applications.

Cours de Master 1 GADM Dr. Dib A.


Travail à faire
• Présentation des modèles de service suivants:
• SaaS
• Google Apps, Dropbox, Salesforce, Cisco WebEx, Concur, GoToMeeting
• PaaS
• AWS Elastic Beanstalk, Windows Azure, Heroku, Force.com, Google App
Engine, Apache Stratos, OpenShift
• IaaS
• DigitalOcean, Linode, Rackspace, Amazon Web Services (AWS), Cisco
Metapod, Microsoft Azure, Google Compute Engine (GCE)

Cours de Master 1 GADM Dr. Dib A.


Modèle de déploiement (1)
• Cloud privé:
L'infrastructure de cloud est fournie pour une utilisation exclusive par
une seule organisation comprenant plusieurs consommateurs (par
exemple, des unités commerciales). Il peut être détenu, géré et exploité
par l'organisation, un tiers ou une combinaison d'entre eux, elle peut
être ‘on-premise’ ou pas.

Cours de Master 1 GADM Dr. Dib A.


Modèle de déploiement (2)
Cloud communautaire:
L'infrastructure de cloud est mise en service pour une utilisation
exclusive par une communauté spécifique de consommateurs
provenant d'organisations ayant des préoccupations communes. Il peut
être détenu, géré et exploité par une ou plusieurs organisations de la
communauté, une tierce partie ou une combinaison d'entre elles, et il
peut exister dans des locaux ou à l'extérieur.

Cours de Master 1 GADM Dr. Dib A.


Modèle de déploiement (3)
Cloud publique:
L'infrastructure de cloud est provisionnée pour une utilisation ouverte
par le grand public. Il peut être détenu, géré et exploité par un
organisme commercial, universitaire ou gouvernemental, ou une
combinaison d'entre eux. Il existe dans les locaux du fournisseur de
cloud.

Cours de Master 1 GADM Dr. Dib A.


Modèle de déploiement (4)
Cloud Hybride:
L'infrastructure cloud est une composition de deux ou plusieurs
infrastructures cloud distinctes (privées, communautaires ou
publiques) qui restent des entités uniques, mais sont liées par une
technologie standardisée ou propriétaire qui permet la portabilité des
données et des applications.

Cours de Master 1 GADM Dr. Dib A.


Chapitre 2
L’infrastructure physique des cloud

Cours de Master 1 GADM Dr. Dib A.


Ressources physiques
• Ressources de stockage
• Ressources réseaux
• Ressources de calcul

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage (1)
• Critères d’évaluation des solutions de stockage :
• Évolutivité : Le pouvoir d’ajout de nouveaux périphériques de
stockage.
• Facilité d'utilisation : Possibilité de stocker, d'indexer et de récupérer
des données sans avoir besoin d'une expertise technique spécialisée
pour faire fonctionner le système.
• Abordabilité : La relation entre le coût d’une solution et le pouvoir de
paiement de l’entreprise qui a sollicité cette solution sur un axe de
temps.

Cours de Master 1 GADM Dr. Dib A.


Evolution de stockage entreprise

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-SAN (1)
• SAN (Storage Area Network)
• Mutualisation des ressources de stockage
• Les serveurs renvoient les données à stocker sur le SAN qui les
achemine jusqu’au baie de stockage
• Les données à stocker sont routées via des Switch spécialisés Cisco
reliés entre eux et qui forment une structure ‘Fabric’
• Un réseau de stockage comporte au moins deux fabric indépendantes
afin d’avoir une haute disponibilité de données
• permet une tolérance aux pannes et des interventions de maintenance
matérielles

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-SAN (2)

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-SAN (3)
• L’échange de données est basé sur les standards SCSI (Small Computer
System Interface) pour la connexion et le transfert des données entre
les serveurs et les périphériques de stockage.
• Deux catégories de réseau de stockage selon la nature de la fabric
utilisée:
• FCSAN (Fibre Channel Storage Area Network): utilise le protocole FCP
(Fibre Channel Protocole) qui permet la transmission haut débit des
données à travers un réseau de routeurs et Switches interconnectés par
des fibres optiques.
• iSCSI SAN, utilise le protocole iSCSI (internet Small Computer System
Interface) qui permet la transmission haute débit des données en se
basant sur le protocole IP, ce qui permet d’utiliser les réseaux Ethernet
existants.
Cours de Master 1 GADM Dr. Dib A.
Ressources de stockage-SAN (4)
• Les baies de stockages sont utilisées pour conserver les bits de
données.
• le système de fichier se trouve au niveau du serveur qui effectue des
opérations d’Entrée/Sortie en termes de blocs de données et non pas
des fichiers.
• SANs permet la création de LUN (Logical Unit Number) qui découpe
les espaces de stockage en plusieurs unités logiques afin de gérer plus
efficacement l’espace de stockage de la baie.
• LUN peut être répliqué vers une autre baie afin d’assurer la
disponibilité des données de LUN et de permettre une tolérance aux
pannes.

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-SAN (5)
• Evaluation des SANs!!
• Evolutivité
• Facilité d’utilisation
• Abordabilité

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-NAS (1)
• NAS (Network-Attached Storage)
• NAS est un serveur de fichier autonome qui contient un système
d’exploitation dédié à la gestion des données tels que FreeNAS, HNAS,
NASLite.
• FreeNas : Un serveur de fichiers NAS dérivé du système d’exploitation FreeBSD.
• HNAS : Une plate-forme NAS d'Hitachi Data Systems.
• NASLite : Un serveur de fichiers NAS basé sur une mini-distribution d’un système Linux.
• NAS est doté d’un logiciel de configuration, de son propre système de fichier,
ainsi qu’un ensemble de disques indépendants.

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-NAS (3)
• Le NAS est attaché à un réseau local afin de servir des serveurs de
fichier.
• NAS est très adapté aux applications qui sollicitent le système de
fichier de façon intensive tels que les opérations d’archivage, les
applications Big Data et les applications multimédia.
• L’échange des données ne se fait pas en termes de blocs comme dans
le cas des SANs, mais en termes de fichier.

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-NAS (4)
• la transmission des données se fait via l’utilisation des protocoles qui
dépondent des systèmes d’exploitation des serveurs de fichier utilisés tels
que CIFS et SMB pour Microsoft Windows, NFS pour Linux et Unix, et AFP
pour Apple.
• CIFS : Common Internet File System, une implémentation du même protocole SMB,
créé par Microsoft.
• SMB : Server Message Block, un protocole de partage de fichiers, il permet aux
ordinateurs de lire et d'écrire des fichiers sur un hôte distant via un réseau local
(LAN).
• NFS : Networked File System, développé par Sun Microsystems et sert le même but
que SMB, utilisé pour Unix et Linux.
• AFP : Apple Filing Protocol, un protocole de partage de fichier utilisé pour Mac.

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-NAS (5)
• Les systèmes NAS offrent la combinaison idéale de l’évolutivité,
facilitée d’utilisation et abordabilité.
• on peut passer de quelques Téra à des Péta grâce à la possibilité de
remplacer et d’ajouter des disques dures à chaud.
• L’évolutivité en ce qui concerne le réseau d’accès au NAS est
facilement réalisable.
• Les systèmes NAS offrent une sécurité élevée des données en
adoptant la technologie RAID(Redundant Array of Independent Disks)

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-NAS (6)
• RAID permet l’amélioration les performances globales du système.
• RAID permet :
• la réplication des données sur d’autres disques dures afin d’augmenter leurs
disponibilités.
• De favoriser le partage de charge,
• De restaurer les données en cas de perte,
• D’améliorer la tolérance aux pannes.

Cours de Master 1 GADM Dr. Dib A.


Ressources de stockage-NAS (7)
• RAID existe en plusieurs variantes :
• RAID 0 (volume agrégé par bandes) : lecture et écriture des données
simultanément sur plusieurs disques.
• RAID 1 (Disques en miroir): écriture des même données sur plusieurs disques.
• RAID 5 (volume agrégé par bandes à parité répartie): combine la méthode du
volume agrégé par bandes à une parité répartie.
• RAID 10
• RAID 50

Cours de Master 1 GADM Dr. Dib A.


DAS (Direct-Attached Storage) (1)
• Créé après l’apparition des NAS et des SAN afin de différencier entre
les systèmes de stockage basés ou non sur les réseaux.
• Un DAS est un système de stockage directement connecté à un
dispositif tel qu’un serveur, une caméra, un téléphone portable ou
juste un simple ordinateur.
• Les supports de stockage utilisé peuvent être de différents types tels
qu’un disque dur, une carte mémoire, CD/DVD, ou un flash disque.
• L’accès à ces supports de stockage se fait en mode bloc par un seul
serveur à la fois.

Cours de Master 1 GADM Dr. Dib A.


DAS (Direct-Attached Storage) (2)
• Un système DAS présente l’avantage d’être abordable en terme de
coût
• présente l’inconvénient qu’il n’est pas évolutif et offre un nombre
limité de slots pour ajouter des supports de stockage en plus.

Cours de Master 1 GADM Dr. Dib A.


Chapitre 3
Conteneurisation
Notion de serveur d’application (1)
• Serveurs d’applications
• une composante logicielle utilisée pour héberger des applications Web y
compris des services web
• Il définit un environnement d’exécution connu par le nom ‘Conteneur’ qui est
un niveau d’abstraction qui s’interface entre un composant et la
fonctionnalité spécifique à la plate-forme de niveau inférieur et qui prend en
charge ce composant.
• Exemple de serveurs: TomEE, Websphere, Jboss, Weblogic
Notion de serveur d’application (2)
• Serveurs d’applications
• Il fournit des services indispensables pour l’exécution des composantes
logiciels. Il offre un environnement d’exécution du code utilisateur sur une
couche modulaire configurable qui assure des services de base tels que :
• 1-Le regroupement de connexion (connection pooling) : ce service permet de réutiliser
les connexions déjà ouvertes aux bases de données. Cela optimise les performances des
applications en évitant l’ouverture et la fermeture d’une connexion à chaque requête
d’accès à la base de données. Une nouvelle ouverture de connexion est effectuée
seulement si aucune n’existe déjà.
Notion de serveur d’application (3)
• 2-Gestion des transactions : Une transaction est une unité d'activité, au sein
de laquelle plusieurs mises à jour de ressources peuvent être rendues
atomiques. Elle peut être locale ou globale. Dans le premier cas, la
transaction est prise en charge par le gestionnaire de ressource qui peut être
à titre d’exemple une unité de traitement ou une base de données. Dans le
second cas, la transaction peut atteindre plusieurs gestionnaires de
ressources. Cela exige que la gestion de la transaction globale soit gérée par
un gestionnaire externe. Dans ce contexte, un serveur web est un
gestionnaire de ressources qui peut coordonner entre les transactions
globales, comme il peut fournir un environnement dans lequel les
transactions locales du gestionnaire de ressources peuvent s'exécuter.
Notion de serveur d’application (4)
• 3-Messagerie : le serveur d’applications assure la gestion des
messages pour parvenir à remonter les messages issus des différents
niveaux architecturaux de l’application. De plus, elle peut être utile
pour avoir une trace d’exécution des applications qui sert à l’analyse
des opérations effectuées par l’application, les erreurs, et l’historique
de manière générale de tous ce qui est passé au niveau des
applications lancées sur le serveur web.
Notion de serveur d’application (5)
• 4-Distribution de charge : la distribution de charge permet d’affecter les
requêtes des clients aux différentes unités de traitement afin d’optimiser
l’utilisation des ressources, la tolérance aux pannes, et optimiser le temps
te réponse du système. Cela peut être réalisé en définissant un ensemble
de conteneurs sur un ensemble de ressources physiques. Les conteneurs
délivrés par les serveurs web sont une virtualisation de ressources software
et hardware. Un conteneur peut être lancé en spécifiant une taille
maximale d’un espace mémoire, une fréquence de processeur, un nombre
de corp CPU et une bande passante précise. Cela est valable sur le même
hôte comme sur des hôtes distants. Le serveur d’applications collecte des
informations des états des différents conteneurs lancés. Pour une nouvelle
charge, il redirige la requête vers le conteneur le plus approprié de point de
vu ressources physiques et logiques. Si les ressources d’un conteneur sont
épuisées, le serveur d’applications consulte un autre conteneur moins
chargé.
Notion de serveur d’application (6)
• 5-Services de Clustering : Le clustering de serveurs est une
méthodologie de regroupement de serveurs indépendants pour offrir
une meilleure flexibilité, évolutivité et disponibilité. Un serveur
d’application est doté d’un service qui supporte le regroupement de
plusieurs ressources physiques afin de résoudre les problèmes de
manque d’espace de stockage, de bande passante et de surcharge des
unités de traitement.
Notion de serveur d’application (7)
• 6-Sécurité : un serveur d’application doit supporter les protocoles
standards de sécurité tels que SSL, HTTPS, SSO, etc. afin de sécuriser
les données et les applications hébergées sur ce serveur. Cela rend
possible des opérations de sécurité de base telles que
l’authentification et la délégation des droits.
Les conteneurs (1)
• Un conteneur est un niveau d’abstraction logiciel qui sert à découpler
les applications de leur contexte d’exécution.
• Il s’interface avec le système d’exploitation afin de fournir les
ressources et les dépendances nécessaires à l’exécution des
applications. Les ressources peuvent êtres logiques ou physiques.
• Les ressources logiques sont des composantes intégrables au
conteneurs utilisées à la demande sous forme de modules tels que la
prise en charge des logs, d’un protocole particulier de sécurité, d’un
serveur mail spécifique, etc.
• les ressources physiques sont présentées par le processeur, la
mémoire vive, les supports de stockage, etc.
Caractéristiques des applications
conteneurisées
• Vélocité : la technologie des conteneurs permet une rapidité de
déploiement des applications et des services de sorte qu’ils restent
toujours disponibles malgré leurs opérations de maintenances et de
mise à jour.
• Passage à l’échelle : les applications et les services conteneurisés sont
facilement scalable le fait que les conteneurs sont réplicables et donc
ils peuvent offrir leurs services à plus grand échelle. D’une autre part,
le passage à l’échelle de l’équipe de développement et de test des
services est aussi possible grâce à l’architecture modulaire de ces
services.
Les conteneurs (3)
• Les conteneurs classiques Java/JEE

App Java
Navigateur
Web Machine du
client
JVM

JSP Servlet Conteneur


Web
Serveur EE

EJB EJB Conteneur


EJB

BDD
Les conteneurs – L’emprisonnement
• L’emprisonnement (Jail)
• Permet de fournir un environnement d’exécution isolé.
• permet à l’OS de tromper les applications en cours d’exécution et leur croire
qu’elles fonctionnent sur la racine de système de fichiers ‘/’, et en réalité elles
fonctionnent sur des dossiers chrooté.
• donne la possibilité d’isoler ou d’emprisonner n’importe quel processus et
même un OS complet dans un coin du système de fichiers.
• L’avantage de cette technique est qu’elle est très légère et ne consomme
aucune ressource supplémentaire.
• L’inconvénient c’est que les ressources utilisées par ces processus ne peuvent
pas être gérées de manière isolée et sont considérées comme n’importe quel
autre processus de la machine hôte.
Les conteneurs – Conteneurs Linux (LXC)
• héritent de la technique Jail du fait qu’elle se repose sur les dossiers
chrootés pour créer un contexte d’exécution isolé du reste de la
machine hôte.
• ils surmontent les limites de Jail en utilisant principalement la
technologie Cgroups, et le cloisonnement des espaces de nommage.
• Cloisonnement des espaces de nommage (Kernel namespaces): permet de
séparer des groupes de processus. Cela garantit qu'ils ne peuvent pas voir les
ressources dans d'autres groupes. Différents espaces de noms sont utilisés
pour l'isolation des processus, les interfaces réseau, l'accès à la
communication interprocessus.
Les conteneurs – Conteneurs Linux (LXC) (2)
• Cgroups, où les groupes de contrôle gèrent et limitent l'accès aux
ressources pour les groupes de processus. Ils permettent de partager
les ressources matérielles disponibles entre les conteneurs et, si
nécessaire, de définir des limites et des contraintes d’accès et
d’exploitation de ces ressources. Parmi les possibles fonctionnalités
que peut offrir Cgroups, on cite : (1) l’affectation d’un ensemble de
CPUs à un ensemble de processus ; (2) Créez un processus avec une
quantité de mémoire limitée ; (3) établir des rapports d’utilisation de
CPU par différents processus ; (4) Mettre en pause des processus ; (5)
assigne une priorité à un trafic réseau ; (6) marquer un trafic réseau
donné.
Les conteneurs – Conteneurs Linux (LXC) (3)
• De plus, les conteneurs Linux se basent sur les modules ‘Application Armor’
(AppArmor) et Security-Enhanced Linux (SELinux). Ils fournissent un
support sécurisé pour l’isolation des processus.
• Ils permettent d’étiqueter les processus avec un libellé lié à un contexte de
sécurité. De plus, ils permettent de surveiller ces processus en vérifiant
qu’ils respectent certains modes d’accès qui incluent le rôle et le contexte
de sécurité.
• Un rôle dans SELinux est une attribution d’un droit à un processus ou à un
utilisateur tels que l’accès en lecture ou en écriture.
• Contexte de sécurité SELinux : définit par un nom, un rôle, et un type qui
représente la nature de l’objet surveillé par SELinux tels qu’un fichier, un
port réseau, etc.
Les conteneurs – Conteneurs Linux (LXC) (4)
Image SE1 App

Lib/Bin Lib/Bin Lib/Bin

LXC

CGroups NameSpaces

SELinux/AppArmor
Docker
• Docker est une technologie de conteneurisation basée principalement sur
CGroups, le noyau et les conteneurs Linux. A partir de sa version 0.8, libContainer
est ajouté au côté de LXC, il permet l’accès aux APIs du noyau Linux tels que
CGroups et namespaces sans aucune autre dépendance externe. De plus de LXC
et libcontainer, Docker peut être utilisé avec d’autres outils d’isolation et de
virtualisation tels que OpenVZ et libvirt.
• Langage Go : ou Golang, est un langage utilisé initialement par Google. Il offre
des fonctionnalités avancées telles que la collecte de garbage Mémoire, politique
de sécurité, etc.
• OpenVZ : fournit des conteneurs Linux isolés et sécurisés sur le même serveur
physique en permettant une meilleure utilisation du serveur et garantissant que
les applications n'entrent pas en conflit.
• LibVirt : est un pilote qui gère les plateformes de virtualisation, il supporte des
plateformes telles que LXC, OpenVZ, VMware, VirtualBox, etc.
Docker(2)
• Docker peut isoler des applications ainsi que leurs dépendances dans
des conteneurs qui peuvent être exécutés sur n’importe quel serveur
en facilitant leur gestion, leur migration, et leur redémarrage à froid
ou à chaud. Il peut gérer plusieurs conteneurs LXC ou libcontainer à la
fois et leurs permettre de partager les ressources matérielles et
logicielles de l’hôte.
Docker (3)
Container 2 Container n
Container 1

Images SE1 Apps



Lib/Bin Lib/Bin Lib/Bin

Le Moteur Docker
Libcontainer

Libvirt LXC

Noyau Linux
CGroups NameSpaces

SELinux/AppArmor
Les avantages de Docker
• La modularité : docker est basé sur la notion de micro-service, cette
dernière permet une gestion partielle des applications sans affecter
l’ensemble des fonctionnalités ni leurs déploiements. Ainsi, elle
favorise la réutilisation partielle, la maintenance, l’évolutivité et le
passage à l’échelle.
Les avantages de Docker
• La notion des couches : les images manipulées par docker sont sous
forme de plusieurs couches. A la base, on trouve un OS tels que
Ubuntu ou Fedora dans la première couche. Une modification dans
l’image entraine une création d’une autre couche qui sera traduite
par des instructions enregistré dans un fichier docker. L’utilisation des
couches permet de bien gérer les versions des images, leur
réutilisation par plusieurs conteneurs, le gain en espace disque et la
restauration des anciennes versions des images.
Architecture de Docker
• Docker est d’une architecture client-serveur. Le client Docker
manipulé par l’utilisateur s’interface avec le daemon Docker. Ce
dernier est chargé d’exécuter les commandes du client telles que apt-
get install/update, exec, run, etc. de plus, le daemon Docker crée des
images à chaque fois sollicité par le client et il peut les gérer dans le
registre d’images en utilisant les fonctions push, pop, et search. Le
registre Docker est utilisé pour le stockage des images cumulées
utilisables par le Moteur Docker. D’un autre côté, le daemon Docker
se charge du démarrage, de l’arrêt et de l’inspection des conteneurs.
La figure 6 montre l’architecture de Docker.
Architecture de Docker

Registre Docker Client Docker

Gestion des images Cmd d’Installation et de mise à


jour

Conteneur2
Docker Daemon

Conteneur1
Gestion des Conteneurs
Accès au nayau

SE
Hardware
Les Framework des cloud
Apache Hadoop
• Hadoop est le projet de haut niveau d'Apache Software Foundation.
Le projet Hadoop fournit et soutient le développement de logiciels
open source qui fournissent un cadre pour le développement
d'applications informatiques distribuées hautement évolutives. Le
framework Hadoop gère les détails du traitement, laissant les
développeurs libres de se concentrer sur la logique de l'application.
Apache Hadoop
• Apache Hadoop est un cadre qui permet le traitement distribué de
grands ensembles de données à travers des grappes d'ordinateurs en
utilisant un modèle de programmation simples. Il est conçu pour
passer à l’échelle d’un serveur unique vers des milliers de machines,
chacune offrant une puissance de calcul et un support de stockage
local.
Hadoop Core MapReduce (1)
• MapReduce de Hadoop fournit à l'utilisateur un cadre sophistiqué pour
gérer l'exécution de Map et réduire les tâches sur un groupe de machines.
L'utilisateur est tenu de spécifier au framework les éléments suivants:
• 1- les fichiers d’entré des Job situés sur le système de fichier distribué
• 2- le chemin des fichiers de sortie des Job situé sur le système de fichier
distribué
• 3- le format des données en entré
• 4- le format des données en sortie
• 5- la classe contenant la fonction Map et Reduce.
• 6- le fichier JAR contenant les fonctions Map et Reduce et d’autres classes
utiles.
Hadoop Core MapReduce (2)
• Si un Job n'a pas besoin d'une fonction de réduction, l'utilisateur n'a
pas besoin de spécifier une classe de réduction, et une phase de
réduction du travail ne sera pas exécutée. Le framework partitionnera
l'entrée, planifiera et exécutera des tâches de carte dans le cluster. Si
demandé, il va trier les résultats de la tâche Map et exécuter les
tâches de réduction. La sortie finale sera déplacée vers le répertoire
de sortie et l'état du Job sera reporté à l'utilisateur.
Hadoop Core MapReduce (3)
• MapReduce est basé sur la notion des paires clé / valeur. Il convertira
chaque enregistrement d'entrée en une paire clé / valeur, et chaque
paire sera présenté à la fonction Map. La sortie de Map est un autre
ensemble de paires clé / valeur. Les paires de sorties de Map sont
regroupées et triées par clé. La fonction de réduction est appelée une
fois pour chaque clé. La méthode reduce peut générer un nombre
arbitraire de paires clé / valeur, qui sont écrites dans les fichiers de
sortie du répertoire de sortie du Job.
Hadoop Distributed File System (HDFS)
(1)
• HDFS est un système de fichiers conçu pour être utilisé avec les Job
MapReduce qui lisent les entrées en gros morceaux d'entrée, les
traitent et écrivent des blocs de sortie potentiellement volumineux.
• Pour plus de fiabilité, les données de fichier sont simplement mises
en miroir sur plusieurs nœuds de stockage. C'est ce qu'on appelle la
réplication.
• Tant qu'au moins une réplique d'un bloc de données est disponible, le
consommateur de ces données ne connaît pas les défaillances du
serveur de stockage.
Hadoop Distributed File System (HDFS)
(2)
• Les services HDFS sont fournis par deux processus:
1- NameNode gère la gestion des métadonnées du système de fichiers
et fournit des services de gestion et de contrôle.
2- DataNode fournit des services de stockage et de récupération de
bloc.
Projets en liaison avec Apache Hadoop (1)
Apache Pig:
• Pig est une abstraction sur MapReduce. C'est une plate-forme qui est utilisée
pour analyser de plus grands ensembles de données les représentant comme des
flux de données.
• Pour écrire des programmes d'analyse de données, Pig fournit un langage de haut
niveau appelé Pig Latin. Ce langage fournit divers opérateurs de lecture,
d'écriture et de traitement des données.
• Pour analyser les données à l'aide d'Apache Pig, des scripts écrit en langage Pig
Latin sont convertis en tâches Map et Reduce. Apache Pig a un composant connu
sous le nom de Pig Engine qui accepte les scripts Pig Latin en entrée et convertit
ces scripts en MapReduce Job.
Projets en liaison avec Apache Hadoop (2)
Caractéristiques de Pig:
• Fournit un ensemble riche d'opérateurs - Il fournit de nombreux opérateurs pour
effectuer des opérations telles que join, sort, filer, etc.
• Facilité de programmation - Pig Latin est similaire à SQL.
• Opportunités d'optimisation - Les tâches d'Apache Pig optimisent
automatiquement leur exécution, de sorte que les programmeurs doivent se
concentrer uniquement sur la sémantique du langage.
• Pig fournit la possibilité de créer des fonctions définies par l'utilisateur dans
d'autres langages de programmation tels que Java et de les invoquer ou de les
incorporer dans des scripts Pig.
• Gère toutes sortes de données - Apache Pig analyse toutes sortes de données, à
la fois structurées et non structurées. Il stocke les résultats dans HDFS.
Projets en liaison avec Apache Hadoop (3)
Exemple de programme WordCount avec Pig:
Projets en liaison avec Apache Hadoop (4)
Apache Hive:
• Hive est un outil d'infrastructure d'entrepôt de données permettant
de traiter des données structurées dans Hadoop. Il réside au-dessus
de Hadoop pour réduire les données volumineuses et facilite
l'interrogation et l'analyse.
• Initialement Hive a été développé par Facebook, par la suite Apache
Software Foundation l'a repris et développé plus loin comme une
source ouverte sous le nom de Apache Hive.
Projets en liaison avec Apache Hadoop (5)
Caractéristiques de Hive:
• Il stocke le schéma des données dans une base de données et traite
les données dans HDFS.
• Il fournit un langage de type SQL pour l'interrogation appelée HiveQL
ou HQL.
• Il est familier, rapide, et évolutif.
Projets en liaison avec Apache Hadoop (6)
Architecture de Hive:
Projets en liaison avec Apache Hadoop (7)
HBase :
• HBase est une base de données orientée colonne basé sur le système
de fichiers Hadoop.
• HBase est un modèle de données conçue pour fournir un accès
aléatoire rapide à d'énormes quantités de données.
• On peut stocker les données dans HDFS directement ou via HBase. Le
consommateur de données lit / accède aux données dans HDFS de
façon aléatoire en utilisant HBase.
Projets en liaison avec Apache Hadoop (8)
HBase :
Projets en liaison avec Apache Hadoop (9)
Mécanisme de stockage dans Hbase:
HBase est une base de données orientée colonnes et les tables sont
triées par ligne. Le schéma de la table définit uniquement les familles
de colonnes, qui sont les paires de valeurs clés. Une table a plusieurs
familles de colonnes et chaque famille de colonnes peut avoir
n'importe quel nombre de colonnes. Les valeurs de colonne suivantes
sont stockées de manière contiguë sur le disque.
Projets en liaison avec Apache Hadoop (10)
Mécanisme de stockage dans HBase:
• Une table dans HBase est une collection de lignes.
• Une ligne est une collection de familles de colonnes.
• Une famille de colonnes est une collection de colonnes.
• Une Colonne est une collection de paires de valeurs clés.
Projets en liaison avec Apache Hadoop (11)
Caractéristiques de HBase
• HBase est horizontalement scalable.
• Il a un support de défaillance automatique.
• Il s'intègre à Hadoop, à la fois en tant que source et destination.
• Il fournit la réplication de données à travers les clusters.
Les fournisseurs de distributions Hadoop
• Hortonworks : la Plateforme de données Hortonworks
(HDP:Hortonworks Data Platform) comprend le système Hadoop
Distributed File System (HDFS), MapReduce, Pig, Hive, HBase et ZooKeeper.
• Cloudera : contient les principaux éléments, de base du framework
Hadoop (MapReduce et HDFS), ainsi que d’autres composants destinés aux
entreprises qui assurent la sécurité, la haute disponibilité, et l’intégration
avec le matériel et les autres logiciels.
• Pivotal : en partenariat avec Hortonworks depuis 2015. Ensemble,
ils concentrent leurs efforts autour d’un noyau cohérent de fonctionnalités
basées sur Apache Hadoop comprenant des intégrations de produits,
l’ingénierie conjointe et soutien à la production.
Le Framework Apache Storm
• Apache Storm est un système de traitement de données volumineux
distribué en temps réel. Storm est conçu pour traiter une grande
quantité de données de façon évolutive horizontalement et tolérante
aux pannes.
• Il gère l'environnement distribué et l'état du cluster via Apache
ZooKeeper.
Le Framework Apache Storm (2)
• Use-Cases d'Apache Storm
Apache Storm est très connu pour le traitement de gros volumes de données en temps réel. Pour
cette raison, la plupart des entreprises utilisent Storm comme partie intégrante de leur système.
Quelques exemples notables sont les suivants:
• Twitter - Twitter utilise Apache Storm pour traiter chaque tweet et chaque clic sur la plate-forme
Twitter. Apache Storm est profondément intégré à l'infrastructure Twitter.
• NaviSite - NaviSite utilise Storm pour le système de surveillance et d'audit des journaux
d'événements. Tous les journaux générés dans le système passeront par storm. il vérifiera le
message par rapport à l'ensemble d'expressions régulières configuré et, s'il existe une
correspondance, ce message particulier sera enregistré dans la base de données.
• Wego - Wego est un moteur de recherche de voyages situé à Singapour. Les données relatives aux
voyages proviennent de nombreuses sources partout dans le monde avec un timing différent.
Storm aide Wego à rechercher des données en temps réel, à résoudre les problèmes de
concurrence et à trouver la meilleure correspondance pour l'utilisateur final.
Le Framework Apache Storm (3)
Storm Hadoop
Traitement de flux de données en temps réel Traitement en batch
Sans état Avec état
Architecture maître / esclave avec une coordination Architecture maître-esclave avec / sans
basée sur ZooKeeper. Le nœud maître est appelé coordination basée sur ZooKeeper. Le noeud maître
nimbus et les esclaves sont des superviseurs. est job tracker et le noeud esclave est task tracker.

Un processus Storm peut accéder à des dizaines de Hadoop Distributed File System (HDFS) utilise le
milliers de messages par seconde sur un cluster. framework MapReduce pour traiter une grande
quantité de données qui prend des minutes ou des
heures.
Une topology Storm fonctionne jusqu'à la Les job MapReduce sont exécutés dans un ordre
fermeture par l'utilisateur ou un échec inattendu séquentiel et terminés éventuellement.
irrécupérable.

Si nimbus / supervor meurt, le redémarrage le fait Si le JobTracker meurt, tous les job en cours sont
continuer d'où il s'est arrêté, donc rien n'est perdus.
affecté.

Vous aimerez peut-être aussi