Notizie dalla rete del Pane

venerdì 9 novembre 2012

Cloud Computing


Il cloud computing comprende sia la disponibilità di elaborazione infrastrutturale teoricamente infinita sia la disponibilità di software sempre on-line. Presente una connessione internet il cloud estende il proprio potenziale elaborativo, disponibile sia in termini di HW sia di SW, dal proprio PC alla rete stessa. Ovviamente è necessario che chi offre servizi cloud metta a disposizione gli strumenti opportuni affinché tali servizi possano essere utilizzati in modo appropriato; non è infatti sufficiente “spostare” su internet quanto già offerto a livello aziendale o consumer senza ridisegnare le modalità di offerta, dal software di erogazione del servizio, al sistema di gestione dello stesso, al contratto di acquisto/uso, ai livelli di garanzia del servizio, ecc.

Per meglio comprendere le logiche che stanno dietro al concetto di Cloud si fa riferimento alle definizioni in DigitPA, “RACCOMANDAZIONI E PROPOSTE SULL’UTILIZZO DEL CLOUD COMPUTING NELLA PUBBLICA AMMINISTRAZIONE” che già riassumono la visione nazionale ed internazionale dei massimi esperti nel campo:

“Il cloud computing è un ambiente di esecuzione elastico che consente l'accesso via rete e su richiesta ad un insieme condiviso di risorse di calcolo configurabili (ad esempio rete, server, dispositivi di memorizzazione, applicazioni e servizi) sotto forma di servizi a vari livelli di granularità. Tali servizi possono essere rapidamente richiesti, forniti e rilasciati con minimo sforzo gestionale da parte dell’utente e minima interazione con il fornitore.”

Caratteristiche essenziali

Interessante come dalla definizione del NIST (National Institute of Standards and Technology degli Stati Uniti), “NIST Cloud Computing Reference Architecture”,si individuano cinque caratteristiche principali per la descrizione sintetica del cloud:

  1. Self-service su richiesta: un cliente può unilateralmente richiedere nei vincoli fissati dal contratto risorse computazionali, come tempo macchina, risorse di memorizzazione o altro, quando necessario per svolgere i suoi task, senza richiedere un intervento umano dei fornitori dei servizi stessi. 
  2. Accesso a banda larga: le risorse sono raggiungibili tramite la rete, la cui banda deve essere adeguata all’uso specifico richiesto, e vengono accedute con meccanismi che ne permettono l'uso con piattaforme client diversificate ed eterogenee sia semplici sia complesse (ad esempio telefoni cellulari, computer portatili, o computer palmari). 
  3. Risorse comuni: le risorse di calcolo del fornitore vengono organizzate per servire più clienti, utilizzando il modello multi-tenant, in cui le risorse fisiche e virtuali sono assegnate dinamicamente a seconda della richiesta dei clienti. Le risorse offerte sono indipendenti dalla loro locazione fisica, ovvero il cliente generalmente non ha né il controllo né la conoscenza dell'esatta locazione fisica delle risorse a lui fornite. Tuttavia, il fornitore potrebbe permettere all’utente di specificare dei vincoli sulla locazione delle risorse a lui assegnate in termini di area geografica, Paese o anche singolo data center. Esempi di risorse sono: risorse di memorizzazione, di calcolo, di rete e macchine virtuali. 
  4. Elasticità: le risorse possono essere fornite rapidamente ed elasticamente, ed in alcuni casi anche automaticamente, per incrementare velocemente la capacità computazionale, ed allo stesso modo possono essere rapidamente rilasciate per decrementare la capacità computazionale. Dal punto di vista dell'utente le risorse disponibili appaiono illimitate, e possono essere richieste in qualsiasi quantità ed in qualsiasi momento. 
  5. Servizi monitorati: i sistemi cloud controllano ed ottimizzano automaticamente l'utilizzo delle risorse, sfruttando la capacità di misurarne l'utilizzo delle risorse al livello necessario per il tipo di servizio (ad esempio servizi di memorizzazione, di calcolo, banda di comunicazione, ed account utente attivi). Il monitoraggio dell’utilizzo dei servizi è molto importante per permettere al fornitore di reagire ad eventuali picchi di richiesta allo scopo di garantire al cliente la Qualità del Servizio promessa. L'utilizzo delle risorse può essere monitorato e riportato trasparentemente sia per il fornitore che per il cliente. 

Inoltre, la virtualizzazione è solitamente associata al cloud come elemento tecnologico abilitante alcune delle caratteristiche di base.

Modelli di servizio

Al fine di proporre ed usare opportunamente il cloud si devono considerare i vari modello di servizio che per definizione sono presenti sul mercato. Ai principali tre modelli riconosciuti (IaaS, PaaS e SaaS) che si specializzano in una pletora di modelli specifici (che elencheremo brevemente di seguito) ma di cui rileviamo come particolarmente interessante il modello BPaaS.

IaaS (Infrastructure as a Service): Il modello di servizio Infrastructure as a Service prevede che il servizio offerto consista in una infrastruttura con capacità computazionale, di memorizzazione e di rete, sulla quale l’utente possa installare ed eseguire il software a lui necessario, dal sistema operativo alle applicazioni. Nel caso di servizio computazionale, l’utente può richiedere al fornitore di servizi un insieme di macchine virtuali, sulle quali può installare (o richiedere che venga installato direttamente dal fornitore stesso) i sistemi operativi ed i software necessari a risolvere il suo problema. L’utente può richiedere che le macchine virtuali siano connesse tra di loro da una rete virtuale. Le macchini virtuali sono raggiungibili per la loro gestione ed utilizzo tramite l’interfaccia offerta dal fornitore del servizio. Una volta che le macchine virtuali sono state assegnate all’utente, egli può richiederne delle nuove o rilasciarne alcune, in base alle sue esigenze.

Nel caso di servizio di memorizzazione, invece, l’utente può richiedere uno spazio di memorizzazione per caricarvi i suoi dati e, successivamente, può aumentarlo o ridurlo a seconda delle sue esigenze.

Un esempio di fornitore di servizi IaaS di tipo computazionale è Amazon Elastic Compute Cloud (EC2), che tramite una interfaccia web permette di selezionare una immagine per le proprie macchine virtuali tra quelle disponibili (Amazon Machine Image, AMI) oppure di crearne una personalizzata e di avviarle e gestirle durante la loro esecuzione.

Anche Microsoft fornisce servizi cloud di tipo IaaS, tramite la piattaforma denominata Windows Azure Compute, che consente di eseguire immagini personalizzate di macchine virtuali con sistema operativo Windows Server 2008 R2.

Inoltre, sia Amazon sia Microsoft sono esempi di fornitori di servizi IaaS di memorizzazione. Amazon fornisce il servizio Amazon Simple Storage Service (S3) che permette tramite una semplice interfaccia a web service di memorizzare dati e di accedervi da qualsiasi locazione ed in qualsiasi momento. Microsoft, invece, fornisce i servizi SQL Azure Database e Windows Azure Storage, che implementano un data base scalabile a disponibilità elevata basato sulle tecnologie SQL, ed un servizio di archiviazione protetto, scalabile, facilmente accessibile e duraturo.

PaaS (Platform as a Service): Il modello di servizio Platform as a Service prevede che il fornitore del servizio metta a disposizione dell’utente una interfaccia di programmazione (API) con la quale l’utente può scrivere applicazioni che interagiscono con il servizio. Le specifiche funzionalità offerte dalle API dipendono dal servizio offerto, e la loro esecuzione viene assicurata dal fornitore del servizio. Il fornitore può mettere a disposizione dell’utente anche un ambiente di sviluppo (e di testing) per le applicazioni che sfruttano le sue API.

Un esempio di servizio cloud di tipo PaaS è costituito da Windows Azure Compute, che permette di utilizzare il framework .NET per sviluppare applicazioni. Poiché utilizza IIS7, è anche possibile gestire applicazioni sviluppate utilizzando ASP.NET, Windows Communication Foundation (WCF) o altre tecnologie Web. Inoltre, supporta anche linguaggi quali PHP e Java.

SaaS (Software as a Service): Il modello di servizio Software as a Service prevede che il servizio offerto sia un'applicazione software che può essere utilizzata su richiesta. In questo caso, il fornitore del servizio installa l'applicazione nei propri data center, e fornisce agli utenti una interfaccia per utilizzarla, come ad esempio una interfaccia web. In alcuni casi, i servizi software potrebbero essere implementati dal loro fornitore usando altri servizi cloud a livello inferiore, cioè di tipo PaaS o IaaS.

Un esempio di servizi cloud di tipo software è costituito da Google Apps, che fornisce tramite interfaccia web un insieme di applicazioni per ufficio, come posta elettronica, videoscrittura, foglio di calcolo e calendario.

Gli altri modelli di servizio, genericamente detti XaaS (Anythings as a Service), possono essere: Storage as a service (STaaS), Security as a service (SECaaS), Data as a service (DaaS), Test environment as a service (TEaaS), Desktop as a service (DaaS), Communications as a service (CaaS), Network as a service (NaaS), Monitoring as a service (MaaS), ecc. Vedremo in seguito un elenco dettagliato e descrittivo dei servizi più diffusi.
In particolare il BPaaS (Business Process as a Service) è l’insieme dei servizi esposti secondo le caratteristiche cloud (web, multi-tenancy, pay-per-use, …) necessari a gestire un processo di business con interazioni umane da società esterne al beneficiario (estensione del concetto di BPO – Business Process Outsourcing). Sono solitamente processi comuni a più aziende, dove l’elemento diverso non è il processo bensì è il dato. Per questo motivo i processi produttivi core di una azienda non sono solitamente presenti nell’offerta BPaaS.

Modelli di deployment

I modelli di deployment adottabili per il cloud dipendono da come i data center rendono i servizi accessibili agli utenti finali. Le modalità sono:

Public Cloud: I servizi cloud pubblici sono offerti da fornitori che mettono a disposizione dei propri utenti/clienti la potenza di calcolo e/o di memorizzazione dei loro data center. Il tipo di servizi cloud che vengono offerti dal fornitore (IaaS, PaaS, SaaS) dipende dalla politica del fornitore stesso, così come il prezzo e la tariffazione.

Uno dei maggiori vantaggi del cloud pubblico per il cliente consiste nel fatto che egli può richiedere l'utilizzo dei servizi cloud di cui necessita nel momento in cui effettivamente ne ha bisogno, e solo per il tempo che gli sono necessari. In questo modo, il cliente può ridurre gli investimenti in infrastrutture IT e ottimizzare l'utilizzo delle risorse interne, perché può risolvere i picchi di calcolo periodici o imprevisti richiedendo l'utilizzo di servizi cloud quando essi si verificano.

Un lato negativo, invece, è che il cliente non ha il completo controllo dei suoi dati e dei suoi processi quando essi vengono gestiti dai servizi cloud pubblici. Infatti, tipicamente il fornitore non informa il cliente su dove risiedono le macchine su cui vengono processati e memorizzati i suoi dati, su dove vengono eseguite le sue macchine virtuali, o dove venga eseguito il software che il cliente stesso sta utilizzando. Inoltre, per quanto riguarda la sicurezza dei suoi dati, il cliente non può definire una propria politica di sicurezza, ma deve accettare quella dichiarata dal fornitore, e deve fidarsi del fornitore stesso sull’effettiva applicazione delle misure di sicurezza che ha dichiarato.

In questi ultimi anni c'è stata una notevole crescita nell'offerta di servizi cloud pubblici. Alcuni esempi di cloud pubblici sono Amazon, che fornisce sia servizi di tipo IaaS (Amazon EC2) sia di Storage (Amazon S3), oppure Google App che fornisce servizi software (SaaS), come GMail, Google Docs oppure Google Calendar.

Private Cloud: Un cloud privato viene installato dall'utente nel suo data center per suo utilizzo esclusivo. Il principale vantaggio di un cloud privato è che i servizi vengono forniti da elaboratori che si trovano nel dominio dell'utente, e quindi l'utente ha il pieno controllo delle macchine sulle quali vengono conservati i dati e vengono eseguiti i suoi processi. In particolare, l'utente può applicare su queste macchine le politiche di sicurezza che ritiene più opportune per la protezione dei suoi dati.

In alcuni casi, un cloud privato può essere installato da una grande azienda, o da un ente pubblico, che dispone di uno o più data center propri, per offrire servizi cloud alle varie divisioni dell'azienda stessa. In questo caso la stessa entità agisce sia da fornitore sia da utente dei servizi cloud.

Un altro scenario possibile è invece quello in cui l'utente installa il proprio cloud privato nel data center di un terzo soggetto (tipicamente un fornitore di servizi cloud), in cui dispone di macchine dedicate. In questo caso, l'utente ha il controllo delle macchine anche se non risiedono nel suo dominio, e quindi può configurarle secondo le proprie necessità.

Per installare un cloud privato, sono attualmente disponibili diversi strumenti software, come ad esempio Eucalyptus, OpenNebula o Apache CloudStack.

Community Cloud: Nel Community cloud l’infrastruttura su cui sono installati i servizi cloud è condivisa da un insieme di soggetti, aziende, organizzazioni, ecc, che condividono uno scopo comune e che hanno le stesse esigenze, come ad esempio potrebbero essere i vari soggetti della pubblica amministrazione. L’infrastruttura può essere gestita dalla comunità stessa, oppure da un fornitore di servizi esterno.

Hybrid Cloud: Il cloud Ibrido è una combinazione del modello pubblico e di quello privato, ovvero è un modello in cui l'utente utilizza risorse sia del suo cloud privato sia di un cloud pubblico. Il cloud Ibrido può essere utilizzato con successo in vari casi.

Ad esempio, un utente che dispone di un cloud privato, può utilizzare le risorse di un cloud pubblico per gestire improvvisi picchi di lavoro che non possono essere soddisfatti facendo ricorso unicamente alle risorse disponibili nel cloud privato. Questa soluzione è facilmente implementabile quando il cloud privato è installato nello stesso data center del fornitore di servizi cloud Pubblici.

Un altro scenario possibile, invece, è quello in cui l'utente utilizza il suo cloud privato per portare a termine determinati task, ed utilizza uno o più cloud Pubblici per eseguirne altri. In questo scenario si pone il problema per l'utente di scegliere quali task eseguire nel cloud privato e quali nel cloud pubblico. Ad esempio, l'utente eseguirà nel cloud privato i task che coinvolgono dati che sono confidenziali, e nel cloud pubblico gli altri task.

Dal punto di vista dell'efficienza, invece, una caratteristica che potrebbe essere presa in considerazione dall'utente per scegliere su quali cloud eseguire le proprie applicazioni è il rapporto tra quantità di dati e tempo di computazione. Infatti, trasferire una grande quantità di dati su un cloud pubblico risulta conveniente solo quando deve essere eseguito un task che richiede un elevato tempo di computazione.

Etichette: , , , ,

0 Commenti:

Posta un commento

Iscriviti a Commenti sul post [Atom]

<< Home page