Vai al contenuto

Conoscere il Cloud computing

Nella sua forma più basilare, il cloud computing si riferisce all’uso on demand di risorse da parte di un cliente attraverso la rete Internet. Il cloud computing come idea racchiude una vasta gamma di servizi aziendali e di consumo.  Le risorse non vengono pienamente configurate e messe in opera dal fornitore appositamente per l’utente, ma gli sono assegnate, rapidamente e convenientemente, grazie a procedure automatizzate, a partire da un insieme di risorse condivise con altri utenti lasciando all’utente parte dell’onere della configurazione. Quando l’utente rilascia la risorsa, essa viene similmente riconfigurata nello stato iniziale e rimessa a disposizione nel pool condiviso delle risorse, con altrettanta velocità ed economia per il fornitore.

L’interazione con un servizio cloud viene generalmente eseguita tramite un browser Web o tramite riga di comando. Di solito non c’è alcun software da installare, nessun hardware da configurare e nessun centro dati da cui affittare lo spazio.

Google e Amazon sono stati i primi al mondo a fornire servizi di cloud computing, presto seguiti da Microsoft. Il portfolio di prodotti offerti dalle aziende cloud è maturato e si è evoluto nel tempo, così come la concorrenza. Aziende come IBM e Rackspace, tra le altre, si sono unite alla mischia. Il mondo del cloud computing include ora una miriade di aziende che offrono i servizi di qualsiasi tipo. Questo articolo si concentrerà su Google, Amazon e Microsoft poiché punto di riferimento di milioni di sviluppatori.

IaaS, PaaS, Saas

Il cloud computing può essere suddiviso in tre categorie principali: IaaS, PaaS e SaaS.

IaaS (Infrastructure as a Service)

L’infrastruttura come servizio è ciò che le persone solitamente pensano quando si parla di cloud computing. Il provider offre un hardware virtuale (CPU, RAM, spazio e schede di rete) e quindi la flessibilità di un’infrastruttura fisica, senza l’onere per l’utente, della gestione fisica dell’hardware. Questa tipologia è dedicata agli amministratori di sistema o sistemisti, i quali non gestiscono fisicamente la struttura ma le istanze da attivare, le caratteristiche network ed infine le risorse da utilizzare. IaaS quindi emula l’hardware che le aziende solitamente acquistano per creare reti interne ed esterne. Il compito dell’installazione dell’hardware viene sostituito al compito di creare configurazioni robuste. Solitamente la fatturazione è basata sul tempo di utilizzo, senza canoni fissi in modo da offrire la massima elasticità; tutto l’hardware virtuale è scalabile e misurabile automaticamente.

Esempi

  • Server
  • Firewall
  • Router
  • Load Balancers
  • CDN (Content Delivery Network)

Benefici

  • Nessun hardware: non è necessario investire in macchinari
  • Il costo è determinato dall’utilizzo del servizio: gli investimenti iniziali sono molto più economici rispetto all’acquisto di attrezzature
  • Scalabilità: una rete può facilmente ridimensionarsi, ritrarsi o trasformarsi senza incidere finanziariamente sulle clausole di leasing o sull’acquisizione
  • Swift Management: capacità di reagire ai problemi di rete o migliorare rapidamente le configurazioni di rete

Contro

  • Ci vuole tempo e fatica per essere in grado di utilizzare un servizio IaaS al massimo potenziale
  • Fuori dal tuo controllo: le risorse sono fisicamente controllate da un’altra società
  • Contratto di servizio: l’accordo che controlla l’utilizzo del servizio potrebbe richiedere una revisione legale
  • Soggetto all’affidabilità della rete: la maggior parte dei venditori IaaS può vantare un uptime del 99% quindi c’è ben poco da preoccuparsi, ma ciò non toglie che si possano si verificare interruzioni del servizio

SaaS (Software as a Service)

Il software come servizio è così diffuso nell’era moderna di Internet che è quasi trascurato come parte del cloud computing. SaaS descrive qualsiasi applicativo che fornisce un insieme specifico di operazioni. Questo include tutto, dall’e-mail alla gestione dei contatti. L’utente finale non ha bisogno di nessuna conoscenza informatica per utilizzare l’applicazione o i servizi erogati. In questo caso l’utente non ha bisogno di scaricare o installare nessun tipo di file. I servizi sono utilizzabili tradizionalmente con una connessione internet e un browser, anche se con l’avvento dei dispositivi mobili, alcuni prodotti SaaS hanno sviluppato client specifici da installare sui dispositivi mobili e web.

Esempi

  • Servizi di posta elettronica: Gmail, Outlook.com
  • Customer Relationship Management (CRM): Salesforce
  • Produttività aziendale: Office.com, Dropbox, Box.com, Google Documenti
  • Supporto per le applicazioni: InsideOps, Logentries, Google Forms

Benefici

  • Servizio gestito: i clienti di un prodotto SaaS sono in grado di concentrarsi sul suo utilizzo; non devono preoccuparsi del software o dell’hardware necessario per eseguirlo
  • Aggiornamenti rapidi e regolari: il prodotto è l’obiettivo principale dell’azienda; il software è in costante miglioramento, correzione e patching per migliorare l’utilità
  • Portabilità: i prodotti SaaS di livello aziendale funzionano generalmente su tutti i browser moderni e su una vasta gamma di dispositivi mobili
  • Assistenza clienti dedicata: se qualcosa deve essere risolto, le risorse interne non devono rallentare il lavoro per risolverlo

Contro

  • La crescita del prodotto è al di fuori del tuo controllo: la roadmap dello sviluppo dello strumento e le funzionalità aggiunte non sono sotto il tuo controllo. Tuttavia, la maggior parte dei venditori ha un metodo con cui i clienti possono richiedere nuove funzionalità
  • Contratto di servizio: l’accordo che controlla l’utilizzo del servizio potrebbe richiedere una revisione legale
  • La personalizzazione può essere difficile: la personalizzazione del prodotto per soddisfare specificamente le esigenze di un’azienda potrebbe non essere possibile o potrebbe essere costoso
  • Affidabilità: la maggior parte dei prodotti SaaS ha un uptime maggiore del 90%, ma ciò non toglie che si possano si verificare interruzioni del servizio

PaaS (Platform as a Service)

Il PaaS può essere visto come una piattaforma ponte tra le applicazioni (SaaS) e la parte infrastrutturale (IaaS). In questo caso, il fornitore del servizio si occupa dell’infrastruttura hardware, mentre l’utente dovrà installare il sistema operativo e occuparsi di sviluppare la sua applicazione. Va sottolineato che questa tipologia di cloud è dedicata soprattutto agli sviluppatori, i quali cercano un ambiente di sviluppo senza avere gli oneri che derivano dalla gestione dell’hardware. Inoltre, con il cloud PaaS gli sviluppatori hanno la possibilità di sfruttare la scalabilità dinamica, l’automazione per i backup dei database e un set di linguaggi di programmazione specifici. Ci sono poi alcuni PaaS “containers” (come Red Hat OpenShift), che consentono agli sviluppatori e ai sistemisti di avere un ambiente dove l’infrastruttura e le piattaforme che supportano le applicazioni ed i database sono automatizzate e perfettamente integrate. L’utente in questo caso si trova di fronte ad una soluzione flat e la fatturazione è, nella maggior parte dei casi, periodica.

I prodotti Platform as a Service, fino a poco tempo fa, hanno ricevuto meno attenzione dei loro fratelli SaaS e IaaS. I PaaS si trovano nel mezzo tra IaaS e SaaS. I servizi PaaS consentono ai clienti di creare un’esperienza personalizzata su un set di strumenti esistente. In questo caso, il fornitore del servizio si occupa dell’infrastruttura hardware, mentre l’utente dovrà installare il sistema operativo e occuparsi di sviluppare la sua applicazione. Va sottolineato che questa tipologia di cloud è dedicata soprattutto agli sviluppatori, i quali cercano un ambiente di sviluppo senza avere gli oneri che derivano dalla gestione dell’hardware.

Esempi

  • Tornei interattivi interattivi personalizzati: RaceLink
  • Sviluppo di applicazioni: Google App Engine, SAP Hana, Cloud Foundry

Vantaggi (simili ai prodotti SaaS)

  • Aggiornamenti rapidi e regolari: il prodotto è l’obiettivo principale dell’azienda; il prodotto è in costante miglioramento, correzione e patching per migliorare l’utilità del proprio strumento
  • Portabilità: le applicazioni basate su prodotti PaaS di livello aziendale funzionano generalmente su tutti i browser moderni e su una vasta gamma di dispositivi mobili
  • Personalizzazione: la possibilità di utilizzare il prodotto PaaS come punto di partenza significa che le applicazioni create su di esso possono essere più strettamente legate alla tua attività e ai suoi processi
  • RAD (Rapid Application Development): la creazione di applicazioni avviene molto più rapidamente rispetto allo sviluppo di applicazioni tradizionali

Contro (simile ai prodotti SaaS)

  • La crescita del prodotto è al di fuori del tuo controllo: la roadmap dello sviluppo dello strumento e le funzionalità aggiunte non sono sotto il tuo controllo. Tuttavia, la maggior parte dei venditori ha un metodo con cui i clienti possono richiedere nuove funzionalità
  • Contratto di servizio: l’accordo che controlla l’utilizzo del servizio potrebbe richiedere una revisione legale
  • Affidabilità: la maggior parte dei prodotti PaaS ha un uptime maggiore del 90%, ma le interruzioni di servizio si verificano
  • Sviluppo interno ancora da considerare: i dipendenti interni potrebbero aver bisogno di dedicare tempo a perfezionare, correggere o migliorare le applicazioni

Cos’è il Cloud?

Il cloud è una scorciatoia per descrivere l’enorme rete di server interconnessi progettata per fornire risorse di calcolo senza un’ubicazione fisica. In altre parole, il Cloud appare agli utenti come una gigantesca massa informe di potenza informatica che gestisce qualsiasi cosa, dalla posta elettronica alla mappatura verso le applicazioni mobili.

In termini commerciali, non esiste nessun “Cloud”. Il cloud computing è in realtà una raccolta di servizi su licenza forniti da diversi fornitori. I servizi cloud eliminano la gestione della tecnologia e l’acquisizione della tecnologia, la sostituiscono con prodotti gestiti altrove e sono attivi solo quando necessario.

Per capire meglio quali servizi cloud offrono, confrontiamo il cloud con altre opzioni di localizzazione della tecnologia tradizionale:

On-premise

Descrive software e hardware che sono ospitati e gestiti direttamente all’interno della sede fisica di un’azienda. L’hardware e il software in loco sono generalmente sempre attivi e disponibili.

Off-premise Hardware fisico e software legati a una particolare posizione, spesso affittati nello spazio. L’hardware e il software off-premise sono solitamente attivi e dedicati al cliente che lo utilizza. Questo può riferirsi a data center esterni, sedi di archivi su nastro, ecc.
Cloud Hardware e software fisici e virtualizzati che vengono ospitati, se necessario, su qualsiasi risorsa disponibile all’interno di una farm di risorse. Una società potrebbe utilizzare un server per eseguire un’applicazione, ma non è un server fisico noleggiato dalla società. Il server in uso utilizza le modifiche richieste dal provider e può trovarsi in un numero qualsiasi di posizioni.

Dove si trova il Cloud?

I consumatori e le aziende utilizzano diversi servizi cloud con tale facilità e per tanti scopi che le nuvole possono sembrare molto effimere. Quando si inizia a utilizzare il cloud computing bisogna capire che la geografia è importante. Sebbene possa esser vero che la maggior parte delle applicazioni può essere raggiunta ovunque, non sarà la stessa esperienza ovunque.

I prodotti di cloud computing sono generalmente condizionati dal luogo in cui si trovano. Tutti i provider solitamente danno la possibilità di scegliere una regione, cioè un luogo fisico (solitamente un continente-nazione) in cui è presente una loro server farm. La scelta della corretta regione dipende in gran parte dall’ambito dell’applicazione, dalla rete, dalla tolleranza di latenza e dagli SLA. I servizi specifici richiesti influenzeranno anche la scelta delle regioni perchè non tutti i servizi sono disponibili in tutte le regioni.

Il fattore più grande che spesso si insinua nella scelta delle regioni è la latenza. La quantità di tempo che impiegano i dati e le risorse per viaggiare dal server al client può fare la differenza tra un’applicazione che viene “adottata” o abbandonata. Un’applicazione che “produce” contenuti web statici può probabilmente trovarsi in una qualsiasi regione, perchè, essendo il carico di dati più leggero significa che il transito sarà più veloce. Tuttavia, un’applicazione che produce grandi set di dati dovrebbe probabilmente trovarsi nella regione più vicina a quella degli utenti utilizzatori. Più grandi sono le dimensioni di dati che viaggiano a grandi distanze, maggiore sarà il tempo di latenza.

La latenza è un fattore importante per reti e applicazioni. Il numero di hop necessari ai pacchetti di rete può influire rapidamente sul tempo di risposta del sistema. Un sistema di load balancing può aiutare a controllare il traffico, ma se il traffico deve passare attraverso diversi hop di reti prima di arrivare a quello del bilanciamento, l’impatto e l’utilità del load balancing sarà minimo. Bisogna quindi prendere sempre in considerazione la latenza della rete e la latenza delle applicazioni quando si sceglie la regione dei servizi Cloud.

Nuvole ibride

Il cloud computing si è evoluto molto negli ultimi anni. Quello che una volta era un’aggiunta esterna all’infrastruttura aziendale è diventato una componente integrale. Il concetto di cloud ibrido è un riflesso di questa evoluzione.

Un cloud ibrido è una tecnologia che integra le risorse cloud con altre risorse on-premise, off-premise e di terze parti. Nella maggior parte dei casi, queste integrazioni sono trasparenti per l’utente. Ad esempio, un file server locale potrebbe ospitare una presentazione Powerpoint, ma i dipendenti che lavorano su tale presentazione utilizzano il prodotto Powerpoint basato sul cloud di Office.com.

Alcuni servizi cloud consentono persino integrazioni fisiche per soddisfare la sicurezza, la latenza e altre esigenze aziendali. I fornitori si riferiscono spesso a queste connessioni come alla connessione a un bordo del cloud. AWS Direct Connect di Amazon, Interconnect di Google e Gateway Express di Microsoft sono tutti esempi di questa configurazione.

Servizi cloud

Le offerte di prodotti aziendali cloud tendono ad essere ampie, specifiche e progettate per riempire le nicchie. Collettivamente, è possibile eseguire uno stack tecnologico dell’intera organizzazione sul cloud. Il caso più comune è quello di utilizzare i fornitori di cloud per migliorare le infrastrutture esistenti o aggiungere pezzi mancanti. Google, Amazon e Microsoft offrono tutti una combinazione di prodotti IaaS, SaaS e Paas per le aziende tra cui scegliere e scegliere.

Principali vantaggi dei servizi cloud

Si paga solo ciò che si consuma

Fino a qualche anno fa, i costi di fornitura di servizi fuori sede erano simili a quelli di un piano di leasing; Il cloud computing ha cambiato le regole. Le varie offerte fornite da tutte le principali piattaforme di cloud computing funzionano su piani basati sul consumo. Più consumi, più paghi. E’ semplice…. L’utilizzo dei servizi viene addebitato in base alle risorse applicabili di tale servizio. Ad esempio, il costo di una macchina virtuale verrà calcolata sulla base della potenza di calcolo utilizzata e al tempo di attività del server. Oppure, un servizio di data warehouse può essere addebitato in base alla quantità di dati archiviati e alla frequenza con cui vengono eseguiti i report e le interrogazioni.

Questa struttura dei prezzi può sembrare complicata, ma è molto vantaggiosa per il cliente. I costi sostenuti per l’utilizzo consentono alle aziende di qualsiasi dimensione di utilizzare risorse che sarebbero costose in termini di costi se dovessero acquisire tutto l’hardware, il software, lo spazio fisico e la connettività per conto proprio. Un data warehouse on-premise può essere estremamente costoso. Un data warehouse basato sul cloud ha viceversa un costo molto più economico.

Una volta e prezzi alternativi

I servizi cloud sono spesso soggetti a impennate di traffico a causa di eventi che si verificano una tantum (ad esempio, trasmissioni nazionali, la pubblicità del SuperBowl, ecc.). Non solo questo tipo di provisioning può essere costoso, ma spesso difficile da raggiungere. Le piattaforme di cloud computing consentono alle applicazioni di accedere a risorse aggiuntive immediatamente e secondo necessità senza ulteriore configurazione.

Oltre ai prezzi di punta e una tantum, alcuni servizi consentono altri meccanismi di tariffazione alternativa. Un esempio sono i prezzi che diventano più economici dopo le ore di punta. Se le operazioni possono verificarsi quando c’è una pausa prevedibile nell’uso delle risorse, come la mezzanotte o la mattina presto (per quella regione), allora tali operazioni possono a volte essere eseguite a un prezzo più conveniente.

In alternativa, se le operazioni hanno requisiti di utilizzo molto flessibili, alcuni fornitori consentono ai clienti di fare offerte sull’accesso alle risorse solo quando diventano disponibili per il tempo in cui sono disponibili a un prezzo calcolato dall’utilizzo corrente delle risorse. Ad esempio, è possibile pianificare un processo batch di grandi dimensioni quando le risorse di calcolo in quella regione diventano disponibili per $ 0.x / minuto a causa di finestre transitori a basso utilizzo finché l’utilizzo delle risorse non torna normale o il processo batch viene completato.

Infine, a volte c’è l’opzione di risorse dedicate. Queste sono spesso le risorse cloud più costose. Per alcune risorse, come lo storage su disco o i server, è possibile utilizzare un modello di determinazione del prezzo del leasing in cui un’azienda paga per una risorsa che deve essere dedicata solo a loro. Questo è utile per:

  • Applicazioni, reti e processi mission critical che non possono rischiare di essere influenzati da processi di virtualizzazione o co-hosting
  • Situazioni normative in cui i benefici del cloud computing sono necessari ma il co-hosting potrebbe non essere compatibile con i requisiti normativi

Crescita automatizzata e tecnologie scalabili

Le risorse cloud sono virtualizzate e configurate per requisiti specifici ma non per un hardware fisico. Ciò significa che è molto facile lanciare più risorse specifiche necessarie per l’azienda. Se un cliente si trova in un periodo di rapida crescita, il cloud può facilmente aumentare la quantità di risorse disponibili senza ulteriori installazioni o configurazioni. E’ vero anche al contrario. Se un’azienda deve ridurre i costi, disattivare le risorse o utilizzare meno risorse non richiede molto sforzo.

Anche la scalabilità è estremamente semplice, poiché i servizi cloud possono essere permanenti o temporanei secondo necessità. Un’applicazione progettata per un utilizzo elevato su un provider cloud può facilmente scalare da una piccola quantità di risorse utilizzate a una grande quantità senza una piccola configurazione aggiuntiva. Il servizio cloud spesso crea risorse aggiuntive secondo necessità, solo per il tempo necessario.

Altri provider di cloud computing

Le piattaforme di cloud computing di Amazon, Google e Microsoft dominano lo spazio del cloud computing, ma sono emersi anche altri provider. Alcuni di questi provider includono:

Molti di questi provider si affidano alla virtualizzazione standard del settore e alla tecnologia dei sistemi operativi rendendoli competitivi rispetto alle altre piattaforme di cloud computing. Tuttavia, confrontare questi altri fornitori con le piattaforme di cloud computing di Google, Microsoft o Amazon può essere più difficile a causa della maturità e della robustezza delle piattaforme dei grandi tre.

Tuttavia, alcuni di questi altri fornitori di cloud computing hanno scavato mercati di nicchia. Alcuni lo fanno adottando politiche di prezzo più aggressive, soddisfacendo le esigenze specifiche di determinate comunità (es. Ruby / Rails o Linux) o fornendo un servizio clienti migliore rispetto ai loro più grandi concorrenti.

Le sporadiche interruzioni nelle “nuvole”

I fornitori di servizi cloud sono ben consapevoli delle aspettative dei clienti sulla questione uptime e fanno tutto il possibile per soddisfare la soglia del 99%. Tuttavia, se si considera il numero impressionante di ore di disponibilità dei servizi, è probabile che anche un tempo di inattività dell’1% possa influire. Nessuna tecnologia è perfetta.

Tutti i provider Cloud offrono pagine di stato in modo che i clienti possano essere a conoscenza di eventuali interruzioni che si verificano:

Google Cloud:

https://status.cloud.google.com/

AWS:

https://status.aws.amazon.com/

Microsoft Azure:

https://azure.microsoft.com/status/

IBM:

https://www.ibm.com/cloud-computing/social/maintenance/