Verso il Cloud Computing
• Premessa • Definizione • Obiettivi • Fattori abilitanti • Terminologia
Evoluzione
Pochi cambiamenti epocali nella storia della tecnologia informatica.
Molti piccoli cambiamenti. I cambiamenti epocali sono resi possibili
dall’accumulo di cambiamenti minori (ma è difficile riconoscerli prima che siano in stadio avanzato)
Evoluzione
Es: ENIAC ! smartphone ARPANET ! internet CERN html/http ! modern WWW
(500*109 GB, 2009, raddoppia ogni 18 mesi)
Impatto
I cambiamenti ITC epocali hanno avuto effetti
significativi sulla vita quotidiana, sull’organizzazione della società, sul modo di gestire le imprese
Es: giornali Graduale diminuzione del peso della carta stampata Inizialmente unico canale per la diffusione delle
informazioni. Multiple edizioni per giorno. Canali alternativi: radio, TV Edizioni del mattino. Focus su analisi degli avvenimenti. Nuovo canale: WWW Spostamento degli investimenti pubblicitari Nuovo canale: dispositivi mobili Nuovi modelli di business. Sparizione di alcuni giornali. Tutto questo prima del cloud computing
Es: giornali
Verso l’estrazione delle notizie, non solo la consegna.
• Serve maggiore potenza di calcolo per fornire le notizie rilevanti per l’utente
Problema: gestire la scarsità • Come gestire al meglio le risorse disponibili? Come
ottenerne di nuove?
Visione: migliore, più veloce, più economico
Obiettivo: Computing—computation, storage,
communication—is relatively free, scales up or down as needed, scales as much as needed, operates itself, and always works.
Utopia?
Evoluzione
I era: computer II era: internet III era: cloud computing
I era (‘50-’90)
• Attenzione all’interno delle aziende • Inizialmente grandi sistemi centralizzati, poi
sistemi distribuiti • Infrastrutture associate alle applicazioni
(applicazione importante= infrastruttura costosa)
• Ascesa dei DB e dei sistemi di storage
II era
Internet Accesso universale Ubiquità Smart-devices hanno reso l’utilizzo dei servizi
largamente diffuso anche tra ‘non-tecnici’ Maggior contributo della seconda era: la rete
II era
L’infrastruttura continua ad essere: • costosa • difficile da mantenere • Sovradimensionata (affidabilità)
Durante la I e II era
Corsa alla scalabilità: • Da hardware indipendente ad hardware collegato in
rete, processori singoli a processori multipli. • Maggiore complessità derivante dal parallelismo • Yahoo: <1000 siti nel 1994, <10000 nel 1995,
successivamente raddoppiava ogni 53 giorni
Corsa al risparmio • Utilizzo di ‘commodity computers’ • Affidabilità?
III era
Google (inizialmente) ‘vince’ la corsa all’indicizzazione WWW • Automazione raccolta • Infrastruttura basata su elementi poco costosi ed
inaffidabili (singolarmente) • Gestione dati distribuita • Automatizzazione gestione sistema • Malfunzionamenti parzialmente tollerabili
Offerta all’esterno dei servizi e delle risorse
III era
Amazon: • Infrastruttura IT classica • Esposizione singoli servizi all’esterno • Decomposizione delle applicazioni in servizi • Virtualizzazione
Offerta all’esterno dei servizi e delle risorse
III era
Computing—computation, storage, communication—is relatively free, scales up or down as needed, scales as much as needed, operates itself, and always works.
L’utopia si sta lentamente realizzando
Fattori abilitanti • Hardware economico: compensato da applicazioni
affidabili • Velocità rete • Virtualizzazione • Architetture software: composizione componenti, SOA • Storage: evoluzione DB, approcci innovativi, evoluzione
infrastrutture storage • Accesso pervasivo • Società: aspettative (eg: Google sempre disponibile e
con risposte ad ogni domanda)
Definizioni
cloud computing Cloud computing is on-demand access to virtualized IT resources that are housed outside of your own data center, shared by others, simple to use, paid for via subscription, and accessed over the Web.
As a service? Cloud private?
Definizioni 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. This cloud model promotes availability and is composed of five essential characteristics, three delivery models, and four deployment models.
Commodity hardware? Pochi blocchi base?
Definizioni Cloud computing is a type of computing that provides simple, on-
demand access to pools of highly elastic computing resources. These resources are provided as a service over a network (often the Internet), and are now possible due to a series of innovations across computing technologies, operations, and business models. Cloud enables the consumers of the technology to think of computing as effectively limitless, of minimal cost, and reliable, as well as not be concerned about how it is constructed, how it works, who operates it, or where it is located.
Cloud computing is a style of computing where computing resources
and are easy to obtain and access, simple to use, cheap, and just work.
Caratteristiche essenziali
• Scalabilità Elasticità • Ubiquità dell’accesso • Virtualizzazione totale: semplicità, più server
virtuali devono apparire un solo server • Consistenza: pochi (anche 3 o 4) blocchi
base • Commodity hardware • Affidabilità • Multi-azienda e multi-applicazione
Layer principali
Tipologie
• Privata • Pubblica • Verticale (community) • Ibrida
Posizione
• Container • Raffreddamento: verso nord (sud) • Bassa densità
Cloud Computing
Cloud e dintorni
Il cloud computing deve funzionare nel mondo reale
• Co-esitenza di apparecchiature di generazioni diverse integrate in vario modo
Relazioni tra componenti dell’infrastruttura: • SOA • web services • grid computing • clusters
Service oriented architecture (SOA)
1980-90: software applicativo monolitico, dipendenze circolari, integrazione stretta. Sviluppo Object oriented ha permesso di aumentare l’indipendenza dei componenti.
Risultato: largo numero di componenti semplici Più facili da sviluppare e mantenere
Service oriented architecture (SOA)
OO: vengono rimosse le dipendenze inutili. Il software continua ad essere strettamente integrato
Difficoltà a distribuire il software su più
computer Passo successivo: SOA
Service oriented architecture (SOA)
Servizio: - Meccanismo formale di invocazione - Utilizzo remoto attraverso una rete
Contratto di servizio: - QoS - SLA (uptime, response time, disponibilità, ...)
Service oriented architecture (SOA)
Diversi approcci per l’individuazione e l’utilizzo di servizi: formali/informali, controllati/flessibili
In ogni caso, i servizi sono maggiormente
indipendenti tra di loro Non imposta come un servizio viene
implementato, purché siano rispettati i termini (ma non viene indicato il carico massimo…).
Service oriented architecture (SOA)
Es: • un settore dell’azienda sviluppa un servizio • pianifica l’uso delle risorse e lo avvia • altri cominciano ad utilizzarlo…
Se il servizio si basa su un’infrastruttura tradizionale ci saranno problemi di capacità… nella migliore delle ipotesi
Service oriented architecture (SOA)
Un governo attento dei servizi minimizza la possibilità che si presenti questo tipo ti problemi.
Tuttavia…. La scalabilità di un’applicazione è influenzata
dalla scalabilità dell’infrastruttura sulla quale funziona
Service oriented architecture (SOA)
SOA si presta ad essere utilizzata su una infrastruttura cloud based
Le applicazioni cloud si prestano ad essere
descritte come servizi
Web services e SOA
WS sono solo un particolare aspetto di SOA WS-* : • ecosistema di protocolli • Barriera di ingresso: livello di complessità
Web services e SOA
Web services ReST: • Maggiore indipendenza • Curva di apprendimento migliore • Più largamente adottati:
• Amazon nel 2003 forniva entrambi: 85% utilizzo ReST
WEB 2.0
Larga diffusione dei web services: (Amazon, eBay, Google, Yahoo)
• Scalabilità • Flessibilità / Dinamicità • Accessibilità universale • Possibilità di mescolare contenuti e servizi da varie
fonti • Favorisce la collaborazione
Nuovi modelli di business (es: freemium)
Application servers
• Diffusione e declino (in alcuni settori) di application server eccessivamente ‘pesanti’
• Affermazione di piattaforme che permettono di ignorare i requisiti dell’application server
Platform as a Service
Applicazioni più semplici
Utilizzo diretto web services
Consistenza ‘alla fine’
Maggiore libertà nella gestione dello stato BASE
Basically Available, Soft state, Eventual consistency
vs ACID
atomicity, consistency, isolation, durability
Linguaggi dinamici
Minori tempi di sviluppo per applicazioni semplici
Accesso ai dati
Le applicazioni cloud possono continuare ad
accedere ai database pre-esistenti Scalabilità ?
Fine di mainframe/server/clusters?
NO Integrazione e interazione via servizi
Fine Data centers ?
NO • Gestione cloud private più semplice • Sicurezza, continuità controllo • Latenza • Cultura aziendale
Cloud Computing: architettura
Modello architetturale: obiettivo
Progettare la struttura del sistema utilizzando
dei pattern riusabili in modo da soddisfare le esigenze individuate durante la fase di analisi
Componenti
Modello cloud Modello di distribuzione Architettura cloud
Componenti
Modello cloud: Allineamento di obiettivi strategici e possibili pattern Es1: applicazione CRM fornita come servizio (SaaS)
(CRM=Customer Relationship Management) Es2: migliorare l’utilizzo dei server aziendali utilizzando
un cloud interno (Iaas)
Modello di distribuzione Architettura cloud
Componenti
Modello cloud Modello di distribuzione
Cloud interna/esterna? Cloud privata/pubblica/verticale? Soluzioni ibride? Scelta di servizi da più fornitori?
Architettura cloud
Componenti
Modello cloud Modello di distribuzione Architettura cloud
Quali servizi? Dipendenze tra servizi? Come interagiscono tra loro? Come possono essere utilizzati dall’esterno?
Standard ??
Evoluzione rapida Per alcune parti dell’architettura esistono
standard maturi (es: per SaaS Javascript) per altri solamente standard allo stato di bozza
Importante considerare i rischi di adozione
degli standard…
Quali standard? Quando?
Modello di riferimento
Cloud enablement model Componenti tecnologici di base
Cloud deployment model Distribuzione componenti tecnologici di base
Cloud governance model Gestione del funzionamento,
della sicurezza e dei rischi
Cloud ecosystem model Vista d’insieme, affidabilità
Cloud secondo NIST
Modello logico L’architettura logica del cloud mantiene i medesimi livelli dell’architettura ITC usuale, ma tutti i livelli sono virtuali
Cloud enablement model
Cinque componenti: alla base le infrastrutture fisiche
Cloud enablement model
Livello fisico: Risorse fisiche utilizzate per supportare la virtualizzazione
• Elaborazione • Memorizzazione • Comunicazione • Sicurezza Server, dischi, SAN, switch e router, firewall,….
(omesso nel modello completo)
Cloud enablement model
Livello di virtualizzazione: Virtualizzazione dell’hardware
• Macchine virtuali • Dischi virtuali • Reti private virtuali
Cloud enablement model
Livello del sistema operativo cloud: funzionalità di base
• Bilanciamento del carico • Monitoraggio • Attivazione servizi (provisioning) • Virtualizzazione applicazioni
Cloud enablement model
Virtualizzazione applicazioni
Cloud enablement model
Livello piattaforma: Funzionalità per lo sviluppo di applicazioni, hosting, supporto di contenitori, messaging, gestione code Es: GAE, Amazon Sottolivelli: • middleware • piattaforma
Cloud enablement model
Livello piattaforma / Sottolivello middleware: Strumenti per costruire applicazioni: app server, queue server, messaging, web server… Livello piattaforma / Sottolivello piattaforma: Strumenti pre-integrati
Cloud enablement model
Livello piattaforma
Differenza tra sottolivelli: integrazione (piattaforma ‘chiavi in mano’)
Cloud enablement model
Livello business: Applicazioni e servizi livello utente Es: GMail, DropBox, MemoPal, … Software, Knowledge, Data, …. …..as a Service (*aaS: SaaS, KaaS, DaaS,…)
Cloud deployment model
Internal / private cloud Utilizzo razionale delle risorse Maggiore flessibilità ed elasticità (nei limiti delle risorse disponibili)
Cloud deployment model
External/ public cloud • Terze parti indipendenti (pro? contro?) • Accesso via web. Self-service. • Documentazione, comunità, API caricamento dati,
supporto tecnico • SLA e contratti di servizio • Varietà tipo di virtualizzazione • Varietà risorse disponibili (es: Amazon: elaborazione,
storage, queue server, DB, content delivery, map/reduce)
Cloud deployment model
Hybrid/Integrated cloud Scelte basate (anche) su analisi dei rischi
Utilizzo
Utilizzo per categoria utente
Top Related