Abbiamo visto che un sistema distribuito non è altro che una collezione di macchine indipendenti che possono cooperare al raggiungimento di un obiettivo comune ed appare all’utente come un unico sistema coerente. I vantaggi sono diversi, ovvero la tolleranza ai guasti, la trasparenza, la scalabilità, ecc…

Cos’è, invece, il cloud computing? In questo caso faccio riferimento ad un modello di erogazione di servizi informatici tramite la rete. L’obiettivo è dare la possibilità agli utenti di sfruttare le risorse computazionali potenziate e pagare solo per le risorse effettivamente utilizzate. Di conseguenza il cloud computing può inglobare un sistema distribuito.

Cosa si intende con Cloud Computing

Il termine cloud nasce dalla nuvoletta usata per rappresentare internet. Noi utenti, in realtà, non abbiamo idea di come sia costituita la nuvoletta, ma sappiamo come si utilizza (come il concetto di trasparenza dei sistemi distribuiti). I sistemi di cloud computing estendono le funzionalità di internet, offrendo tutte le operazioni eseguibili su un PC.

nuvoletta cloud

Nuvoletta Cloud

Il cloud computing è un modello di elaborazione per permettere l’accesso ad un sistema di risorse computazionali configurabili (CPU, memorie, compilatori, DBMS, applicazioni e altro ancora). L’utente non deve conoscere l’infrastruttura tecnologica, ne deve configurare le risorse, semplicemente, le accede mediante un’interfaccia.

Nel caso di più utenti, si ha un server di bilanciamento del carico altrimenti potrebbe succedere che alcuni nodi siano sovraccaricati di richieste e altri rimangono inattivi. Infatti, se le persone aumentano o diminuiscono, il cloud può aggiungere o rimuovere dinamicamente alcune delle macchine (si può specificare un numero minimo o massimo di macchine richieste). Questo è dovuto al fatto che il Cloud Computing è un modello di elaborazione in cui le risorse sono:

  • scalabili dinamicamente, ad esempio se il tuo sito web riceve improvvisamente molti visitatori, puoi aumentare le risorse per gestire il traffico extra;
  • virtualizzate, ovvero le usi solo quando ti servono senza doverle mantenere fisicamente e sono disponibili su internet.

Le sue caratteristiche principali sono:

On-demand self-service Puoi accedere e gestire le risorse del cloud autonomamente, senza dover interagire direttamente con il personale del servizio.
Broad network access Puoi accedere alle risorse tramite la rete da qualsiasi tipo di dispositivo (computer, smartphone, tablet).
Resource pooling Puoi accedere al servizio come se fosse un sistema dedicato, infatti la stessa infrastruttura fisica può servire molti clienti.
Rapid elasticity Le risorse possono essere scalate rapidamente e in alcuni casi automaticamente, per rispondere immediatamente alle tue esigenze.
Measured Service Il cloud monitora l’utilizzo delle risorse permettendoti di pagare esattamente per quello che usi.

Qual è la differenza tra cloud e grid computing?

I sistemi di grid computing non fanno uso della virtualizzazione, infatti il loro obiettivo è semplicemente quello di aggregare le risorse di uno o più proprietari. Inoltre, ogni organizzazione mantiene il controllo delle risorse rendendo più difficile la loro gestione.

Sia cloud che grid computing hanno come obiettivo comune quello di aggregare risorse eterogenee, ma differiscono:

  • per il modello di programmazione (nel cloud computing sono nascosti molti dettagli tecnici);
  • per il modello di business (condivisione delle risorse anziché cessione a pagamento);
  • classi di applicazione (le grid vengono utilizzate in ambito prevalentemente scientifico);
  • modalità di utilizzo.

Classi di sistemi cloud

Esistono diversi modelli di cloud computing:

  • public cloud: è utilizzabile (dietro pagamento) da qualsiasi utente. I servizi sono gestiti da un provider esterno e sono accessibili a chiunque su Internet. La preoccupazione per alcune organizzazioni in questo caso è legato alla privacy e alla sicurezza in quanto i dati vengono archiviati con quelli di altri clienti;
  • private cloud, di proprietà di un’unica azienda, aggrega le risorse di calcolo che ha a disposizione. Le risorse non sono condivise con altri utenti. Ottima soluzione per chi vuole prestazioni più elevate;
  • community cloud: infrastruttura condivisa da una comunità di utenti (per esempio unendo più private cloud). Ad esempio un cloud condiviso da diverse istituzioni governative o banche, che hanno requisiti simili in termini di sicurezza e gestione dei dati;
  • hybrid cloud: composizione di più tipologie di cloud, ad esempio collegando un proprio cloud privato con un cloud pubblico. Non tutti i cloud pubblici permettono di realizzare un cloud ibrido, è necessaria l’interoperabilità tra i cloud che si intendono connettere. In questo caso sono fondamentali gli standard aperti e le API.

Modelli di servizi cloud

I sistemi di cloud computing possono essere classificati in base al tipo di servizi offerti, come Iaas, Paas, Saas.

Infrastracture as a Service (IaaS)

È una forma di cloud computing che mette a disposizione degli utenti risorse fondamentali di calcolo, rete e storage, on-demand, tramite internet e con modalità di pagamento PAYG (pay as you go, ossia pagamento a consumo).

Una soluzione Iaas consente agli utenti finali di aumentare e ridurre le risorse in base alle necessità, con una minore esigenza di elevate spese anticipate o di detenere la proprietà di un’infrastruttura non necessaria.

Normalmente i clienti Iaas possono scegliere tra macchine virtuali in hosting su hardware fisico condiviso o su hardware fisico dedicato. I clienti possono eseguire il provisioning (ovvero tutte le attività necessarie per equipaggiare un sistema di rete o un servizio), la configurazione e la gestione di server e risorse dell’infrastruttura tramite una dashboard grafica, oppure, in modo programmatico, tramite le API.

Tra gli altri vantaggi, vi sono:

  • Maggiore disponibilità: un’azienda può creare facilmente server ridondanti e crearli addirittura in altre aree geografiche, per garantire la disponibilità durante le interruzioni della fornitura di energia elettrica o eventi fisici disastrosi a livello locale;
  • Latenza più bassa, prestazioni migliorate: dal momento che i provider Iaas normalmente gestiscono data center in molteplici aree geografiche, i clienti Iaas possono collocare applicazioni e servizi più vicino agli utenti per ridurre al minimo la latenza e massimizzare le prestazioni (come una classica CDN);
  • Sicurezza completa: nei data center e mediante la crittografia, le organizzazioni possono spesso usufruire di sicurezza e protezione più avanzate rispetto a quello che potrebbero fornire se ospitassero l’infrastruttura cloud nella loro sede.

Utilizzare un cloud a livello IaaS vuol dire conoscere dettagli hardware e software di base che vengono messi a disposizione. Un esempio di IaaS è Amazon (AWS) che permette agli utenti di vedere le caratteristiche e i dettagli del sistema.

Platform as a Service (PaaS)

Platform as a Service (PaaS) è un modello di servizio cloud che fornisce un ambiente completo per lo sviluppo, il test, il deployment e la gestione delle applicazioni su internet, senza dover preoccuparsi dell’infrastruttura sottostante.

Quindi, fa riferimento a Paas una piattaforma su cui l’utente può sviluppare, eseguire e gestire applicazioni senza dover creare l’infrastruttura o la piattaforma normalmente associate a tali processi. Solitamente viene usato da programmatori o progettisti, interagendo mediante browser o app.

Tra le caratteristiche principali:

  • Un ambiente di sviluppo completo che include strumenti per la scrittura, il test e il debugging del codice;
  • PaaS semplifica il processo di deployment fornendo strumenti e servizi per caricare e distribuire l’applicazione su un ambiente di produzione;
  • Non dovrai gestire l’infrastruttura sottostante (gestione dei server, bilanciamento del carico e scalabilità), in quanto questa viene gestita automaticamente.

Anche PaaS generalmente adotta un modello di pagamento su utilizzo, dove gli utenti pagano solo per le risorse e i servizi che utilizzano, senza dover investire in hardware o licenze software.

Software as a Service (SaaS)

È un modello di distribuzione di un software. In questo modo non c’è l’esigenza di acquistare delle licenze, ne sono un esempio Gmail e Dropbox.

Il software non è installato localmente (quindi non dovrai installare aggiornamenti e la sua velocità dipenderà tanto dalla tua connessione), ma viene messo a disposizione dei clienti tramite una connessione internet (previo eventuale abbonamento), pagando per l’utilizzo del software, non per il suo possesso.

Può essere definito come un insieme di mezzi, servizi e competenze che consente alle aziende di esternalizzare alcuni aspetti del loro sistema informatico.

Provider di cloud computing

I vari fornitori possono utilizzare modelli differenti per implementare classi differenti. In base alle tue esigenze puoi trovare sia delle soluzioni open-source, come:

  • Eucalyptus;
  • Red Hat Cloud;
  • OpenNebula;
  • Enomaly;
  • Zoho;
  • OpenStack;

sia commerciali come queste:

Se hai in mente di realizzare un tuo cloud privato, sappi che non è un processo facile e che nella maggior parte dei casi conviene affidarsi a dei servizi già esistenti. In ogni caso inizia con l’analisi delle tue esigenze.


0 commenti

Lascia un commento

Segnaposto per l'avatar