1. Social media web e Smart Apps (A.A. 2011/2012) - Gianluigi Cogo
UNIVERSITÀ CA’ FOSCARI – VENEZIA
Project work : Cloud Infastrucure : Mattia Azzena
2. 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.
3. 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 .
4. 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.
5. 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.
6. 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.
7. 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.”
8. 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.