Architecture des systèmes distribués Sana Younes Dridi younessana@yahoo.fr
Définition et Objectifs Système d’exploitation distribuée: c'est un système qui possède plusieurs processeurs coopérants Coût: plusieurs processeurs à bas prix Puissance de calcul et de stockage : aucune machine centralisée ne peut rivaliser Performance (accélération) : via du calcul parallèle Adaptation : à des classes d'applications réelles naturellement distribuées Fiabilité : résistance aux pannes logicielles ou matérielles la panne d'un composant n'affecte qu'une machine et laisse les autres en état de fonctionnement Extensibilité : croissance progressive selon le besoin Les systèmes centralisés permettent difficilement un développement graduel si la charge de travail de l ’entreprise augmente et il faut remplacer un gros ordinateur par un autre plus puissant.
Avantages et inconvénients partage de données: de multiples utilisateurs peuvent accéder à une base de données partagée partage de périphériques: de multiples utilisateurs peuvent partager des périphériques chers tels que des imprimantes couleurs souplesse (politiques de placement): permet d’exécuter un travail sur la machine la plus disponible Inconvénients complexité: les systèmes distribuées sont plus complexe que les systèmes centralisés logiciels : il faut un intergiciel (middleware) réseaux : saturation et délais sécurité : piratage
Exemples de systèmes distribués – Intranet
Cont. Intranet = portion d'internet administrée séparément possède une frontière configurable pour appliquer les politiques de sécurité locales souvent composé de plusieurs LAN (Local Area Network) interconnectés un intranet est connecté à l’Internet via un « router » de l ’intranet vers l ’extérieur de l ’extérieur vers l ’intranet Un coupe-feu (firewall) sert à protéger un intranet en empêchant les messages non autorisés de sortir ou d’entrer
Architecture matérielle Système distribué: ensemble de processeurs interconnectés Différentes architectures selon: le médium de communication la façon dont les processeurs communiquent
Classification de Flynn (1972) La classification de Flynn répartit les machines en quatre catégories selon : Flot d’instruction : séquence d’instruction exécutée par la machine Flot de données : séquence des données appelées par le flux d’instructions
Architecture matérielle SISD : un seul flux d'instruction et un seul flux de données (ordinateurs centralisés), ordinateur séquentiel de Von Neumann. SIMD : un seul flux d'instruction et de multiples flux de données (machines //, vectorielles), parallélisme au niveau de la mémoire MISD : multiples flux d'instruction et un seul flux de données MIMD : multiples flux d'instruction et de multiples flux de données. L'architecture parallèle la plus utilisée
SISD Tous les ordinateurs traditionnels monoprocesseurs: c'est-à-dire ceux qui n'ont qu'une seule UC
SIMD Une seule unité de contrôle et plusieurs processeurs reliés par réseau Chaque processeur exécute de façon synchrone la même instruction mais travaille sur des données différentes Exemple: machines vectorielles possédant une UC qui décode une instruction pour l'appliquer ensuite en parallèle à de nombreuses unités de données qui ont chacune leurs propres valeurs. Quelques supercalculateurs appartiennent à cette catégorie SIMD. Cas classique: additionner les coordonnées de 64 vecteurs indépendant
MISD Plusieurs flots d ’instructions et un seul flot de données. Architecture pipeline Le traitement est exécuté en plusieurs étapes sur une même donnée
MIMD Plusieurs flot d ’instructions et plusieurs flot de données La communication entre les différents processeurs se fait soit par mémoire centrale partagée, soit par échange de messages Tous les systèmes distribués étant du type MIMD
MIMD Critères de classifications: Selon l ’adressage: Mémoire partagée / mémoire distincte Selon le type du réseau d’interconnexion: Bus / Commuté Adressage Réseau d'interconnexion
Multiprocesseurs vs Multicalculateurs Les multiprocesseurs (MIMD à mémoire partagée) échangent leurs données à la vitesse de la mémoire partagée Les multicalculateurs (MIMD à mémoire distribuée): chaque CPU a sa propre mémoire et son propre système d'exploitation. il nécessite un middleware pour la synchronisation et la communication.
Multiprocesseurs vs Multicalculateurs
multiprocesseurs Les processeurs ont accès à la mémoire comme un espace d'adressage global. Tout changement dans une case mémoire est vu par les autres CPU. La communication inter- CPU est effectuée via la mémoire globale Un réseau d'interconnexion relie les composants mémoire et les processeurs; Problème: la latence des accès mémoire; la coordination des accès à une variable partagée
Multiprocesseurs sur Bus Un certains nombre d'UC sont connectés à un bus La lecture (ou l'écriture) se fait en mettant l'adresse du mot mémoire sur le bus et en déclenchant le signal approprié (Lecture ou Ecriture) Accès séquentiel: un seul processeur à la fois peut accéder au bus, et donc à la mémoire: besoin de mémoire cache Le cache conserve les mots mémoire auxquels on a récemment fait accès: 90%, si le cache est assez grand 64 KO à 1 Mo.
Multiprocesseurs sur réseau (commutés) La mémoire est divisée en modules que l'on relie aux UC’s par une matrice de commutation (crossbar switch) Chaque UC et chaque module mémoire dispose d'une ligne d'interconnexion. A chaque intersection, un élément électronique, le nœud de commutation (crosspoint switch), peut être ouvert ou fermé par le matériel. L'intérêt de cette matrice de commutation est que plusieurs UC peuvent accéder en même temps à la mémoire;
Multiprocesseurs sur réseau (commutés) Processeurs reliés aux modules mémoire par un switch de type: crossbar (NxN nœuds de commutations) ou omega(log2(N) étage)
Multicalculateurs/multicomputers Chaque UC est directement reliée à sa propre mémoire locale. un réseau d'interconnexion gère les échanges entre UC. Communication via messages Contrairement aux Multiprocesseurs, le délai de transmission d'un message est long et le débit de transmission est faible. Multicalculateurs à bus : même architecture que multiprocesseur à bus. Les calculateurs peuvent être des stations de travail, reliées par un réseau Local d'entreprise (LAN); Multicalculateurs sur réseau: treillis ou hypercube
Multicalculateur à bus
Topologie en treillis
Topologie Hypercube
meta calculateur Multicalculateurs faiblement interconnectés au dessus d’ un réseau Internet (IP): Cluster (grappe) Nœud = système unique ou multiprocesseur Nœuds peuvent être dans le même local ou géographiquement séparés et connectés via un LAN Besoin d'une couche logiciel (intergiciel cluster) Grilles: Infrastructures réparties composées d’un ensemble de machines hétérogènes et potentiellement distantes Milliers de machines (Grid5000), utilisées pour Calcul intensif
Cloud computing Le Cloud Computing, ou « informatique dans les nuages », est un système qui consiste à proposer les services informatiques sous forme de services à la demande, accessibles de n'importe où, n'importe quand et par n'importe qui. Le cloud, nuage en anglais, symbolise Internet. On aurait donc mieux fait de parler d'Internet computing au lieu de cloud computing. Internet a toujours été représenté graphiquement par le symbole d'un nuage
Cont. Il n'y a pas de date-clé à laquelle nous puissions dire que le Cloud Computing est né ! Un réseau comme Internet est constitué d'une multitude de systèmes fournissant des services et des informations. Le Cloud Computing est dans cette lignée : un ensemble de services et de données consommables Le cloud computing est un concept de déportation sur des serveurs distants des traitements informatiques traditionnellement localisés sur le poste client.
Cont. Il consiste en une interconnexion et une coopération de ressources informatiques, situées au sein d'une même entité ou dans diverses structures internes, externes ou mixtes, et dont le mode d'accès est basé sur les protocoles et standards Internet Pour vulgariser, le Cloud Computing peut être perçu comme un système d'exploitation distribué sur des milliers de machines. Cet OS distribué, que l'on représente par ce fameux nuage, assure l'abstraction de l'infrastructure (matérielle, réseau, etc.) et a pour rôle d’héberger et d’exécuter des applications ou des services mais aussi de stocker des données
Cont. Il constitue une forme de sauvegarde de fichiers. Il permet, en outre, de travailler sur un même document depuis plusieurs postes de travail (plusieurs personnes ou un nomade en déplacement) de natures diverses (ordinateur portable ou fixe, tablette ou smartphone). Son inconvénient est l'absence de contrôle du propriétaire des documents sur le stockage et même sur leur localisation géographique
Cont. Système réparti dans lequel les clients utilisent des services déportés sur un ou plusieurs serveurs distants, sans avoir à administrer ces services ni les machines qui les supportent Les services proposés par le Cloud peuvent s’exécuter au sein d’architectures cluster Trois modèles: IaaS (Infrastructure as a Service) PaaS (Platform as a Service) SaaS (Software as a Service)
L’infrastructure comme un service (IAAS) L’infrastructure fournit des capacités de calcul et de stockage. Les serveurs, systèmes de stockage, commutateurs, routeurs et autres équipements, sont mis à disposition pour gérer une charge de travail demandée par les applications. L'infrastructure comme un service ou IaaS, permet de disposer d'une infrastructure à la demande, pouvant héberger et exécuter des applications, des services ou encore stocker des données.
La plateforme comme un service (PAAS) La plate-forme comme un service est la plate- forme d’exécution, de déploiement et de développement des applications. fournit une plate-forme intégrant le système d'exploitation (OS), la couche middleware et celle applicative qui sont fournies ensuite au client comme un service. Le PaaS met à disposition des environnements prêts à l’emploi, fonctionnels et performants.
Le logiciel comme un service (SAAS) La dernière couche du SaaS est celle applicative mettant à disposition des applications complètes fournies à la demande. différents types d'applications: gestion des ressources humaines, comptabilité, messagerie et d'autres applications métiers. L'accès se fait en ligne et ne nécessite pas d'installation sur l'ordinateur local Le déploiement, la maintenance, la supervision du bon fonctionnement de l'application et la sauvegarde des données, sont alors de la responsabilité du fournisseur de services
Avantages vs. inconvénients Avantages de cloud: Un modèle « Utility », paiement à l’usage Déploiement rapide, « Juste à temps » et une consommation à la demande Objectif de réduction des coûts (équipe de maintenance) Abstraction de l'infrastructure Inconvénients de cloud: Où sont vos données? Où sont vos serveurs ? quelque part dans les nuages. Comment gérer la sécurité de vos serveurs ? Comment gérer la protection des données personnelles ?
Cloud privé et publique Les ressources physiques peuvent être hébergées dans une infrastructure propre à l'entreprise Le contrôle et le déploiement des applications sont à la charge de l'entreprise. Cloud publique: est un service IaaS, PaaS ou SaaS proposé et hébergé par un tiers. Amazon, Google et Microsoft proposent un Cloud publique dans lequel n'importe quel particulier ou n’importe quelle entreprise peut y héberger ses applications, ses services ou ses données. Pour les consommateurs, il n'y a aucune limite de capacité.
Cloud hybride Utilisation de plusieurs Clouds, publiques ou privés. Exemple: déporter nos applications vers un Cloud publique qui consommera des données stockées et exposées dans un Cloud privé, ou bien faire communiquer deux applications hébergées dans deux Clouds privés distincts, ou encore consommer plusieurs services hébergés dans des Cloud publiques différents.
Cloud de google En 2008, Google a lancé son Cloud public orienté pour les services Web offrant: Une plate-forme (PaaS) nommée Google App Engine met à disposition sur les Clusters de serveurs de Google appelés des « Sandbox » et dans lesquelles pourront s'exécuter des applications Java ou Python. Ces sandbox sont réparties sur plusieurs noeuds de serveurs en fonction de la charge.. Une SAAS nommée google APP: Google met à disposition plusieurs applications personnalisables par le client. Cette offre inclut un service de messagerie identique à Gmail mettant à disposition 25 Gb d’espacede stockage par utilisateur, une application d'agenda On y trouve aussi « Google Document », une suite bureautique Web permettant le stockage et l'édition de documents, de feuilles de calcul, de schémas ou de présentations.
Exemple Vous êtes sur Internet, vous voudriez envoyer une photo et utiliser les outils de retouche enligne pour la modifier, vous aurez alors participé à ce mouvement de cloud computing. Comment? La photo sera probablement stockée sur un site qui utilise le service de virtualisation IaaS pour ses serveurs de données, celui de PaaS pour le logiciel qui vous permet de retoucher votre photo, et des applications SaaS que vous utiliserez pour accéder à votre compte email, ou votre site de réseau social pour publier votre photo et la partager avec vos amis