Social media web e Smart Apps (A.A. 2011/2012) -	Gianluigi Cogo
UNIVERSITÀ CA’ FOSCARI – VENEZIA
Project work : Cloud Infastrucure : Mattia Azzena
Cloud Infastrucure
Il termine cloud è stato usato come metafora per indicare Internet fin dall’inizio delle prime reti
quando nei classici diagrammi questa rappresentava il network telefonico, fino ai giorni nostri, nel
quale rappresenta un insieme astratto di infrastrutture
Oggi, con la tecnologia in continua espansione, diversi servizi quali lo spostamento dei dati tra
diversi dispositivi e l’utilizzo di applicazioni SaaS (Software as Service) già possibili in smartphone
entry-level, hanno fatto crescere la necessità di poter accedere ovunque e in qualsiasi momento
alle proprie risorse, private o aziendali.
Nel privato, come capita spesso per le nuove tecnologie, questo servizio è già in una “fase
esponenziale” , mentre nel mondo aziendale non sempre si è allo stesso passo. Quello che vorrei
evidenziare in quest’ articolo è l’insieme dei vantaggi che un’ infrastruttura realizzata nel cloud è in
grado di fornire soprattutto in ambito aziendale già alle PMI.
IaaS Infrastrucure
Come sappiamo il modello più basso nel cloud computing è definito come lo IaaS (Infastrucure as
a Service) reso concreto già dal 2006 tramite il lancio pubblico di AWS di Amazon (Amazon Web
Service) .
Nel 2011 tra le società più potenti e competitive il mercato è stato dominato da [CRN ANALYSIS]:
Generalmente il servizio offre computer ( o meglio computer virtuali), con storage “senza limiti”,
firewalls e sistemi Balance di risorse fisiche e di banda del network .
Questo servizio fornito dai provider IaaS è stato “taggato” come scalabile, veloce, zero-tolerance
fault, economico e sono tutte parole chiave che dovrebbero dare l’impulso necessario anche alle
nostre aziende locali operanti nel settore, ma attualmente poche aziende italiane stanno
cambiando il loro modo di operare, perdendo cosi tutti i vantaggi possibili da questo sistema in the
cloud.
I Servers sono Software
La chiave di volta sta nella differenza tra i classici
sistemi di deployment offerti dalle aziende (ad
esempio tramite server dedicati, co-locati ecc) e i
sistemi offerti nel cloud , perché i servers sono da
considerarsi come “Software nel Cloud”.
I vantaggi di un Server Software nel Cloud
Velocità e flessibilità
I server tradizionali generalmente richiedono l’intervento umano per l’attivazione e il settaggio
delle macchine hardware, che può richiedere anche diversi giorni.
Inoltre le aziende che offrono le proprie strutture (se non la stessa azienda) hanno sempre una
struttura “limitata”, un determinato numero di macchine e risorse mentre il “Software nel Cloud”
bypassa questi limiti e gestirà lui tutte queste situazioni scomode e non cosi tanto occasionali
evitando congestioni.
Per esperienza personale già questo passaggio è
oneroso e frustrante. Io che gestisco diversi web
Server per applicativi web ho affrontato spesso il
problema denominato “bottleneck”, ovvero una
congestione nell’utilizzo delle risorse del sistema.
E ho dovuto fare anche trasferimenti da macchina
a macchina perché non esiste il concetto di scalabilità, specie se temporaneo.
Zero Fault Tolerant e Scalabilità
Il servizio garantisce anche un sistema zero-fault tolerant
(sempre nei confini del probabile) che è di facile comprensione
perché l’IaaS provider avrà un servizio fisico delocalizzato e
decentralizzato.
Per evitare qualsiasi genere di imprevisto non dipendente
dall’uomo (terremoti ecc) gli IaaS Provider hanno svariate Farm
in diversi parti del paese, in maniera da poter garantire come da SLA (Service Level Agreement) un
up-time tendente al 100%.
Inoltre è un sistema molto flessibile nei picchi di richieste di risorse, che generalmente sono punti
deboli di un sistema classico. La possibilità di avere un monitoraggio automatico sulle richieste del
sistema permette una pre-allocazione di risorse da poter usufruire al momento cruciale.
 Databases Server 2.0 : la “killer application” ?
La tipica risorsa “avida” in un sistema di tipo Server è la gestione dei dati in uno o più database.
Inserimento/ aggiornamento dei dati e query di ricerche full-text sono utilizzi quotidiani di molte
applicazioni e richiedono parecchie risorse al sistema.
Attraverso un’equa divisione delle risorse si può generare un sistema di database on-the-cloud con
server già predisposti e ottimizzati per una precisa funzione.
La stessa compagnia di Facebook grazie a Avinash Lakshman (uno degli autori
di Amazon Dynamo) fino al tardo 2010 [Wk] ha creato e utilizzato un sistema
decentralizzato di database (Apache Cassandra) per la ricerca dei messaggi
personali (Inbox Search), perché questo è un problema assai frequente specie
nelle piattaforme rivolte all’uso Web. La decentralizzazione, quindi sistema zero-fault con scalabilità
anche rapida è già una soluzione concreta proposta dal modello on-th-cloud.
Nella mia piccola esperienza, collaborando con siti web parecchio trafficati [mininova.org ], e
gestendo io stesso siti creati da me (presenti anche nella top #200 di Alexa Rank IT) avevo già
notato la difficoltà nella gestione del database. Load Balancer e sistemi di cache (quali
Memcached) già dal 2004 sono state soluzioni buone ma complesse.
Tuttavia per sfruttare a pieno la potenzialità del cloud
bisognerebbe riprogrammare l’interazione con il database
attraverso sistemi decentralizzati quali ad esempio BigTable di
Google.
Ma a livello economico?
Il vantaggio di avere un’infrastruttura nel cloud è già ben evidenziata ma cosa fondamentale è che
anche il prezzo è proporzionato all’uso delle risorse del tuo sistema o della tua applicazione e
quindi generalmente il prezzo risulta più economico dei sistemi tradizionali.
Quindi in teoria il prezzo sarà inferiore. Infatti il costo sarà
proporzionato all’utilizzo delle risorse, che andrà via via aumentando
per eventuali flussi anomali di richieste, ma che verrà ammortizzato in
tutto il resto del tempo in cui il Server sarà in una fase idle.
Riportandoci a un esempio di quotidiana pendolarità: [Esker IT]
“Prima di decidere se andare in ufficio con i mezzi pubblici oppure in
auto vale la pena pensare alla propria agenda: ufficio tutto il giorno o
visite all’esterno? Dove? Non appena ci si rende conto di come dovremo trascorrere la giornata, la
scelta per li trasporto diventerà praticamente automatica”.
Inoltre l’azienda non dovrà pagare direttamente per le spese di manutenzione, corrente, sicurezza
per il datacenter come ad esempio avviene in un approccio On-Premise.
Infatti oltre all’approccio Cloud per la virtualizzazione dei Server , le aziende
hanno utilizzato e utilizzano due sistemi molto simili, con vantaggi simili o con
costi maggiori per tutelarsi.
Approccio On-Premise
Le stesse aziende utilizzano parte della loro struttura da
dedicare fisicamente alle macchine hardware, gestendo
internamente tutti i costi da essa derivati: personale,
manutenzione, consumo di energia elettrica, sicurezza.
E’ un sistema già definito “old-style” anche se è stato il più
utilizzato fino al 2005, ma il suo punto di forza può compensare i
costi: la sicurezza e la riservatezza dei dati sensibili.
E’ tipicamente un modello preferito da sistemi bancari, finanziari, ecc.. dove la richiesta di
determinate risorse sono controllate e gestite internamente.
Approccio Cloud
Le risorse delle aziende sono mantenute e sono accessibili online, sia in un “cloud privato”
(dedicato per l’uso di una sola azienda), sia in un “cloud pubblico” (dove le risorse del cloud sono
condivise tra diverse aziende). Il grande beneficio come già descritto prima riguarda i costi
d’esercizio, che saranno inferiori ad un sistema On-premise e l’azienda potrà convertire le spese
dell’IT in un modello “pay per use”.
Lo svantaggio principale nella soluzione Cloud è che molte aziende
percepiscono un rischio di sicurezza molto alto, specie per le informazioni di
strategie aziendali, dati quasi sempre sensibili.
 Richard Stallman (fondatore della Free Software Fondation e creatore del sistema operativo GNU)
citando una sua intervista [the guardian] afferma: “ making extensive use of cloud computing is
worse than stupidity because it meant a loss of control of data.”
Approccio Hybrid
Questo modello sfrutta i due modelli precedenti, sfruttando un eventuale data center installato
all’interno dell’azienda e un servizio Cloud esterno, con diverse risorse utilizzabili per utenti
diversi. Per esempio un’azienda potrebbe utilizzare il proprio data center per il personale della
sede e utilizzare un servizio Cloud per il personale che lavora fuori sede (in mobilità) che
necessitano di informazioni differenti. (CRM ecc)
Questo approccio offre un ottimo compromesso tra sicurezza e prezzo, e la stessa Microsoft
Corporation in una sua analisi dice di aver risparmiato oltre 500,000 dollari passando ad un
approccio Hybrid.
Pensiero finale e conclusione..
In generale le architetture che sfruttano il cloud dovrebbero
suddividere le loro operazioni, utilizzando Server distinti, in
modo da poter eseguirle separatamente e di poter terminarle
nel momento in cui non siano necessarie.
Se si riesce a raggiungere questo livello nella propria architettura basata sul Cloud, allora avrete
veramente un sistema di deployment più veloce, meno costoso, fault-toleranet e più sicuro.

Cloud infrastructure

  • 1.
    Social media webe Smart Apps (A.A. 2011/2012) - Gianluigi Cogo UNIVERSITÀ CA’ FOSCARI – VENEZIA Project work : Cloud Infastrucure : Mattia Azzena
  • 2.
    Cloud Infastrucure Il terminecloud è stato usato come metafora per indicare Internet fin dall’inizio delle prime reti quando nei classici diagrammi questa rappresentava il network telefonico, fino ai giorni nostri, nel quale rappresenta un insieme astratto di infrastrutture Oggi, con la tecnologia in continua espansione, diversi servizi quali lo spostamento dei dati tra diversi dispositivi e l’utilizzo di applicazioni SaaS (Software as Service) già possibili in smartphone entry-level, hanno fatto crescere la necessità di poter accedere ovunque e in qualsiasi momento alle proprie risorse, private o aziendali. Nel privato, come capita spesso per le nuove tecnologie, questo servizio è già in una “fase esponenziale” , mentre nel mondo aziendale non sempre si è allo stesso passo. Quello che vorrei evidenziare in quest’ articolo è l’insieme dei vantaggi che un’ infrastruttura realizzata nel cloud è in grado di fornire soprattutto in ambito aziendale già alle PMI.
  • 3.
    IaaS Infrastrucure Come sappiamoil modello più basso nel cloud computing è definito come lo IaaS (Infastrucure as a Service) reso concreto già dal 2006 tramite il lancio pubblico di AWS di Amazon (Amazon Web Service) . Nel 2011 tra le società più potenti e competitive il mercato è stato dominato da [CRN ANALYSIS]: Generalmente il servizio offre computer ( o meglio computer virtuali), con storage “senza limiti”, firewalls e sistemi Balance di risorse fisiche e di banda del network .
  • 4.
    Questo servizio fornitodai provider IaaS è stato “taggato” come scalabile, veloce, zero-tolerance fault, economico e sono tutte parole chiave che dovrebbero dare l’impulso necessario anche alle nostre aziende locali operanti nel settore, ma attualmente poche aziende italiane stanno cambiando il loro modo di operare, perdendo cosi tutti i vantaggi possibili da questo sistema in the cloud. I Servers sono Software La chiave di volta sta nella differenza tra i classici sistemi di deployment offerti dalle aziende (ad esempio tramite server dedicati, co-locati ecc) e i sistemi offerti nel cloud , perché i servers sono da considerarsi come “Software nel Cloud”. I vantaggi di un Server Software nel Cloud Velocità e flessibilità I server tradizionali generalmente richiedono l’intervento umano per l’attivazione e il settaggio delle macchine hardware, che può richiedere anche diversi giorni. Inoltre le aziende che offrono le proprie strutture (se non la stessa azienda) hanno sempre una struttura “limitata”, un determinato numero di macchine e risorse mentre il “Software nel Cloud” bypassa questi limiti e gestirà lui tutte queste situazioni scomode e non cosi tanto occasionali evitando congestioni. Per esperienza personale già questo passaggio è oneroso e frustrante. Io che gestisco diversi web Server per applicativi web ho affrontato spesso il problema denominato “bottleneck”, ovvero una congestione nell’utilizzo delle risorse del sistema. E ho dovuto fare anche trasferimenti da macchina a macchina perché non esiste il concetto di scalabilità, specie se temporaneo.
  • 5.
    Zero Fault Tolerante Scalabilità Il servizio garantisce anche un sistema zero-fault tolerant (sempre nei confini del probabile) che è di facile comprensione perché l’IaaS provider avrà un servizio fisico delocalizzato e decentralizzato. Per evitare qualsiasi genere di imprevisto non dipendente dall’uomo (terremoti ecc) gli IaaS Provider hanno svariate Farm in diversi parti del paese, in maniera da poter garantire come da SLA (Service Level Agreement) un up-time tendente al 100%. Inoltre è un sistema molto flessibile nei picchi di richieste di risorse, che generalmente sono punti deboli di un sistema classico. La possibilità di avere un monitoraggio automatico sulle richieste del sistema permette una pre-allocazione di risorse da poter usufruire al momento cruciale. Databases Server 2.0 : la “killer application” ? La tipica risorsa “avida” in un sistema di tipo Server è la gestione dei dati in uno o più database. Inserimento/ aggiornamento dei dati e query di ricerche full-text sono utilizzi quotidiani di molte applicazioni e richiedono parecchie risorse al sistema. Attraverso un’equa divisione delle risorse si può generare un sistema di database on-the-cloud con server già predisposti e ottimizzati per una precisa funzione. La stessa compagnia di Facebook grazie a Avinash Lakshman (uno degli autori di Amazon Dynamo) fino al tardo 2010 [Wk] ha creato e utilizzato un sistema decentralizzato di database (Apache Cassandra) per la ricerca dei messaggi personali (Inbox Search), perché questo è un problema assai frequente specie nelle piattaforme rivolte all’uso Web. La decentralizzazione, quindi sistema zero-fault con scalabilità anche rapida è già una soluzione concreta proposta dal modello on-th-cloud. Nella mia piccola esperienza, collaborando con siti web parecchio trafficati [mininova.org ], e gestendo io stesso siti creati da me (presenti anche nella top #200 di Alexa Rank IT) avevo già notato la difficoltà nella gestione del database. Load Balancer e sistemi di cache (quali Memcached) già dal 2004 sono state soluzioni buone ma complesse.
  • 6.
    Tuttavia per sfruttarea pieno la potenzialità del cloud bisognerebbe riprogrammare l’interazione con il database attraverso sistemi decentralizzati quali ad esempio BigTable di Google. Ma a livello economico? Il vantaggio di avere un’infrastruttura nel cloud è già ben evidenziata ma cosa fondamentale è che anche il prezzo è proporzionato all’uso delle risorse del tuo sistema o della tua applicazione e quindi generalmente il prezzo risulta più economico dei sistemi tradizionali. Quindi in teoria il prezzo sarà inferiore. Infatti il costo sarà proporzionato all’utilizzo delle risorse, che andrà via via aumentando per eventuali flussi anomali di richieste, ma che verrà ammortizzato in tutto il resto del tempo in cui il Server sarà in una fase idle. Riportandoci a un esempio di quotidiana pendolarità: [Esker IT] “Prima di decidere se andare in ufficio con i mezzi pubblici oppure in auto vale la pena pensare alla propria agenda: ufficio tutto il giorno o visite all’esterno? Dove? Non appena ci si rende conto di come dovremo trascorrere la giornata, la scelta per li trasporto diventerà praticamente automatica”. Inoltre l’azienda non dovrà pagare direttamente per le spese di manutenzione, corrente, sicurezza per il datacenter come ad esempio avviene in un approccio On-Premise. Infatti oltre all’approccio Cloud per la virtualizzazione dei Server , le aziende hanno utilizzato e utilizzano due sistemi molto simili, con vantaggi simili o con costi maggiori per tutelarsi.
  • 7.
    Approccio On-Premise Le stesseaziende utilizzano parte della loro struttura da dedicare fisicamente alle macchine hardware, gestendo internamente tutti i costi da essa derivati: personale, manutenzione, consumo di energia elettrica, sicurezza. E’ un sistema già definito “old-style” anche se è stato il più utilizzato fino al 2005, ma il suo punto di forza può compensare i costi: la sicurezza e la riservatezza dei dati sensibili. E’ tipicamente un modello preferito da sistemi bancari, finanziari, ecc.. dove la richiesta di determinate risorse sono controllate e gestite internamente. Approccio Cloud Le risorse delle aziende sono mantenute e sono accessibili online, sia in un “cloud privato” (dedicato per l’uso di una sola azienda), sia in un “cloud pubblico” (dove le risorse del cloud sono condivise tra diverse aziende). Il grande beneficio come già descritto prima riguarda i costi d’esercizio, che saranno inferiori ad un sistema On-premise e l’azienda potrà convertire le spese dell’IT in un modello “pay per use”. Lo svantaggio principale nella soluzione Cloud è che molte aziende percepiscono un rischio di sicurezza molto alto, specie per le informazioni di strategie aziendali, dati quasi sempre sensibili. Richard Stallman (fondatore della Free Software Fondation e creatore del sistema operativo GNU) citando una sua intervista [the guardian] afferma: “ making extensive use of cloud computing is worse than stupidity because it meant a loss of control of data.”
  • 8.
    Approccio Hybrid Questo modellosfrutta i due modelli precedenti, sfruttando un eventuale data center installato all’interno dell’azienda e un servizio Cloud esterno, con diverse risorse utilizzabili per utenti diversi. Per esempio un’azienda potrebbe utilizzare il proprio data center per il personale della sede e utilizzare un servizio Cloud per il personale che lavora fuori sede (in mobilità) che necessitano di informazioni differenti. (CRM ecc) Questo approccio offre un ottimo compromesso tra sicurezza e prezzo, e la stessa Microsoft Corporation in una sua analisi dice di aver risparmiato oltre 500,000 dollari passando ad un approccio Hybrid. Pensiero finale e conclusione.. In generale le architetture che sfruttano il cloud dovrebbero suddividere le loro operazioni, utilizzando Server distinti, in modo da poter eseguirle separatamente e di poter terminarle nel momento in cui non siano necessarie. Se si riesce a raggiungere questo livello nella propria architettura basata sul Cloud, allora avrete veramente un sistema di deployment più veloce, meno costoso, fault-toleranet e più sicuro.