Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Cloud Computing Antonio Corradi Luca Foschini Some Clouds 1 Cosa è il Cloud computing? The architecture and terminology of cloud computing is as clearly and precisely defined as, well, a cloud. Source: www.opencloudmanifesto.org Some Clouds 2
Il Cloud computing Alcune (prime) definizioni Un nuovo paradigma computazionale che nasce dall esigenza di porre rimedio ai problemi legati al costo dell Information Technology per le aziende moderne Propone un nuovo metodo di offerta di servizi informatici maggiormente commisurati alle esigenze delle moderne imprese Some Clouds 3 Cloud computing in continuità: una visione storica Software as a Service Cloud Computing Grid Computing Solving large problems with parallel computing Utility Computing Offering computing resources as a service Virtualization technologies Network-based subscriptions to applications Service Oriented Architectures (SOA) Web 2.0 Anytime, anywhere access to IT resources delivered dynamically as a service. Some Clouds 4
Prima del Cloud computing: GRID Grid computing Condivisione di risorse eterogenee (computer, software, dati, memoria e capacità computazionale, ) in ambienti distribuiti altamente eterogenei con l obiettivo di creare una virtual organization scalabile (secondo necessità!) Interfacce (di gestione) spesso a grana troppo fine, con basso livello di astrazione e non auto-contenute Ambiti applicativi circoscritti e molto specifici (calcolo parallelo per ambiti scientifico, ingegneristici, ) Some Clouds 5 Prima del Cloud: Virtualizzazione Virtualizzazione Tecnologie per la virtualizzazione (di sistema o ospitato), ad esempio in server farm: Vmware, Xen, Isolamento e personalizzazione infrastruttura e/o piattaforma SW (O.S., ed eventuali applicativi) Strumenti per la gestione efficiente di infrastrutture informatiche (IBM Tivoli suite, Xen monitoring tools, ) Some Clouds 6
Prima del Cloud computing: Web 2.0 Web 2.0 Uso di protocolli asincroni non visibili all utente per richiedere solo le informazioni necessarie e in modo asincrono: Asynchronous Javascript And XML (AJAX) Nuovo modo di usare i servizi Web è stato anche Office accoppiato a nuove applicazioni più facili da usare e collaborative e disponibili via Web in modo aperto, senza richiedere una installazione da parte dei clienti interessati: arrivando a determinare un nuovo modo di lavoro, molto cooperativo (Software as a Service ) Word Graphics Database Contacts https://www.google.com/hosted http://smallbusiness.yahoo.com/email/ www.zimbra.com many others www.writely.com www.writeboard.com www.inetword.com many others www.pxn8.com www.pixoh.com many others www.dabbledb.com www.lazybase.com www.quickbase.com many others www.linkedin.com www.plaxo.com many others Some Clouds 7 Architettura a livelli: IaaS, PaaS e SaaS Alla base del modello si trova l architettura reale: componenti hardware e Server Server Server prodotti software Hardware Some Clouds 8
Architettura a livelli: IaaS, PaaS e SaaS Infrastructure: strato che permette di distribuire l infrastruttura di servizio Cloud tipicamente realizzato dalla piattaforma di virtualizzazione Computer Network Storage Infrastructure as a Service (IaaS) Server Server Server Hardware Some Clouds 9 Architettura a livelli: IaaS, PaaS e SaaS Platform: strato che consente di fornire al livello superiore una serie di componenti e servizi accessibili da remoto Components Services Platform as a Service (PaaS) Computer Network Storage Infrastructure as a Service (IaaS) Server Server Server Hardware Some Clouds 10
Architettura a livelli: IaaS, PaaS e SaaS Software: strato su cui possono esser installate alcune applicazioni, accessibili via Internet tramite lo stesso sistema Cloud User Interface Software as a Service (SaaS) Components Machine Interface Services Platform as a Service (PaaS) Computer Network Storage Infrastructure as a Service (IaaS) Server Server Server Hardware Some Clouds 11 Architettura a livelli: IaaS, PaaS e SaaS Insieme di software Client per accedere al sistema. Tali applicazioni vengono Client Client Client User Interface Machine Interface Software as a Service (SaaS) eseguite sul computer Components Services fisico remoto di proprietà del cliente Platform as a Service (PaaS) finale, e sono in grado Computer Network di comunicare con le interfacce messe a disposizione dal Cloud Server Server Infrastructure as a Service (IaaS) Hardware Storage Server Some Clouds 12
Architettura a livelli: Attori Architettura a livelli: principali attori Some Clouds 13 Il Cloud computing è Requisiti ed obiettivi Scalabilità on demand (risorse gestite in modo elastico, risorse di sistema virtualizzate e uso di macchine virtuali, Service Level Agreements SLA, ) Fornitura automatizzata e facilità d uso (utility computing + infrastructure, platform, and software as a service) Riduzione dei costi (minimizzare i costi di primo deployment, energia, storage, potenza di calcolo, ) Sfide tecniche Gestione (risorse di sistema, power-saving, ) Interoperabilità e portabilità (dati, applicazioni, e immagini macchine virtuali) Misurazione e monitoraggio (monitoraggio dinamico delle risorse usate, accounting, ) Sicurezza (riservatezza/controllo dati, reputazione, ) Some Clouds 14
Componenti del Cloud I sistemi software per il Cloud Computing hanno tipicamente una struttura a componenti che comunicano tra loro grazie ad interfacce ben definite (spesso Web Services) Quattro componenti principali: un infrastruttura per la virtualizzazione ed il sistema di calcolo della quota da addebitare al cliente per l uso delle macchine virtuali un gestore delle richieste provenienti dall esterno una piattaforma Cloud, che offre un interfaccia accessibile via web per apportare modifiche all infrastruttura informatica reale o virtuale un sistema di memorizzazione a database Some Clouds 15 Obiettivi di infrastruttura Come mettere insieme le risorse di calcolo in modo flessibile per consentire un buon rapid prototyping? Come realizzare applicazioni che possano scalare fino a rispondere ai requisiti utente crescenti? Come gestire molte centinaia di migliaia di macchine con un intervento umano minimale? Come fare un uso il più efficiente possibile di tutte le risorse di calcolo di un data center? Some Clouds 16
Cosa può fare il Cloud Computing? Prototipazione e sviluppo rapido Attivare e disattivare VM è molto facile e veloce Alta grado di innovazione Scalabilità di applicazioni Web 2.0 Si possono clonare VM a richiesta dei clienti Processare transazioni in modo scalabile Supporto per SO più diffusi con QoS (sicurezza, affidabilità, ecc.) Supporto a applicazioni Data intensive Supporto a computazione Grid-like Some Clouds 17 Cloud computing: reality check Amazon Elastic Computing EC2: virtualized images (DB+Software and middleware+os), Xen, simple SLA console HP/Yahoo/Intel Test Bed: virtualized images, Xen, simple SLA console Research initiatives (RESERVOIR EU FP7 project, previous projects on grid computing such as EEGE, ) Google App Engine (Software as a Service SaaS, Web applications, Google App Engine, sandbox for management and security) IBM Blue Cloud: virtualized images (DB+Software and middleware+os), Xen, Tivoli (monitoring and management), simple SLA console Microsoft Azure: recentemente proposto da Microsoft Ricerca e altri sistemi in corso d opera: RESERVOIR EU FP7 project, Eucalyptus, 3Tera, Some Clouds 18
AWS e AMI Amazon EC2 (Elastic Computing Cloud) Amazon WS AWS permette all utente di stipulare SLA, acquistare risorse e gestire AMI Amazon EC2 AMI Amazon Machine Image Uso di template di immagini pre-configurate (read-only), che si possono ottenere e eseguire immediatamente. Creazione di immagini personalizzate con tutte le applicazioni, librerie, dati e configurazioni associate Amazon S3 (Simple Storage Service) Servizio di storage per mantenere AMI Dynamo Sistema per l archiviazione e la gestione dello stato della sessione per le centinaia di servizi offerti da Amazon EC2 Scalabilità incrementale (tecniche di hashing e load balancing dinamico) Elevata disponibilità attraverso tecniche di replicazione e uso di diversi modelli volti a garantire eventual consistency delle operazioni di lettura/scrittura (alto throughput e bassa latenza) Aggiornamento asincrono delle repliche, con versioning dei dati e riconciliazione (semi-)automatica di eventuali conflitti Some Clouds 19 19/41 Come funziona? Sottoscrizione account Firefox Plug-In Consente di eseguire una propria immagine Example Fedora Core 4 Apache MySQL Amazon EC2 Gestione diretta Esempio SLA (small instance) $0,10 per instance-hour 1.7 GB of memory 1 EC2 Compute Unit 160 GB of instance storage 32-bit platform Some Clouds 20
Google Apps Engine Web Applications on Google infrastructures Application Environment Sandbox+console di amministrazione: ambiente sicuro che distribuisce le richieste per le applicazioni Web alla molteplicità di server disponibili, ed eventualmente avvia/ferma altri server per venire incontro in modo adattativo alla domanda (richieste entranti) App Engine SDK: Python runtime environment + Google Accounts Datastore service: BigTable DBMS Cosa serve? Google App Engine SDK Google Account Text Editor Preview period (fino a qualche tempo fa ) 500 MB e fino a 5 milioni di pagine/mese Fino a 3 applicazioni Quote scalabili Google Mail (GMail) Google Calendar Google Sites Google Docs Google Video Google Talk Some Clouds 21 Standard Edition Premier Edition Educational Edition Costo Free 40 / Utente / Anno Free Storage 7 GB 25 GB 7 GB Pubblicità Google Apps: Forme di Servizio Annunci Pubblicitari Obbligatori Annunci Pubblicitari Opzionali Nessun Annuncio Pubblicitario Utenti 50 Utenti Illimitati Illimitati Supporto Nessuno Telefonico 24h/24 Telefonico 24h/24 Altro Servizio Postini Pianificazione Sala Riunioni/Risorse SLA garantito 99,9% Google Video API per integrazione del servizio nell infrastruttura Applicazioni e Servizi di Terze Parti Pianificazione Sala Riunioni/Risorse SLA garantito 99,9% Google Video API per integrazione del servizio nell infrastruttura Applicazioni e Servizi di Terze Parti
Yahoo / Intel / HP test bed HP (Server e Dispositivi) Open Cirrus Yahoo (Software) Intel (Processori) - HP Labs(USA) - Intel Research (USA) - Yahoo (USA) - University of Illinois (USA) - Karlsruhe institute of Technology (Germany) - Infocomm Development Autority (Singapore) Some Clouds 23 Open Cirrus: a Cloud testbed Unisce vari sforzi (di ricerca) Obiettivo: sviluppare uno stack opensource e API per il Cloud Test bed distribuito geograficamente e federato (no gestione centralizzata) Set di servizi di base comuni: Global Single Sign-on, Hadoop, Hadoop Distributed File System (HDFS) Altri servizi: gestione cluster, application framework (Pig, MPI, ) System v.s. application-only research: consente uso di macchine fisiche (oltre che virtuali) Validazione tramite eterogeneità Servizio di gestione cluster Some Clouds 24
IBM Blue Cloud Richiesta e amministrazione delle risorse computazionali secondo un modello self-service Image-based provisioning di Xen VMs automatico (Tivoli) Real-time monitoring completamente automatico (Tivoli) Gestisce grossi pool di risorse virtuali condivise Plug-and-play per Xen hosting platform: auto discovery & configuration (Tivoli) Software provisioning automatizzato e facilmente configurabile (console con semplici SLA) WebSphere Application Server Network Deployment DB2 Enterprise Server Edition PHP, MySQL, IIS, MS SQL Server Some Clouds 25 IBM Cloud: architettura di base Customer Cloud Admin Cloud UI (console) Tivoli Provisioning Manager WebSphere DB2 VM 1 VM 2 Xen Customer Users Tivoli Directory Server IBM Tivoli Monitoring DB2 NFS Server Some Clouds 26
SaaS Google App Engine IaaS Google docs PaaS Technology wrap up Google Bigtable Hadoop MapReduce (Yahoo) GoogleFS Amazon EC2 Some Clouds 27 Basic Cloud Computing Architecture Virtual Machine Virtual Machine Virtual Machine Virtual Machine Tivoli Monitoring Agent Open Source Linux with Xen Virtualized Infrastructure Based on Open Source Linux & Xen Virtualizzazione: tutte le macchine ospitano le macchine virtuali e il carico relativo Data Center Monitoring IBM Monitoring v.6 DB2 Provisioning Baremetal & Xen VMs Provisioning Manager v.5.1 WebSphere Application Server Provisioning Management Stack Provisioning: in pochi minuti si riesce a d attivare un insieme di molte macchine virtuali Monitoring: per riutilizzare le risorse non usate in tempi brevi Some Clouds 28
Esperienza sul Cloud Progetti con il Cloud Computing Center di Dublin Virtual machine (VM) consolidation per risparmio energetico verso il Green computing Some Clouds 29 Conclusioni Conclusioni e problemi aperti Cloud computing come nuovo modello di lavoro col quale sicuramente ci si dovrà confrontare nei prossimi anni Cloud computing come nuovo modello architetturale distribuito emergente se ancora non esiste definizione comune buona e chiara caratterizzazione, nelle sue varie declinazioni, dal punto di vista tecnologico (stack e componenti principali) Problemi aperti Cloud computing e modello economico Conviene affittare risorse di un Cloud esterno o acquistare e fornire un proprio Cloud? dipende da cosa, molto dibattito su questo Problemi di sicurezza e esternalizzazione gestione dati necessità di nuovi modelli di trust Some Clouds 30
Cloud per tutto NON proprio per tutto, ovvio, senza esagerare The fog has gone and the Clouds are disclosed into the sky! Thanks for your attention! Some Clouds 32
Resources and links Introductive YouTube video on Cloud Computing: http://www.youtube.com/watch?v= XdBd14rjcs0 Introductive YouTube video on Cloud Computing Some Clouds 33