• Non ci sono risultati.

Il cloud computing

Nel documento Università Politecnica delle Marche (pagine 55-58)

Progettazione del sistema

3.2 Progettazione dell’infrastruttura cloud

3.2.1 Il cloud computing

ŞCloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of conĄgurable computing resources (e.g., networks, servers, storage, applications, and services) that can be ra-pidly provisioned and released with minimal management effort or service provider interaction.Ť

E cos‘ı che il NIST (National Institute of Standards and Technology) nel 2011 deĄn‘ı‘ il cloud computing.

Partendo dalla deĄnizione del NIST, deĄniamo Cloud Computing la tecnologia che fornisce agli utenti un innovativo sistema di gestione, archiviazione e condi-visione delle risorse IT attraverso un approccio on-demand, con prezzi basati sul consumo, sfruttando la rete Internet. La tecnologia in questione viene identiĄcata come general purpose (vale a dire, applicabile a qualsiasi settore) e consente di so-stituire hardware e software con una connessione online ad un data center remoto, creando enormi risparmi sui costi e nuove potenzialit‘a per lŠICT in organizzazioni di ogni tipo e forma. A livello pratico, grazie alla tecnologia del cloud computing, piuttosto che acquistare, possedere e/o mantenere i data center e i server Ąsici, ‘e possibile affidarsi ad un cloud provider (come, ad esempio, Amazon Web Service, Microsoft Azure o Google Cloud Platform) per accedere a determinati servizi tec-nologici, quali capacit‘a di calcolo, archiviazione e database, sulla base delle proprie necessit‘a.

Analizzando quali sono gli utenti Ąnali che sfruttano questo tipo di tecnologia, possiamo individuare organizzazioni di ogni tipo, dimensione e settore; infatti, gli utilizzi sono rivolti ad una vastissima gamma di casi dŠuso, ovvero backup dei dati, disaster recovery, e-mail, desktop virtuali, sviluppo e test di software, analisi di dati e applicazioni Web destinate ai clienti. Fra le inĄnite applicazioni pratiche che oggi sfruttano il cloud computing troviamo, ad esempio, aziende sanitarie (che lo utilizzano per sviluppare trattamenti personalizzati per i propri pazienti), aziende per i servizi Ąnanziari (che lo utilizzano come base dei propri sistemi di rilevamento e prevenzione di attivit‘a fraudolente) e persino aziende del mondo del gaming (che utilizzano questa tecnologia per lo sviluppo di videogiochi online destinati a milioni di giocatori in tutto il mondo).

Generalmente, la tecnologia del cloud computing viene decritta attraverso le cinque seguenti caratteristiche fondamentali:

• Self-service su richiesta: un utente pu‘o fare il provisioning delle risorse ed ac-quisire servizi cloud in modo unilaterale e automatico, senza che sia richiesto nessun intervento umano da parte del fornitore del servizio.

• Ampio accesso alla rete: la caratteristica del cloud ‘e che lavora su Internet (in particolare, attraverso il protocollo TCP/IP), per cui sia provider che cliente devono avere una banda molto ampia per permettere lo scambio costante di in-formazioni. Questa connessione deve avvenire sulla base di meccanismi standard (come web service e SSH) e deve promuovere lŠuso di client eterogenei, cio‘e di client thin o thick.

• Pooling di risorse: le risorse informatiche del provider vengono raggruppate in modo da servire pi‘u client utilizzando un modello Şmulti-tenantŤ, che prevede diverse risorse Ąsiche e virtuali assegnate e riassegnate dinamicamente in base alle richieste ricevute. Vi ‘e un senso di indipendenza dalla posizione in quanto lŠutente, generalmente, non ha alcun controllo o conoscenza sulla posizione esatta delle risorse ma pu‘o essere in grado di speciĄcare la posizione ad un livello di astrazione superiore (come, ad esempio, a livello di paese, stato o data-center).

• Rapida elasticit‘a: questa caratteristica si riferisce alla possibilit‘a di scalare rapi-damente le capacit‘a di calcolo richieste dal cliente, sia aumentandole che dimi-nuendole, in base alla domanda. LŠelasticit‘a pu‘o avvenire in maniera automatica (load balancing, cio‘e appena il sistema si accorge che lŠutente necessit‘a di pi‘u risorse allora il provider ne assegner‘a di pi‘u), oppure in maniera non automa-tica (ovvero, appena lŠutente fa richiesta gli vengono assegnate). In Figura 3.4 viene mostrata una rappresentazione del concetto di elasticit‘a appena deĄnito;

in particolare, attraverso lŠillustrazione, ‘e possibile comprendere le potenzialit‘a del cloud computing rispetto ad un sistema che non lo utilizza.

Figura 3.4. Confronto dellŠelasticit‘a fra un data center Ąsico ed uno che sfrutta il cloud computing

• Servizio misurato: i sistemi di cloud computing controllano ed ottimizzano au-tomaticamente lŠutilizzo delle risorse sfruttando misurazioni adeguate al tipo di servizio fruito (come, ad esempio, archiviazione, elaborazione, larghezza di ban-da e tempo di utilizzo). La quantiĄcazione del servizio, oltre al pagamento, ‘e indispensabile anche per avere una misura delle sue prestazioni (per avere, ad esempio, una misura della reliability e della velocit‘a). A tal proposito, lŠutilizzo delle risorse cloud pu‘o essere monitorato, controllato e segnalato, garantendo tra-sparenza sia per il fornitore che per lŠutente. Per fare misurazioni, chiaramente, abbiamo bisogno di determinati standard di misura.

Il cloud computing, come abbiamo spiegato, offre diversi livelli di servizi agli utenti; questi si possono distinguere in 3 grandi categorie chiamate modelli:

• Infrastructure as a service (IaaS): grazie a questo modello lŠutente fa il provi-sioning di storage, calcolo, potenza, reti ed altre fondamentali risorse in cui ‘e in grado di distribuire ed eseguire software, che pu‘o includere sistemi operativi ed applicazioni. Questo modello, oltre ad offrire il pi‘u elevato livello di Ćessibilit‘a, concede allŠutente un controllo sui sistemi operativi, sullo storage, sulle applica-zioni distribuite e su determinati componenti di rete; lŠutente, per‘o, non ha la possibilit‘a di controllare lŠinfrastruttura cloud sottostante. Un classico esempio di IaaS ‘e il servizio cloud di IBM denominato ŞCloud Object StorageŤ.

• Platform as a Service (PaaS): questo modello rappresenta lo strato intermedio di astrazione. In questo caso allŠutente ‘e concesso distribuire applicazioni create o acquistate che utilizzano linguaggi di programmazione, librerie e strumenti supportati dal provider. LŠutente non gestisce o controlla lŠinfrastruttura cloud sottostante (che include lo storage, i server, le reti ed i sistemi operativi) ma possiede il controllo sulle applicazioni distribuite e sulle possibilit‘a di conĄgu-razione per lŠambiente che le ospita. Un esempio di PaaS ‘e il servizio di Google denominato ŞGoogle App EngineŤ.

• Software as a Service (SaaS): questo modello delinea lo strato di astrazione pi‘u alto del servizio cloud. Il consumatore, in questo caso, utilizza applicazioni che vengono eseguite su unŠinfrastruttura cloud. Le applicazioni sono accessibili da diversi client attraverso una cosiddetta thin client interface (come, ad esempio, un browser web o lŠinterfaccia graĄca di un programma). LŠutente non gestisce o controlla n´e lŠinfrastruttura cloud sottostante n´e le singole applicazioni (con la possibile eccezione di alcune conĄgurazioni speciĄche). Un esempio di SaaS ‘e il famoso ŞGoogle DocsŤ della G-Suite.

In Figura 3.5 ‘e possibile visualizzare un confronto fra i 3 modelli appena intro-dotti (IaaS, PaaS e SaaS) e il modello di una macchina IT tradizionale; lŠimmagine mostra i vari livelli di astrazione (cio‘e di gestione) delle risorse, per ognuno dei tre modelli, che sono stati ampiamente discussi in precedenza.

Figura 3.5.Confronto fra un modello che non utilizza il cloud computing ed i tre modelli di cloud computing (IaaS, PaaS, SaaS)

Nel documento Università Politecnica delle Marche (pagine 55-58)