POUR DES COMPÉTENCES TOUJOURS À LA POINTE
Introduction au
« Cloud Computing »
Yvon Kermarrec Professeur
Institut Mines Telecom / Télécom Bretagne
Un « cloud » de tags pour commencer…
Le cloud est d’actualité
Plan du cours
Le contexte des systèmes en réseau (systèmes distribués)
Vers le cloud
Composants du cloud et les *-aaS
Un écosystème dynamique
Quelques éléments techniques
Un nouveau modèle de programmation
Synthèse, conclusions et perspectives
Système distribué: des définitions
« A system in which hardware and software components located on networked computers communicate and coordinate their actions only by passing messages » (Coulouris)
« A distributed system is a collection of
independent computers that appear to the users of the system as a single computer » (Tannenbaum)
« A distributed system is one that stops you from getting any work done whenever a machine
you’ve never even heard of crashes » (Leslie
Lamport)
Vers une évolution du modèle des ordinateurs
Des besoins de calculs de plus en plus en plus importants….
Des volumes de données à traiter de plus en plus importants, rapides et diversifiés
Des temps de réponse courts à assurer
Une complexité croissante : algorithmes, croisement de données, ….
Une universalité des domaines d’application
visés: biologie, médecine, météo, tremblement de terre, tsunami, physique nucléaire, …..
Un mainframe….IBM 704 env 1957
Un super calculateur….
Des super calculateurs … aux capacités inimaginables
www.top500.org
Des puissances de calcul phénoménales …. Des consommations électriques impressionnantes … des besoins en climatisation et en locaux très
spécialisés ….
Des couts que seuls les grands états peuvent se permettre … sans compter la maintenance et les ingénieurs support en permanence.
Tianhe-2
No. 1 world powerful “system since June 2013
Tianhe-2, a supercomputer developed by China’s National University of Defense Technology, retains its position as the world’s No. 1
system with a performance of 33.86 petaflop/s (quadrillions of
calculations per second) on the Linpack benchmark. It was built by China's National University of Defense Technology (NUDT) in
collaboration with the Chinese IT firm Inspur.
According to NUDT, Tianhe-2 will be used for simulation, analysis, and government security applications. With 16,000 computer nodes, each comprising two Intel Ivy Bridge Xeon processors and
three Xeon Phi chips, it represents the world's largest installation of Ivy Bridge and Xeon Phi chips, counting a total of 3,120,000 cores.
] Each of the 16,000 nodes possess 88 gigabytes of memory (64 used by the Ivy Bridge processors, and 8 gigabytes for each of the Xeon Phi processors). The total CPU plus coprocessor memory is
Un système distribué
intranet ISP
desktop computer:
backbone
satellite link
server:
%
network link:
%
%
%
En entreprise…..
the rest of
email server Web server
Desktop computers
File server print and other servers
other servers print Local area
network
email server
the Internet
Chez vous … chez moi ….
Des nouveaux besoins et usages
Partager des ressources, des données, des fichiers, des images, des applicatifs, des imprimantes, des périphériques, …
Accéder aux ressources sans complexité …
qu’elles soient locales ou distantes … en ignorant les réseaux et les protocoles.
Agréger des puissances de calcul inutilisées la plupart du temps et adresser des problèmes inenvisageables classiquement
Des terminaux multiples et la mobilité des utilisateurs
La notion de transparences
Location: Users are unaware of location of resources
Migration: Resources can migrate without name change
Replication: Users are unaware of the existence of multiple copies
Failure: Users are unaware of the failure of individual components
Concurrency: Users are unaware of sharing resources with others
Parallelism: Users are unaware of parallel execution of activities
Des systèmes centralisés vers les systèmes distribués
Super computer at Virginia Tech comment construire un super calculateur (parmi les meilleurs mondiaux)
• http://www.youtube.com/watch?v=vLujLtgBJC0
CRAY - NSA Supercomputer
• http://www.youtube.com/watch?v=A5RwZz9UPUs&feat ure=related
Assemblage de Cray XE6 "Hermit"
• https://www.youtube.com/watch?v=3qirlkHRKR0
Systèmes distribués (synthèse)
Des machines en réseau
Des puissances de calcul théoriques énormes et capacité de stockage
Difficultés pour gérer et administrer de tels équipements
Très difficile de programmer des applications pour ces système
Apports des « middlewares »
Plan du cours
Le contexte des systèmes en réseau (systèmes distribués)
Vers le cloud
Composants du cloud et les *-aaS
Un écosystème dynamique
Quelques éléments techniques
Un nouveau modèle de programmation
Synthèse, conclusions et perspectives
Une transition
Powerful multi-core processors
General purpose
graphic processors
Superior software methodologies Virtualization
leveraging the powerful
hardware Wider bandwidth
for
communication Proliferation
of devices Explosion of
domain applications
Cloud Futures 2011, Redmond, WA
Vers les « clouds »
Une transition ‘naturelle’ depuis les systèmes distribués
L’omni présence ces réseaux de communication et les besoins d’accès depuis des supports divers / mobiles
Un Cloud s'appuie sur les contributions des géants du Net
Le Cloud est avant tout une solution de stockage
d'information, au sens large et permet de la restituer indépendamment de sa localisation
Notion générale, qui recouvre tous les différents types de services informatiques sur Internet.
Ensemble (nuage) de serveurs et d’ordinateurs en réseau répartis dans le monde. Ce « nuage » permet une
virtualisation des applications (qui ne sont plus installées sur le poste de travail de l’utilisateur) accessibles par le web via un simple navigateur.
Cloud computing ???
The cloud computing is a culmination of
numerous attempts at large scale computing with seamless access to virtually limitless resources.
• on-demand computing, utility computing, ubiquitous computing, autonomic computing, platform computing, edge computing, elastic computing, grid computing,
…
Modèle “Pay as you go”
Lorsqu’on utilie un cloud public, le modèle proposé est similaire à la location (vs. l’achat) d’un équipement / maison
Une organisation peut également choisir le cloud privé …. Ou une combinaison public / privé.
Le Cloud ????
Le nuage et Internet
Un peu de pub … pour Google
• https://cloud.google.com/appengine/
Le cloud selon NIST
“Cloud computing is a model for enabling convenient, on-demand network access to a
shared pool of configurable computing resources (e.g., networks, servers, storage, applications,
and services) that can be rapidly provisioned and released with minimal management effort or
service provider interaction »
NIST : http ://csrc.nist.gov/groups/SNS/cloud- computing/index.html
Le cloud selon Wikipedia
“Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility over a network (typically the Internet). “
Le cloud – vu de ses détracteurs
I don’t understand what we would do differently in the light of Cloud Computing other than
change the wordings of some of our ads
Larry Ellision, Oracle’s CEO
I have not heard two people say the same thing about it [cloud]. There are multiple definitions out there of “the cloud”
Andy Isherwood, HP’s Vice President of European Software Sales
It’s stupidity. It’s worse than stupidity: it’s a marketing hype campaign.
Richard Stallman, Free Software Foundation founder
25
Caractéristiques du Cloud Computing
Common Characteristics:
Low Cost Software
Virtualization Service Orientation Advanced Security Homogeneity
Massive Scale Resilient Computing Geographic Distribution
Essential Characteristics:
Broad Network Access Rapid Elasticity On Demand Self-Service
Plan du cours
Le contexte des systèmes en réseau (systèmes distribués)
Vers le cloud
Composants du cloud et les *-aaS
Un écosystème dynamique
Quelques éléments techniques
Un nouveau modèle de programmation
Synthèse, conclusions et perspectives
Le cloud selon NIST
PaaS – IaaS- SaaS
SaaS : Software as a Service (1/2)
Mise à disposition par Internet d’applications informatiques ou logiciels comme un service
dans le cadre d’un abonnement,
les données peuvent aussi être stockées sur un serveur de l’opérateur SaaS.
l’utilisateur final n’a plus besoin d’installer l’application sur son poste
Il accède à son compte et aux applications par le Web
SaaS : Software as a Service (2/2)
Microsoft Office 365, Bime, Google Apps,
Keynote, FaceBook, Skype, NetFlix, DropBox, SlideShare
Des exemples:
• Gestionnaire de relation client (CRM)
• Comptabilité et finance / RH
• Visio conférence et communications
• Messagerie et logiciels collaboratifs
PaaS : Platform as a Service
PaaS désigne la mise à disposition d’un environnement de développement et
d’exploitation de logiciels sur Internet.
PaaS regroupe donc la partie développeur et système du Cloud Computing.
PaaS propose des fonctions de base (ou non) afin de simplifier ‘la vie’ du développeur (par exemple, gestion des utilisateurs et de la disponibilité des ressources).
Microsoft Azure, Bungee Connect,
WorkXpress, Force.com, Google App Engine
IaaS : Infrastructure as a Service
IaaS désigne une infrastructure matérielle, louée à la demande
L’infrastructure propose du stockage, des machines virtuelles, des OS, etc.
L’utilisateur peut disposer sur demande d’une capacité de traitement pour n’importe quel type d’application.
Amazon Web Services (AWS & EC2), RackSpace , GoGrid or CloudSigma
Les *aaS en figure
Pyramide SaaS – PaaS - IaaS
SaaS – PaaS - IaaS
Pyramide SaaS – PaaS - IaaS
Pyramide SaaS – PaaS - IaaS
Public cloud vs. Private cloud
cloud publique vs. Cloud privé
Pourquoi un cloud privé
• La sécurité et privacy des données des entreprises sont des points critiques
• Besoin de ne pas dépendre d’une offre / d’un vendeur
• Besoin d’un SLA spécifique pour la fiabilité ou le temps de réponse
• Mutualisation et conception de nombreuses applications internes
• ….
Plan du cours
Le contexte des systèmes en réseau (systèmes distribués)
Vers le cloud
Composants du cloud et les *-aaS
Un écosystème dynamique
Quelques éléments techniques
Un nouveau modèle de programmation
Synthèse, conclusions et perspectives
Un écosystème très dynamique
Evolution du CA du cloud d’Amazon
Avantages et bénéfices
Flexibilité
• Il est possible d’adapter les ressources informatiques en fonction de la demande et ceci vers la hausse ou la baisse
Réduction massive des couts récurrents et investissements
• Maintenance et exploitation des équipements
• L’entreprise sans infrastructure informatique
Mise à jour transparente des applicatifs
Adapté à la mobilité et accès aisé à l’environnement de travail via internet
Avantages et bénéfices (2/3)
Sécurité du stockage des données
• Les données sont fragmentées et quasiment inutilisables
Sécurité pour l’accès aux données
• Authentification et gestion des identités
Cloisonnement des données
• Les informations sont étanches entre les clients
Sécurité face aux sinistres
• Du fait des réplications et répartition géographique
Avantages et bénéfices (3/3)
Une aisance de déploiement, de configuration et de gestion
Une interconnexion des outils, des services, ….
Une portabilité aisée
En 15 mn une application de e-commerce opérationnelle
• http://ecommerce-platforms.com/ecommerce-selling- advice/how-to-start-an-online-shop-in-15-minutes-with- shopify
Points de vigilance (1/2)
Les coûts cachés et le « chèque en blanc »
Les évolutions imposées et leurs impacts pas toujours maitrisés
Une « personnalisation » plus difficile que pour la conception d’une application maison
La sécurité des données et qui y accèdent et pour quoi faire ????
Points de vigilance (2/2)
Fiabilité des connexions réseau
• Une indisponibilité rend les données et applications inaccessibles.
Le choix du fournisseur et ses « politiques »
Localisation des données et contrôle du client
• La France, l’Europe et les USA ont qq divergences….
Plan du cours
Le contexte des systèmes en réseau (systèmes distribués)
Vers le cloud
Composants du cloud et les *-aaS
Un écosystème dynamique
Quelques éléments techniques
Un nouveau modèle de programmation
Synthèse, conclusions et perspectives
Quelques images des infrastructures
Des éléments matériels
Le refroidissement et l’énergie
Le refroidissement
Les technologies sous jacentes
Virtualization: bare metal, hypervisor. …
VM0 VM1 VMn
Web-services, SOA, WS standards Services interface
Cloud applications: data-intensive, compute-intensive, storage-intensive
Storage Models: S3,
BigTable, BlobStore,
Bandwidth WS
environnement des fournisseurs d’infrastructures
Development Environment:
IDE, SDK, Plugins
Production Environment
Simple storage
Table Store
<key, value>
Drives Accessible through Web services
Management Console and Monitoring tools
& multi-level security
Microsoft Azure
Enterprise-level on-demand capacity builder
Fabric of cycles and storage available on-request for a cost
You have to use Azure API to work with the infrastructure offered by Microsoft
Significant features: web role, worker role , blob storage, table and drive-storage
Microsoft Azure
Amazon EC2
Amazon EC2 is one large complex web service.
EC2 provided an API for instantiating computing instances with any of the operating systems
supported.
It can facilitate computations through Amazon Machine Images (AMIs) for various other models.
Signature features: S3, Cloud Management
Console, MapReduce Cloud, Amazon Machine Image (AMI)
Excellent distribution, load balancing, cloud monitoring tools
Amazon
Google App Engine
This is more a web interface for a development environment that offers a one stop facility for design, development and deployment Java and Python-based applications in Java, Go and
Python.
Google offers the same reliability, availability and scalability at par with Google’s own applications
Interface is software programming based
Comprehensive programming platform irrespective of the size (small or large)
Signature features: templates and appspot,
Google app engine
Plan du cours
Le contexte des systèmes en réseau (systèmes distribués)
Vers le cloud
Composants du cloud et les *-aaS
Un écosystème dynamique
Quelques éléments techniques
Un nouveau modèle de programmation
Synthèse, conclusions et perspectives
Un nouveau contexte : le big data
Un déluge de données certes … mais des
capacités de traitement désormais accessibles
Vers l’extraction de connaissances à partir des données
http://www.d4d.orange.com/fr/Accueil
Des croisements de données et des opportunités immédiates pour les entreprises, les individus, et les Etats, ….
Des besoins de nouveaux paradigmes de calculs
GFS: Google File System
Internet génère de nouveaux challenges liés aux données des logs par exemple : large scale “peta scale”
Ces données et ces fichiers ne sont pas classiques du fait de leur modèle WORM ( “write once read many”);
Plus globalement ces données peuvent être liées à:
• Des données de patients (confidentiel médical)
• Des séries temporelles : finances, etc…
Google utilise ces caractéristiques pour Google file system (GFS)
Hadoop?
Google MapReduce est un modèle de calcul
“révolutionnaire” proposé par Google pour la conception de ses référencements.
GFS n’est pas “open source”.
Doug Cutting de Yahoo a conçu et développé Hadoop Distributed File System (HDFS).
Le framework qui propose HDFS, MapReduce et autres est appelé “the project Hadoop” ou Hadoop.
Hadoop est “open source” et distribué par Apache.
La tolérance aux pannes
La panne est la “norme” plutôt que l’exception
HDFS peut inclure des milliers de machines – chacune d’elle stocke une partie des données
Comme nous avons de très nombreux composants et que chacun d’eux a une probabilité de tomber en panne, il est normal que dans un tel système des composants ne
fonctionnent pas.
La détection des pannes et une reconfiguration rapide et automatique est le but de HDFS
Architecture Hadoop
Architecture HDFS
Map Reduce
2 fonctions de base:
• map : applique une fonction à une liste
─ map f [] = [] | map f [x::xs] = (f x) :: (map f xs)
─ map square [1,2,5] -> [1,4,25]
• reduce : construit une valeur à partir d’une fonction et d’une liste
─ reduce f a [] = a | reduce f a [x::xs] = reduce f (f x a) xs
─ reduce add 0 [1,3,6] ->10
Map reduce en action
Map Reduce
Hadoop Ecosystem
Hadoop big picture
Plan du cours
Le contexte des systèmes en réseau (systèmes distribués)
Vers le cloud
Composants du cloud et les *-aaS
Un écosystème dynamique
Quelques éléments techniques
Un nouveau modèle de programmation
Synthèse, conclusions et perspectives
Vers une transition pour les entreprises
Un passage risqué et en rupture … pour les DISI
Évaluer précisément les besoins en terme de CPU / MegaBytes …. Et aussi les couts cachés, la
formation, le coût de la transition
Évaluer plusieurs offres disponibles et les tester (il y a des offres d’essais…..)
Synthèse
Une maturité des approches et des outils et environnements stables et complets
Une élasticité et l’adaptation aux besoins du client – flexibilité et adaptabilité rapide
Des avantages nombreux pour les entreprises et les utilisateurs occasionnels
Des innovations pour l’entreprise avec les pratiques de type ‘big data’
Des points de vigilance sérieux …. Avec des en particulier la localisation et le traitement
(éventuel) des données
Quelques liens ….
• Amazon AWS: http://aws.amazon.com/free/
• AWS Cost Calculator:
http://calculator.s3.amazonaws.com/calc5.html
• Windows Azure: http://www.azurepilot.com/
• Google App Engine (GAE):
http://code.google.com/appengine/docs/whatisgo ogleappengine.html
• Graph Analytics:
http://www.umiacs.umd.edu/~jimmylin/Cloud9/do cs/content/Lin_Schatz_MLG2010.pdf
• For miscellaneous information:
http://www.cse.buffalo.edu/~bina
Une pause Video
Microsoft GFS Datacenter
• http://www.youtube.com/watch?v=hOxA1l1pQIw
La construction d’un data center (timelapse)
• http://www.youtube.com/watch?v=ujO-xNvXj3g
Un tour dans un data center de FaceBook
• http://gigaom.com/cleantech/a-rare-look-inside- facebooks-oregon-data-center-photos-video/