Componenti principali del cloud

Completato

Il cloud computing offre l'uso di risorse informatiche come servizio in rete. Prima di illustrare i modelli di servizio offerti in un cloud, è necessario considerare i diversi livelli di hardware e software necessari per la creazione di servizi cloud. Naturalmente, non tutti i requisiti per i servizi sono identici. Alcuni utenti del cloud potrebbero avere semplicemente bisogno di accedere a un'infrastruttura di base per lo sviluppo di applicazioni. È possibile che altri utenti non vogliano occuparsi affatto dell'infrastruttura, ma piuttosto semplicemente sviluppare e distribuire applicazioni con una piattaforma facile da usare. Per soddisfare questi requisiti diversi, i provider di servizi cloud dividono le proprie offerte in vari livelli astratti.

Componenti principali del cloud

In questa unità viene illustrata un'astrazione su più livelli del cloud attraverso la presentazione dei componenti principali tipici e viene discussa l'associazione di tali componenti con tre modelli di servizio nel cloud computing. Verranno presentati quattro componenti principali del cloud computing: software applicativo, piattaforme di sviluppo, condivisione delle risorse e infrastruttura, come illustrato nella figura 7. L'infrastruttura include le risorse fisiche presenti in una data center. Il livello di condivisione delle risorse implica in genere tecniche software e hardware che consentono la condivisione delle risorse fisiche offrendo un certo livello di isolamento. Le piattaforme di sviluppo vengono utilizzate per sviluppare applicazioni cloud.

Cloud computing building blocks.

Figura 7: Blocchi predefiniti del cloud computing

Software dell'applicazione: il livello superiore nello stack è il software dell'applicazione, che in genere è il componente di sistema utilizzato dall'utente finale.

Piattaforme di sviluppo: il livello successivo, le piattaforme di sviluppo, consente agli sviluppatori di applicazioni di scrivere software applicativo in termini di API (Application Programming Interface) di un cloud. Le piattaforme di sviluppo forniscono in genere specifiche che gli sviluppatori possono usare per routine, strutture di dati, classi di oggetti, librerie e variabili.

Condivisione delle risorse: meccanismi di condivisione delle risorse, il terzo livello, incorporano alcune idee chiave sul cloud:

  • Offrire servizi software, di calcolo, di rete e di archiviazione.
  • Consentire un ambiente condiviso in cui più immagini hardware (ad esempio, macchine virtuali) e immagini di sistema (ad esempio, sistemi operativi per utilizzo generico) possono essere eseguite affiancate in una singola infrastruttura insieme agli isolamenti di sicurezza, risorse ed errori. Queste proprietà di isolamento sono fornite tramite una combinazione di tecniche hardware e software descritte in seguito.
  • Consolidare i server fisici in server virtuali eseguiti in un minor numero di server fisici.
  • Offrire flessibilità ed elasticità per rispondere rapidamente alle richieste di risorse e servizi degli utenti.

Queste idee vengono in genere concretizzate tramite la virtualizzazione, una tecnologia discussa in un modulo successivo.

Infrastruttura: le risorse fisiche costituiscono il livello inferiore e, nel cloud computing, vengono distribuite principalmente sul lato del provider di servizi cloud. Di seguito sono riportate le classi di risorse generali:

  • Risorse di calcolo, in genere server, ovvero computer progettati per l'elaborazione aziendale (in contrapposizione alle workstation utente). In genere sono montate su rack per usare lo spazio in modo efficiente.
  • Risorse di archiviazione che gestiscono i dati del cloud. L'archiviazione delle applicazioni viene in genere addebitata in termini di utilizzo della capacità (ad esempio, per gigabyte o terabyte).
  • Le risorse di rete che consentono la comunicazione tra server, nonché tra server e client.
  • Software che gestisce l'infrastruttura di calcolo, rete e archiviazione.

In seguito si vedrà quale di queste astrazioni può essere fornita come servizio a noleggio in una rete. Ad esempio, i servizi e le risorse richiesti da uno sviluppatore di software saranno diversi rispetto a quelli di un utente che vuole avere accesso a un'applicazione di posta elettronica Web in esecuzione nel cloud.

Servizi di cloud computing

In generale, i servizi cloud variano in base alle esigenze di utenti diversi. Questa sezione esamina tre tipi di servizi cloud diffusi:

  • Software come servizio (SaaS)
  • Piattaforma distribuita come servizio (PaaS)
  • Infrastruttura distribuita come servizio (IaaS)

Il termine SaaS si riferisce a qualsiasi applicazione in cui l'utente finale ha accesso a un'applicazione software in rete e paga in base a un'ampia gamma di modelli aziendali, alcuni dei quali gratuiti. PaaS è l'offerta di piattaforme di sviluppo software come servizio, che vengono utilizzate per lo sviluppo di applicazioni SaaS. Infine, IaaS è il noleggio di un'infrastruttura virtualizzata in rete. In quest'ultimo modello, l'utente finale ha la flessibilità necessaria per installare e usare il software preferito nell'infrastruttura a noleggio.

Il video seguente esamina questi servizi:

Modello SaaS

Software as a Service (SaaS)

(definizione) SaaS (Software as a Service) è un modello di distribuzione del software in cui il software e i dati associati sono ospitati in un cloud. Gli utenti accedono in genere alle applicazioni SaaS usando un thin client tramite un Web browser.

SaaS è uno dei modelli di servizi cloud più comuni in cui il provider di servizi cloud fornisce software come servizio Internet. Il video seguente descrive questo scenario. Gli utenti SaaS usano semplicemente i browser per accedere al software, eliminando così la necessità di installare, eseguire e gestire (aggiornare, applicare patch, riconfigurare e così via) l'applicazione nei propri computer. Il Web browser carica il servizio dell'applicazione SaaS in modo dinamico e trasparente.

SaaS è diventato un modello di distribuzione software comune per molte applicazioni aziendali, tra cui quelle per la gestione di contabilità, collaborazione, sistemi CRM (Customer Relationship Management), sistemi MIS (Management Information Systems), ERP (Enterprise Resource Planning), fatturazione, risorse umane, contenuti e Service Desk.

Con SaaS il provider gestisce il software e l'infrastruttura richiesta per l'esecuzione. Il provider sviluppa periodicamente il software e i miglioramenti vengono resi automaticamente disponibili al successivo accesso al servizio da parte degli utenti. Inoltre, tutti i dati applicativi risultanti dall'uso del servizio risiedono nel cloud e sono disponibili per gli utenti da qualsiasi posizione.

Caratteristiche di SaaS

La stragrande maggioranza delle soluzioni SaaS è basata su ciò che viene definito architettura multi-tenant. In questa architettura viene usata una singola versione dell'applicazione, con una singola configurazione, per ogni cliente (denominato tenant). Per supportare adeguatamente la scalabilità, è possibile che il servizio venga installato su diversi server sul lato del provider. Viene usata la scalabilità dinamica per consentire a più utenti di usare il servizio man mano che aumenta la sua popolarità.

Le caratteristiche tipiche di SaaS includono:

  • Accesso al servizio software basato sul Web.
  • Il software viene gestito da una posizione centrale dal provider di servizi cloud.
  • Il software viene offerto come modello uno-a-molti in cui "uno" è il provider di servizi cloud e "molti" sono gli utenti del cloud.
  • Il provider di servizi cloud gestisce gli aggiornamenti e le patch del software.

Modelli di determinazione dei prezzi per SaaS

A differenza del software tradizionale, venduto in base al modello con licenza software (con un costo iniziale per la licenza e un'eventuale tariffa per il supporto continuativo), i provider SaaS applicano in genere una quota di sottoscrizione mensile o annuale per le applicazioni. Questo modello consente a SaaS di offrire uno dei vantaggi principali del cloud computing, ovvero la riduzione delle spese in conto capitale o il costo iniziale del software. I provider SaaS in genere addebitano i costi in base a parametri di utilizzo, ad esempio il numero di utenti che usano l'applicazione.

Casi d'uso per SaaS

SaaS è un modello adatto a determinati tipi di applicazioni, ad esempio:

  • Applicazioni piuttosto standardizzate che non richiedono soluzioni personalizzate. La posta elettronica è un valido esempio di applicazione relativamente standardizzata.
  • Applicazioni per cui l'accesso remoto, sul Web o dai dispositivi mobili è essenziale, ad esempio il software di gestione delle vendite per dispositivi mobili.
  • Applicazioni con esigenze a breve termine, ad esempio il software collaborativo per un particolare progetto.
  • Applicazioni in cui la domanda ha dei picchi significativi, ad esempio il software che si usa una volta al mese per la fatturazione o il calcolo delle imposte.

Esistono tuttavia situazioni in cui SaaS può non essere la scelta migliore, ad esempio:

  • Applicazioni che richiedono l'accesso offline ai dati.
  • Applicazioni che richiedono una personalizzazione significativa.
  • Applicazioni in cui i criteri o le normative non consentono l'hosting esterno dei dati.
  • Applicazioni in cui le soluzioni interne esistenti soddisfano tutte le esigenze dell'organizzazione.

Esempi per SaaS

La posta elettronica Web è uno dei primi esempi di SaaS. Consente agli utenti con un browser e una connessione Internet di accedere ai propri messaggi di posta elettronica ovunque e in qualsiasi momento. Le offerte come Outlook, Yahoo Mail e Gmail sono molto diffuse. Alcuni di questi servizi sono basati sul modello "freemium", in cui i servizi di base sono gratuiti mentre le funzionalità più avanzate sono disponibili in abbonamento. Inoltre, i provider guadagnano principalmente grazie agli annunci pubblicitari visualizzati agli utenti durante l'uso del servizio.

Un altro esempio comune di SaaS sono le suite di programmi per ufficio online come Microsoft 365, che consentono agli utenti di creare, modificare e condividere documenti online.

Modello PaaS

Piattaforma distribuita come servizio (PaaS)

(definizione) PaaS (Platform as a Service) è una piattaforma informatica che consente la creazione di applicazioni Web in modo semplificato senza le complicazioni dell'acquisto e della gestione del software e dell'infrastruttura sottostanti.

Le offerte basate su PaaS consentono agli utenti di sviluppare, distribuire e ridimensionare le applicazioni sulle piattaforme offerte dai provider di servizi cloud. Il modello PaaS è analogo a SaaS, fatta eccezione per il fatto non si tratta di software distribuito sul Web ma di una piattaforma per la creazione di software distribuito sul Web.

Caratteristiche di PaaS

Le offerte di PaaS variano tra i provider, ma in genere presentano alcune funzionalità di base, tra cui:

  • Servizi per sviluppare, testare, distribuire, ospitare e gestire applicazioni nello stesso ambiente di sviluppo integrato (IDE).
  • Strumenti per la creazione dell'interfaccia utente basati sul Web per semplificare la creazione, la modifica e il test di vari scenari di interfaccia utente.
  • Architettura multi-tenant in cui più utenti usano simultaneamente gli stessi strumenti di sviluppo.
  • Meccanismi di ridimensionamento incorporati del software distribuito che possono essere gestiti automaticamente dal provider di servizi cloud con meccanismi di bilanciamento del carico e failover.

Modelli di determinazione dei prezzi per PaaS

A differenza del modello di determinazione dei prezzi per SaaS (basato su abbonamento o annunci pubblicitari), i prezzi per il modello PaaS vengono in genere determinati in termini di utilizzo della piattaforma. Ad esempio, il modello di prezzi di Funzioni di Azure prevede l'addebito in base al numero totale di esecuzioni e al tempo di esecuzione. Di conseguenza, maggiore è l'utilizzo di un'applicazione sviluppata con PaaS, maggiore sarà l'addebito per lo sviluppatore che usa PaaS.

Casi d'uso per PaaS

PaaS è un modello adatto a determinati tipi di applicazioni, ad esempio:

  • Scenari con sviluppo rapido di applicazioni.
  • Applicazioni che richiedono un'infrastruttura basata sul Web per gestire carichi variabili degli utenti.
  • Applicazioni che possono non richiedere la ridistribuzione o la migrazione ad altre piattaforme in futuro.

Esistono alcuni scenari in cui PaaS può non essere la scelta ideale, ad esempio:

  • Quando l'applicazione deve essere estremamente portabile in termini di hosting perché le API PaaS possono variare da un provider PaaS a un altro.
  • Quando le API o i linguaggi proprietari possono influire sul processo di sviluppo o causare problemi in futuro a causa di un blocco del fornitore.
  • Quando le prestazioni dell'applicazione richiedono la personalizzazione dell'hardware e del software sottostanti.

Esempi per PaaS

Funzioni di Azure è un esempio di una soluzione PaaS. Con Funzioni di Azure gli sviluppatori possono eseguire piccole parti di codice nell'infrastruttura di Azure senza doversi preoccupare della gestione.

Modello IaaS

Infrastruttura distribuita come servizio (IaaS)

(definizione) IaaS (Infrastructure as a Service) è un modello di cloud computing in cui i provider di servizi cloud rendono disponibili le risorse informatiche per i clienti, in genere sotto forma di istanze o di macchine virtuali.

Nel modello IaaS i provider noleggiano le risorse di calcolo sotto forma di istanze o macchine virtuali, a cui è collegata una qualche forma di CPU, memoria, disco e larghezza di banda configurabile. Dopo il provisioning, gli utenti IaaS possono connettersi in remoto a queste istanze e configurare le piattaforme e le applicazioni prescelte. Questo modello offre la massima flessibilità per gli utenti di IaaS in termini di sviluppo e distribuzione del software. Anziché acquistare server, software, spazio in data center o apparecchiature di rete, gli utenti noleggiano queste risorse come servizio completamente esternalizzato su richiesta.

Caratteristiche di IaaS

IaaS presenta le caratteristiche seguenti:

  • Le risorse informatiche vengono offerte agli utenti di IaaS come servizio.
  • I provider IaaS forniscono strumenti che consentono agli utenti di IaaS di configurare la scalabilità dinamica delle risorse.
  • I provider IaaS di solito offrono risorse diverse a prezzi diversi e seguono un modello di determinazione dei prezzi basato sull'utenza (in genere calcolato per ora).
  • Le stesse risorse fisiche sono condivise tra più utenti.

Modelli di determinazione dei prezzi per IaaS

A differenza del modello di determinazione prezzi SaaS (ovvero un modello basato su abbonamento o annunci pubblicitari) o il modello PaaS (con tariffe basate in genere sul numero di transazioni o la quantità di larghezza di banda o di spazio archiviazione usata), gli addebiti per IaaS sono in genere su base oraria, per ogni istanza. Ad esempio, Macchine virtuali di Azure offre una gamma di risorse di calcolo come istanze virtualizzate del sistema operativo, che variano in termini di calcolo, memoria, archiviazione e larghezza di banda.

I provider di servizi cloud possono anche scegliere se l'addebito deve essere applicato in modo proporzionale o meno. Se l'addebito viene applicato in modo proporzionale, ogni ora parziale viene addebitata parzialmente, in caso contrario ogni ora parziale viene addebitata come ora completa. Questa differenza diventa significativa quando gli utenti IaaS necessitano di un numero elevato di istanze per un breve periodo di tempo per gestire i picchi.

Casi d'uso per IaaS

IaaS è consigliabile in alcune situazioni:

  • Quando la richiesta di risorse informatiche è volatile. Ad esempio, i siti di e-commerce hanno picchi di domanda durante i periodi festivi.
  • Per le nuove organizzazioni che non hanno il capitale da investire nell'infrastruttura presso la sede.
  • Quando le organizzazioni devono ampliare velocemente le risorse IT, ad esempio le startup Internet.
  • Per progetti temporanei o esigenze temporanee dell'infrastruttura (quando le organizzazioni necessitano di una grande quantità di potenza di calcolo per un periodo di tempo limitato).

IaaS può non essere la scelta migliore se:

  • Non sono consentiti l'offshoring o l'esternalizzazione dei dati per conformità alle normative.
  • Le applicazioni presentano requisiti rigidi in termini di qualità del servizio (QoS).
  • Le organizzazioni hanno un'infrastruttura interna personalizzata in modo da soddisfare le esigenze in termini di IT.

Esempi per IaaS

Tutti i principali provider di servizi cloud offrono prodotti IaaS. Le macchine virtuali di Azure noleggiano istanze da diverse località dei data center sparse in tutto il mondo. Gli utenti possono scegliere tra vari tipi di istanza, da un'istanza con singola CPU e poca memoria (che costa alcuni centesimi all'ora), fino a istanze multicore, a prestazioni elevate e con accelerazione GPU, che possono costare fino a svariati euro all'ora.

Verificare le conoscenze

1.

Quale delle affermazioni seguenti su SaaS è vera?

2.

Una società sta creando nuovi algoritmi per un software di riconoscimento dei volti accurato. La società è interessata a passare al cloud per le proprie esigenze di sviluppo di applicazioni. SaaS è il modello appropriato per questo particolare progetto?

3.

Servizio app di Azure è un esempio di PaaS. Presupponendo che sia stata letta la sezione su PaaS, quale delle affermazioni seguenti sul servizio app non è corretta?

4.

Quale delle seguenti è considerata una caratteristica di IaaS?