I Quaderni del Cloud : Cosa è il Cloud Computing
Se dovessi riassumere il Cloud Computing in una sola breve sentenza direi :
“Il Cloud Computing rappresenta un modello di utilizzo dell’IT, dall’infrastruttura alle applicazioni, tramite servizi”
mentre in versione più estesa:
“Il Cloud Computing rappresenta un modello di utilizzo dell’IT, dall’infrastruttura alle applicazioni, che vede combinati alcuni trend tecnologici consolidati come la virtualizzazione, la service orientation e l’aderenza agli standard con concetti di business come pay-per-use, self-provisioning e riduzione/annullamento del Capex”
Per capire cosa sia in pratica il Cloud Computing però partirei da una tassonomia dei servizi e funzionalità del Cloud Computing oramai condivisa da tutto il mercato:
- IaaS, Infrastructure as a Service, rappresenza lo strato del cloud di più basso livello e permette di avere come servizi il networking, Server, storage ecc..
- PaaS, Platform as a Service, invece rappresenta una vera e propria piattaforma applicativa (o infrastruttura applicativa) su cui sviluppare applicazioni “tradizionali” o in modalità SaaS. Tale piattaforma è disponibile e gestibile tramite servizi.
- SaaS, Software as a Service, è l’erogazione di applicazioni erogate ad end-users esterni capaci di self-provisioning e adattamento alle richieste degli utenti.
Questa tassonima deve essere vista quindi come una evoluzione e non una rivoluzione. Come fino ad oggi abbiamo lavorato on-premises (ovvero con server installati in casa) da oggi potremo lavorare con lo stesso approccio ma supportati dal modello del cloud computing che ci darà una garanzia di maggiore scalabilità,disponibilità on demand, condivisione di risorse (se richiesto) ed infine un modello economico più dinamico.
Tra l’altro progettare per il cloud significa usare gli standard di Internet già consolidati e conosciuti perchè ad oggi il cloud di per sé non ha (ancora) nessun proprio standard.
C’è però molta confusione
Oggi c’è molta confusione sul tema del Cloud! A mio avviso questa confusione è causata principalmente da tre fattori che ho ordinato per importanza:
- Il Cloud ha 3 dimensioni diverse (IaaS,PaaS e SaaS) con 3 diverse tipologie di audience!!
IaaS si rivolge prevalentemente a sistemisti e architetti di infrastruttura.
PaaS si rivolge prevalentemente a sviluppatori ed architetti di soluzioni.
SaaS si rivolge ad utenti finali.
Quindi, parlando di Cloud è essenziale capire a quale dimensione ci si stia riferendo perchè i messaggi e le considerazioni possono essere molto, ma molto diverse!!
A questo si aggiunge il distinguo tra Private Cloud e Public Cloud che vede le 3 dimensioni precedenti deployate in Data Center privati o pubblici gestiti dai vendor.Anche in questo caso molte considerazioni divergono se si parla di Private o di Public Cloud!!
Anche sul concetto di Private e Public credo ci sia spazio ad una precisazione : spesso si sente parlare di n public clouds. In realtà, a mio avviso, il public cloud è uno e uno solo mentre ci sono diversi fornitori di infrastrutture, piattaforme e servizi per il public cloud come ad esempio Microsoft, Google, Amazon...E’ come se si dicesse l’azienda x ha la sua internet mentre l’azienda y ha la propria internet :-)
- Spesso si identifica il concetto di Cloud Computing con quello di Hosting. Nulla di più sbagliato !! (ne parlo espressamente più avanti)
- Ogni vendor o fornitore di soluzioni Cloud presenta una propria declinazione di cosa sia il Cloud.
Questo è sia un bene che un male. Un bene perchè ogni azienda porta la propria visione ed arricchisce il mercato, dall’altro è un male perchè soprattutto all’inizio questo crea confusione.
Vi ricorda nulla il “ginepraio” intorno alla definizione di ESB? J Fortunatamente non siamo a questi livelli ...
Ad ogni modo, se facciamo uno sforzo ed andiamo oltre le singole definizioni dei players, ci accorgiamo che molte caratteristiche sono facilmente identificabili e comuni a tutti :
- Resource pooling : poter disporre di risorse condivise e quindi condividerne anche i costi, ovvero un modello multi-tenant.
- Elasticity : capacità di scalare verso l’alto ma anche verso il basso a seconda di diversi fattori esterni e per periodi di tempo definibili dall’utente garantendo lo stesso modello di business.
- Pay-per-use : possibilità di pagare solo quando il servizio serve ed è in funzione.
- On-demand self-service : scegliere quali servizi usare e quando.
- Measured service : tutte le risorse, dallo IaaS al SaaS sono controllate e monitorate ad uso sia del provider che del consumer.
- Broad network access : accesso ai servizi del cloud da qualsiasi dispositivo tramite l’uso di standard.
Quali sono i principali players?
IaaS |
Vmware vCloud (ESX,Vcenter),Amazon Web Services, Microsoft (Dynamic Data Center Tookit for Hosters), GoGrid,Rackspace,… |
PaaS |
Microsoft Windows Azure, Google AppEngine,Force.com,LongJump,Appian… |
SaaS |
Microsoft BPOS, Microsoft Dynamics, Salesforce.com,Google Docs,LotusLive,… |
On-Premises – Hosting - Cloud Computing. Quali le differenze?
Come dicevo in precedenza parte della confusione nasce dalla non chiara distinzione tra Hosting e Cloud. Ma vediamo quali sono le caratteristiche dei tre modelli di gestione dell’ IT per capirne le differenze.
On-Premises |
- Elettricità, Connettività, HW, SW, Operations presso la propria Server Farm. - Completo Controllo - Completa responsabilità - Capacità di erogazione “fisse”. - Capitale iniziale per l’infrastruttura e la messa in opera |
Hosting |
- Affitto di macchine HW+SW e della connettività - Minor controllo rispetto al on-premises - Minori responsabilità per il cliente rispetto al on-premises - Minori capitali iniziali - Più flessibilità - Costi fissi per capacità di erogazione “fissa” anche quando le macchine non fanno nulla! |
Cloud Computing |
- Infrastruttura multi-tenant e condivisa. - Resource Pooling, Isolamento come caso specifico. - On-Demand Self-service ovvero capacità di richiedere ciò di cui si ha bisogno - Indipendenza dalla topologia di rete - Elasticità : capacità di richiedere maggiori risorse solo quando necessarie. - Servizi sotto controllo - Pagamento dei servizi solo quando servono |
Quando usare il Cloud?
Sebbene dedicherò vari post sull’argomento voglio solamente dare qualche spunto pratico per capire meglio le aree di utilizzo del cloud:
- Scenari che richiedono alta affidabilità
- Es: Applicazioni SaaS,
- Applicazioni con carichi variabili
- Es: Applicazioni di ticketing.pensiamo ad una offertissima per una partita o per un concerto... durante alcuni giorni avremo una demand altissima, mentre poi il flusso tornerà normale.
- Applicazioni on-premises che occasionalmente hanno bisogno di extra capacity ovvero scenari dove “accendo” l’extra power fornita dal cloud solo quando mi serve.
- Scenari che richiedono una scalabilità massiva
- Es: Applicazioni alla Web 2.0
- Applicazioni di breve durata
- Es: supporto a campagne marketing focalizzate in un periodo limitato
- Applicazioni che necessitano di processing parallelo
- Es: applicazioni finanziarie
- Scenari di business da testare
- Es: applicazioni che avranno successo o falliranno nel giro di poco tempo come ad esempio start-up o addirittura lancio di progetti di una azienda consolidata che non vuole investire su HW e SW sul progetto...
- Applicazioni che non rientrano in un data center aziendale
- Es: Joint Venture, acquisizioni, fusioni
- Scenari di integrazioni tra internet diverse
- Es: Joint Venture, acquisizioni, fusioni, B2B
La lista potrebbe essere molto più lunga, ma spero di aver dato un’idea...
Concludendo
Vorrei concludere questo primo post della serie sul cloud computing con alcune riflessioni spot molte delle quali saranno oggetto di post dedicati:
- Nel cloud, a differenza dei modelli on-premises e hosting, quello che compriamo sono i servizi (di infrastruttura, di piattaforma o applicativi) e non i prodotti!
- il Cloud computing è uno di quei rari casi (almeno nel mondo dell’ IT) in cui il traino principale non è la tecnologia ma bensì i bisogni sempre più incalzanti di risorse on-demand, scalabilità e pay-per-use.
- Tutti i modelli sopra citati possono essere integrati perchè tranne (alcune) start-up nessuna azienda giustamente vuole portare tutto il proprio IT E DATI sul Cloud.
- Sicurezza, Interoperabilità, Privacy sono le prime domande tecnologiche che ci si pone mentre, cosa sposto nel cloud, quali modelli architetturali e di business posso adottare sono le seconde... che analizzeremo nei post successivi...
A questo punto non mi resta che lasciarvi con una “definizione ufficiale” del Cloud Computing che, spero, ora sia alquanto più chiara a tutti :
“Cloud computing is a pay-per-use model for enabling available, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, services) that can be rapidly provisioned and released with minimal management effort or service provider interaction” [National Institute of Standards and Technology]
--Mario
Comments
Anonymous
June 06, 2010
Bel post, Mario, molto chiaro...Anonymous
June 06, 2010
Ciao Mario, complimenti per il post davvero utile, anche io noto in giro una grande confusione tra Hosting e Cloud Computing e non solo da parte dei clientiAnonymous
July 05, 2010
Bel post (ne ho fatto uno simile sugli stessi argomenti: blogs.technet.com/.../nuvole-da-gestori-di-server-a-gestori-di-servizi.aspx). Non concordo però con la tua visione di un unico cloud con molti fornitori. A mio avviso questa tua visione sarebbe vera se ci fosse completa interoperabilità tra i diversi fornitori di servzi e se quindi, per esempio, si potesse spostare una VM tra diversi fornitori di IaaS, un'applicazione tra diversi fornitori di PaaS e così via, mentre questo non è vero. Si possono far parlare applicazioni residenti su cloud di fornitori diversi, costruire infrastrutture con VM in esecuzione su infrastruutture IaaS di fornitori diversi, ecc... ma direi che questa non è completa interoperabilità.Anonymous
July 08, 2010
Ciao Mario, grazie per il post ... chiarisce parecchie delle molte difficolta ad accettare e comprendere il cloud. Sarà interessante assistere all'evoluzione di alcune figure in azienda; la trovo un' interessante opportunità anche, probabilemente, di nuove figure professionali. :)Anonymous
May 27, 2011
Ottimo articolo ma che scenario inquietante sul piano del mercato del lavoro per noi sistemisti con target di piccola e media azienda! Ancora un passo in piu' oltre l'attuale implementazione del cloud computing e l'utente finale sara' in grado di gestire integralmente i servizi IT della propria attivita'. Non condivido del tutto, infatti, la visione di Piergiorgio nel suo articolo: blogs.technet.com/.../nuvole-da-gestori-di-server-a-gestori-di-servizi.aspx Credo ci sara' meno lavoro per molti e un po' piu' di lavoro solo per pochi eletti. Una fascia di sistemisti/tecnici di medio livello, che forniscono alle aziende servizi a 360 gradi in modalita' "pay and forget" (dal cavo di rete che non funziona alla progettazione del piccolo datacenter), letteralmente spazzata via.Anonymous
May 31, 2011
@Simone Concordo solo parzialmente con quello che dici. Sicuramente i sistemisti che lavorano sulla parte di gestione HW delle infrastrutture sono a maggior rischio di lavoro (ma ricordiamoci che per raggiungere i servizi nel cloud qualcosa si deve pur usare), mentre i sistemisti che lavorano sulla parte più alta dello stack, se sapranno far evolvere le loro competenze, saranno meno a rischio. Certamente diminuirà nel complesso la richiesta di figure sitemistiche. Tieni anche presente che gli utenti finali sono in genere poco interessati a gestire gli strumenti informatici che considerano uno strumento di lavoro qualsiasi se non proprio un elettrodomestico, quindi...