Quando si sente parlare di cloud, cloud computing o archiviazione nel cloud, non bisogna aver paura, non si tratta di fenomeni atmosferici!
Detto in modo semplice, quando qualcosa si trova nel cloud, significa che è stato archiviato in server accessibili attraverso internet invece che "sul posto". L'archiviazione sul cloud permette di accedere a risorse informatiche a richiesta, sia che si tratti di applicazioni, di software o di database, i quali girano su quei server e spesso sono localizzati in centri di elaborazione dati.
Un buon modo per comprendere cosa sia il cloud è quello di enumerare cinque caratteristiche essenziali:
Servizio fai da te a richiesta: Gli utenti possono accedere a risorse sul cloud (come ad esempio potenza di elaborazione, spazio d'archiviazione e rete) quando serve attraverso un'interfaccia che non richiede alcuna interazione umana con il fornitore del server.
Accesso a rete ampia: L'accesso a queste risorse di cloud computing avviene attraverso la rete per mezzo di meccanismi e piattaforme standard come i telefoni cellulari, i tablet, i laptop e le postazioni di lavoro.
Ripartizione delle risorse: Ciò è fondamentale per fornire dei servizi di scala ed efficienti in termini di costo. Le risorse informatiche vengono assegnate e riassegnate in modo dinamico a seconda della domanda e servono molteplici clienti allo stesso tempo.
Elasticità rapida: Gli utenti possono accedere a più risorse quando serve e ridimensionarle quando non servono più, dal momento che le risorse vengono messe a disposizione e fornite in modo elastico.
Servizio a misura: Gli utenti pagano solo ciò che usano o prenotano. Se non lo usi, non lo paghi. L'uso delle risorse viene monitorizzato, misurato e documentato in modo trasparente sulla base del consumo come tutte le altre utenze.
Il cloud computing è un tipo di tecnologia a cui si accede "come ad un servizio”: si utilizzano a richiesta risorse a distanza attraverso internet, si può aumentare o ridimensionare l'erogazione del servizio a seconda delle esigenze e pagare per ciò che si è utilizzato. Questo modello rivoluzionario ha cambiato il modo in cui accediamo ai servizi informatici, aiutando le aziende a reagire in modo più agile ai cambiamenti nel mercato.
L'evoluzione del cloud computing
Il cloud computing è il risultato dell'evoluzione della tecnologia preposta all'archiviazione dei dati. Il nome cloud computing si inspira al simbolo della nuvola che viene spesso usato per rappresentare internet nei diagrammi e nei grafici.
Per quanto riguarda il cloud computing, la sede del fornitore del servizio, l'hardware impiegato ed il sistema operativo soggiacente sono di solito irrilevanti per l'utente.
Si è cominciato a parlare di cloud nei primi anni duemila, ma la nozione di "informatica come servizio" circola già dagli anni cinquanta quando Unisys (UNIVAC computer), International Business Machine Corporation (IBM) ed altre aziende hanno cominciato a produrre computer enormi e molto costosi con una potenza di elaborazione ad alto volume pensati per le grandi aziende ed i laboratori governativi di ricerca. A causa dei costi di acquisto, di funzionamento e di manutenzione di un mainframe, le aziende e le istituzioni non potevano permettersi di avere un mainframe per ogni utente ed è così che la ripartizione delle risorse o "time sharing" ha cominciato a prendere forma.
Le aziende affittavano tempo su un mainframe. Nel 1958 i 1401 computer di IBM costavano 8.000 dollari al mese (le prime macchine prodotte da IBM erano quasi esclusivamente prese in leasing e non acquistate) e nel 1964 il più grande computer IBM l'S/360 costava diversi milioni di dollari.
Con l'utilizzo di "teminali generici", il cui unico scopo era quello di permettere l'accesso ai mainframe, molteplici utenti potevano accedere allo stesso sistema di archiviazione e al potere di elaborazione della CPU di un mainframe da ogni postazione.
Macchine virtuali
Negli anni settanta IBM ha rilasciato un sistema operativo che permetteva a sistemi virtuali multipli o "macchine virtuali” (VM) di venir installate su un mainframe, portando quindi ad un livello superiore l'accesso condiviso ad un computer/mainframe . Molteplici ambienti distinti di elaborazione informatica potevano funzionare sullo stesso hardware fisico.
Per spiegare cosa sia una macchina virtuale può essere utile fare un esempio che è familiare a tutti: provare a far girare un software incompatibile. Pochi anni fa prima del boom delle app il software progettato per Windows, per esempio Microsoft Office, non funzionava su un Mac. Se si voleva utilizzare quel tipo di applicazione su un Mac, si poteva utilizzare Apple Bootcamp per dedicare una parte del disco rigido all'installazione di Windows per far girare Office. Si avevano così di fatto due computer in uno, uno con Windows e uno con Mac OS. Tuttavia si poteva utilizzare solo un sistema operativo alla volta e bisognava riavviare il computer per passare da Mac OS a Windows. Esistono anche software che permettono di far funzionare i due OS in parallelo senza riavviare.
Nel caso delle macchine virtuali è come far funzionare molteplici computer in uno stesso computer. Ciascuna macchina virtuale può essere fornita del sistema operativo richiesto da ciascun utente (come ad esempio Microsoft Windows, Mac OS, Linux) e funzionare come se avesse le sue proprie risorse (memoria, CPU, disco rigido e rete) anche se in realtà esse sono condivise. Questo fenomeno si chiama virtualizzazione ed è stato uno straordinario catalizzatore per evoluzioni importanti in ambito informatico e delle comunicazioni. Si tratta anche del principale fattore tecnologico che rende possibile il cloud computing.
L'aspetto più importante è che ciò che succede in una particolare macchina virtuale non ha alcun effetto sulle altre. Per esempio se una macchina virtuali viene compromessa (viene infettata da un virus o da un malware) le altre non risultano coinvolte.
Virtualizzazione dei server
Fino a poco tempo fa l'hardware fisico era piuttosto caro. Con l'aumento dell'accessibilità di internet e con la riduzione dei costi dell'hardware, sempre più utenti hanno potuto permettersi di acquistare i loro propri server. Per rendere i costi dell'hardware più sostenibili, anche i server sono stati virtualizzati sfruttando le stesse funzionalità messe a disposizione dai sistemi di funzionamento delle macchine virtuali spiegati sopra.
Il problema era differente però: un certo server può andar bene per funzioni di base, ma non per fornire le risorse adeguate ad un'operazione particolarmente impegnativa. Questo tipo di situazione ha determinato il passaggio da una pratica di divisione dei server più costosi affinché li si potesse condividere alla combinazione di server a buon mercato. Ed ecco come è nata la "virtualizzazione cloud”.
Un elemento software chiamato ipervisore o hypervisor installato in vari server fisici permette alle risorse di essere visualizzate ed assegnate come se si trovassero in un unico server fisico. Gli esperti di tecnologia usavano termini come "utility computing” e "cloud computing” in riferimento a questo tipo di visualizzazione. In tali ambienti per il cloud computing la crescita del "cloud” è stata semplice. Gli esperti di tecnologia furono poi capaci di aggiungere un nuovo server fisico a questo spazio informatico e di configurarlo come una parte del sistema.
Durante le fasi di sviluppo delle nuove tecnologie e degli hypervisor, lo scopo delle aziende era quello di rendere i benefici del cloud accessibili agli utenti privi di questo tipo di risorse. È molto semplice per gli utenti prenotare e cancellare servizi cloud ed è altrettanto semplice per le aziende che forniscono servizi cloud soddisfare gli ordini: si tratta di un processo quasi immediato.
Il modello di pagamento in base all'utilizzo permette a istituzioni, aziende e sviluppatori singoli di pagare per le risorse informatiche "come e quando le usano proprio come unità di elettricità”. Questo è l'elemento chiave del cloud computing di oggi