cloud computing: i vantaggi della gestione dati on-demand - t2i... · cloud computing is a model...

Post on 23-Aug-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Cloud computing: i vantaggi della gestione

dati on-demand

Claudio Silvestri silvestri@unive.it

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