Molte agenzie di consulenza informatica e software vendono dei semplici servizi di condivisione, hosting e web application come vero Cloud Computing a chi è meno esperto. Corriamo ai ripari informandoci sul Cloud Computing.

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 bene cosa è il Cloud Computing si deve definire la tassonomia dei servizi e funzionalità del Cloud Computing che prevede:

  • 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.

Differenza tra cloud computing e on-premises

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 ed è causata principalmente da quattro fattori:

  1. Il Cloud ha 3 dimensioni diverse (IaaS, PaaS e SaaS) con 3 diverse tipologie di audience:
    1. IaaS si rivolge prevalentemente a sistemisti e architetti di infrastruttura.
    2. PaaS si rivolge prevalentemente a sviluppatori ed architetti di soluzioni.
    3. 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 estremamente diverse.
  2. Si crea confusione tra Private Cloud e Public Cloud che vede le 3 dimensioni precedenti dislocate in Data Center privati o pubblici gestiti dai vendor (come ad esempio Microsoft, Google, Amazon).
  3. Spesso si identifica il concetto di Cloud Computing con quello di Hosting.
  4. Ogni vendor o fornitore di soluzioni Cloud presenta una propria declinazione di cosa sia il Cloud.

Ad ogni modo, se facciamo uno sforzo ed andiamo oltre le singole definizioni, 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 le principali soluzioni?

  • 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 Office 360, Microsoft Dynamics, Salesforce.com, Google Docs, LotusLive, …

On-Premises, Hosting e Cloud Computing. Quali le differenze?

La confusione può nasce dalla non chiara distinzione tra Hosting e Cloud. Le caratteristiche dei tre modelli di gestione dell’IT sono riassunte di seguito:

  • On-Premises: si possiede una propria infrastruttura IT che permette di avere il completo controllo sull’IT ma è anche necessario supportare i costi di manutenzione. E’ caratterizzato da:
    • necessità di una connessione alla rete elettrica ed internet per la connettività, HW e SW specifico, operations presso la propria server farm.
    • controllo completo;
    • completa responsabilità in caso di guasti e per la manutenzione;
    • necessità di un capitale iniziale per l’infrastruttura e la messa in opera.
  • Hosting: si affittano macchine e software da appositi vendor, come Aruba, per poter usufruire della loro infrastruttura IT. E’ caratterizzato da:
    • necessità di affittare macchine HW e SW dedicati e della connettività.
    • minor controllo rispetto al on-premises;
    • minori responsabilità in caso di guasti, la manutenzione e le operazioni sono effettuate dallo stesso vendor;
    • maggiore flessibilità;
    • costi minori ma fissi in base alla capacità di erogazione “fissa”, anche se le macchine non fanno nulla.
  • Cloud Computing: tutto viene erogato come servizi, e l’utente finale non deve preoccuparsi di come funziona l’infrastruttura IT. E’ caratterizzata da:
    • necessità di realizzare o utilizzare una infrastruttura multi-tenant e condivisa.
    • si basa sul concetto di Resource Pooling, cioè la condivisione delle risorse porta alla condivisione dei costi e quindi risparmi;
    • On-Demand Self-service, ovvero si ha la capacità di richiedere ciò di cui si ha bisogno evitando sprechi;
    • indipendenza dalla tipologia di rete;
    • elasticità, si ha la capacità di richiedere maggiori risorse solo quando necessarie;
    • pagamento dei servizi solo quando servono.

Quando usare il Cloud?

Senza scendere nel dettaglio è possibile definire le principali aree di utilizzo del cloud computing:

  • Scenari che richiedono alta affidabilità
    • Es: Applicazioni SaaS,
  • Applicazioni con carichi variabili
    • Es: Applicazioni di ticketing per una partita o per un concerto… durante alcuni giorni si ha una domanda altissima ma poi il flusso torna 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 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

Conclusioni

Bisogna ricordare che:

  • 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.

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]

Riferimenti:

I Quaderni del Cloud di Mario Fontana

Wikipedia: Cloud Computing