Istruttore: Al
giorno d'oggi, il cloud computing si
trova ovunque, e questo perché l'uso del cloud computing
offre molti vantaggi.
Ed è su questo che ci concentreremo in questa lezione,
quando inizieremo
a parlare delle diverse caratteristiche del cloud.
Quando parliamo di cloud computing, ci sono
una serie di vantaggi o caratteristiche che vediamo
quando scegliamo di usare il cloud.
Questi includono alta disponibilità, scalabilità, elasticità,
utilizzo misurato, risorse
condivise e sincronizzazione dei file.
Diamo un'occhiata a questi.
In primo luogo, abbiamo l'alta disponibilità.
L'alta disponibilità si riferisce
al fatto che i servizi hanno tempi
di inattività molto ridotti quando si utilizza il cloud.
Questo perché la maggior parte dei servizi costruiti
sul cloud sono costruiti per essere altamente affidabili
e molto tolleranti agli errori.
Questo significa che possiamo garantire un alto livello di disponibilità.
Quando si parla di disponibilità,
di solito la si misura in termini di percentuale
di uptime rispetto al downtime.
Ad esempio, il gold standard all'interno
delle reti è noto come cinque nove.
Cinque nove significa 99. 999% di uptime o disponibilità
come sperimentato dai vostri utenti finali.
Ciò significa che ogni anno possiamo avere
solo cinque minuti e 15 secondi di inattività.
Esatto, solo cinque minuti e 15 secondi
in tutti i 365 giorni dell'anno.
Per farlo, è necessario disporre di
sistemi altamente affidabili e altamente disponibili.
Quindi, se avete un sito web,
avrete almeno due server web che lo ospitano.
In questo modo, se uno dei
due si guasta, l'altro continua a sostenere
il carico e l'utente finale non subisce alcun downtime.
È a questo che ci riferiamo
quando parliamo di alta disponibilità.
Ad esempio, con il mio sito web, diontraining. com, abbiamo una configurazione
ad alta disponibilità che è stata creata
utilizzando i servizi cloud.
Quindi, a seconda della vostra provenienza nel mondo, raggiungerete
uno dei nostri server multipli
situati in tutto il mondo e più vicini a voi per ottenere
un'esperienza migliore.
Ora, se il vostro server non funziona per qualche
motivo, verrete automaticamente reindirizzati verso un altro che
si trova un po' più lontano da voi, ma è ancora attivo.
In questo modo si ottiene comunque il servizio desiderato,
e questo è un modo per garantire un'elevata disponibilità.
La seconda caratteristica del cloud di
cui parleremo è la scalabilità.
Quando parliamo di scalabilità, ci riferiamo
al fatto che possiamo aumentare il
numero di persone o il numero
di oggetti nel nostro sistema a un tasso lineare o meno.
Con questo intendo
dire che, per esempio, ho 100 utenti che utilizzano il mio
sistema e mi costa 10 dollari.
Beh, se metto 200 utenti sul mio sistema, dovrebbe
costarmi 20 dollari o meno, e si tratterebbe di una scala lineare.
Ora, se passassi da 100 utenti a 200 utenti e il prezzo
passasse da 10 a 100 dollari, si tratterebbe di una
scala esponenziale, e noi non vogliamo
questo.
Quindi, mentre costruiamo i nostri sistemi
cloud, siamo sempre alla ricerca della scalabilità,
e questo significa che anche se oggi abbiamo solo 10 utenti, domani potremmo
averne 100.
Il giorno dopo ne abbiamo 1.000,
il giorno dopo ancora 10.000 e così via.
Se si considerano
alcune grandi aziende come Facebook, Google, LinkedIn
e UNI, hanno milioni di utenti finali che accedono alle loro piattaforme
ogni singolo giorno e sono in grado di scalare grazie
alla scalabilità dei servizi cloud, perché non devo
comprare un altro server da 10.000 dollari da collocare nel mio
data center locale, perché invece posso usare quello di Amazon e utilizzare una parte della loro capacità quando
ne ho bisogno.
Per quanto riguarda la scalabilità,
ci sono due modi per scalare.
Uno è quello di scalare verso l'alto, noto come scala verticale.
Questo avviene aggiungendo più
risorse a un particolare server o nodo.
Ad esempio, se si utilizza un server
basato sul cloud con due CPU virtuali,
è possibile aumentarle a quattro.
Questa è l'idea di scalare.
Si aggiungono più risorse, che
si tratti di più processori, più RAM, più memoria,
più larghezza di banda o cose del genere.
D'altra parte, si può anche scalare verso l'esterno,
il che è noto come scalatura orizzontale.
In questo caso si utilizzano ancora macchine più
piccole, ma più macchine
che lavorano in tandem dietro un bilanciatore di carico.
Quindi, invece di avere un server che
gestisce tutto il carico e di scalare verso l'alto
aumentando le CPU e la memoria, potete invece scalare verso
l'esterno e passare da un server a due server o da due
server a quattro, o da quattro a otto, e continuare a muovervi verso l'esterno,
aggiungendo altri server
dietro il vostro bilanciatore di carico con cui potete gestire
altro traffico.
Questo ci porta alla terza area,
nota come elasticità rapida.
Quando parliamo di elasticità rapida, ci riferiamo al fatto
che possiamo aumentare
o diminuire le dimensioni molto rapidamente.
Questo avviene perché utilizziamo l'automazione e
l'orchestrazione con molte macchine virtuali su
questi server fisici di proprietà di
Amazon, Google, Microsoft e altre aziende
che ci permettono di utilizzare porzioni o tutti i loro
servizi in base alle nostre esigenze, su richiesta.
E questo ci dà una rapida elasticità.
Quando si parla di elasticità rapida
o di elasticità in generale, si pensa alla capacità del
sistema di gestire le variazioni della domanda
in tempo reale.
Torniamo quindi all'esempio
dell'utilizzo del mio sito web, diontraining. com.
Se in questo momento controllo
il mio sito web e ho 1.000 studenti connessi,
e tra cinque minuti ne ho 10.000,
i miei sistemi sono progettati per attivare risorse cloud
aggiuntive e spingere parte del carico dei nuovi utenti su
questi servizi aggiuntivi.
Questa è l'idea di elasticità rapida.
In genere, quando si lavora nel cloud,
se i sistemi sono stati progettati correttamente,
si ha la possibilità di avere un'elasticità e di scalare
molto velocemente, e poi, allo stesso modo, quando
la domanda diminuisce, ci si può liberare rapidamente di quei server in più
e riportarli giù.
Il motivo per cui lo si vuole fare è che
tutti quei server extra vi costeranno di più e se non avete
abbastanza utenti per averli, non volete pagare
per questo, quindi li rilascerete
e li restituirete al vostro fornitore di servizi in modo che possa
affittare il servizio a qualcun altro.
Se invece si utilizza un modello on premise,
diciamo che oggi ho 1.000 studenti.
Beh, per 1.000 studenti potrei aver bisogno di tre server web.
Ma se arrivo a 10.000 studenti,
avrò bisogno di altri 15 server web.
Per farlo, dovrei acquistare altri 15 server.
Dovrei metterli in un rack.
Dovrei installare tutto il software
e configurarlo.
Tutto questo richiede tempo,
e quindi non è molto rapido in termini di elasticità per noi
essere in grado di scalare per soddisfare la domanda.
Se avete un modello di business a crescita molto lenta, va bene.
Ma se avete a che fare con qualcosa ad alta velocità o con
una di queste moderne piattaforme di social
media, e qualcosa che avete fatto è diventato virale,
e tutti vanno sul vostro sito web e iniziano a sommergervi,
se non avete la capacità di scalare rapidamente,
perderete la possibilità
di catturare il traffico che proviene da quell'incidente
virale.
Quindi si vuole essere in grado di costruire
le proprie cose in modo rapido ed elastico,
e questo è ciò che il cloud ci permette di fare.
La quarta cosa che abbiamo è nota come utilizzo misurato.
Questo si riallaccia alla
discussione sull'elasticità rapida che abbiamo appena fatto.
Quando si parla di utilizzo a consumo,
si intende il fatto che
si paga un servizio in base all'utilizzo.
Quindi, quando utilizziamo un servizio a pagamento come un database,
possono addebitarci un costo
in base al numero di utenti, al numero
di connessioni o al numero di dati memorizzati.
In sostanza, ci viene addebitato il
costo in base all'effettivo utilizzo del servizio.
E lo facciamo al secondo,
al minuto, all'ora, al giorno o al mese.
Ad esempio, utilizzo AWS Lambda
per molte delle mie automazioni e funzioni di backend
e mi addebita un costo in base all'utilizzo.
Ora per ogni milione di richieste che faccio, mi
fanno pagare 20 centesimi.
Per me è un modo molto efficiente
di realizzare le mie automazioni,
perché è una cosa molto, molto economica.
Posso avere milioni e milioni di richieste e mi
costerebbe solo un paio di dollari, e questa
è l'idea di un servizio a pagamento.
Un'altra cosa che si nota
è che a volte si fa una distinzione
tra servizio con contatore e servizio misurato.
Ora, quando si parla di servizi a pagamento o a misura,
si parla in realtà della stessa cosa:
la nostra capacità di pagare
qualcosa in base al consumo.
Ma qui c'è una differenza.
Quando si utilizza un servizio
a pagamento, si paga
in base all'utilizzo effettivo di ciò che si fa.
Se pensate alla bolletta
dell'acqua o a quella dell'elettricità a casa vostra.
Se questo mese avete aperto il tubo
dell'acqua e avete riempito la piscina,
pagherete molto di più la
bolletta dell'acqua perché ne avete usata molta di più.
Al contrario, quando si ha a che fare con un servizio misurato,
questo è più simile al piano del telefono cellulare.
Nella maggior parte dei luoghi, si paga un canone mensile per una certa
quantità di utilizzo del telefono cellulare, che si tratti
del numero di SMS, minuti o dati che si possono consumare.
Una volta raggiunto il limite,
il servizio viene interrotto e non viene più erogato fino
a quando non si paga di nuovo.
Quindi, quando pensate a un servizio misurato,
pensate al fatto che state pagando una certa
quantità in anticipo, e che lo usiate o meno, avete già pagato
per quella quantità.
Ma quando si tratta di
un servizio con contatore, si paga per l'esatta quantità
di consumo.
E questo è davvero uno dei vantaggi dell'utilizzo del
cloud: la maggior parte delle cose viene eseguita
su base metrica e si paga solo per ciò che si utilizza.
La prossima cosa di cui parleremo sono le risorse condivise.
Ora, quando parliamo di risorse condivise, stiamo parlando
della possibilità di ridurre al minimo i nostri costi perché siamo
in grado di mettere le nostre macchine virtuali
sui server di qualcun altro.
Se si considerano i server che
utilizziamo per Amazon, Azure e Google
Cloud, questi costano 10, 20,
30.000 dollari per un server di buona qualità.
Quindi, se dovete acquistarne
uno per ospitare il vostro blog WordPress, non state utilizzando
tutta questa capacità, perché se avete solo un
paio di centinaia di lettori, il carico
non sarà così elevato.
Quindi ha molto più senso prendere
quell'unico server molto costoso, tagliarlo
in piccoli pezzi e distribuirlo
in macchine virtuali a tutti
coloro che vogliono usarlo.
Quindi potremmo essere in grado di ospitare 50 o
100 blog WordPress su quell'unico server, invece di ospitarne uno solo.
Questa è l'idea di utilizzare risorse condivise.
Quando si parla di risorse condivise,
si parla di mettere insieme tutto l'hardware che
compone il data center del cloud provider.
In questo modo non è dedicato a un singolo individuo,
ma tutti possiamo utilizzarlo in base a una rapida elasticità
perché, si spera, ciò che Amazon, Google e Azure stanno pensando è
che quando ci sono alti periodi
di domanda per la mia azienda, potrebbero esserci
bassi periodi per la vostra e viceversa.
Così, invece di avere risorse hardware dedicate a
ciascuna delle nostre aziende,
possiamo condividere le risorse su tutta la linea.
L'ultima caratteristica
del cloud è la possibilità di sincronizzare i file.
L'aspetto positivo dell'utilizzo di una risorsa
basata sul cloud è che si può mettere
qualcosa in un posto e poi diffonderla
in altri posti in base a come la si configura.
Nella mia azienda, ad esempio, facciamo molto
affidamento sulla sincronizzazione dei file
perché la maggior parte dei nostri dipendenti è composta da collaboratori
remoti che lavorano in tutto il mondo, non solo nei nostri uffici.
Quindi, mentre sono
seduto qui nel mio ufficio e sto registrando,
ho bisogno di un modo per dare questo file al mio grafico in modo
che possa creare tutte le diverse cose che
vedete sullo schermo mentre parlo.
E poi andrà a spedirlo
in un altro Paese dove si trova il mio editor video.
Quando hanno finito, lo invieranno
ai miei uffici dove uno dei miei
collaboratori effettuerà i controlli di qualità e
poi lo invieremo a un altro Paese
che lo caricherà sul
sito finale dove lo vedrete.
Quindi questo video ha viaggiato probabilmente in
quattro o cinque luoghi diversi per poter essere il prodotto
finito che state vedendo ora sullo schermo.
Questa è l'idea della
sincronizzazione dei file, perché quando registro questo,
lo registro su un server di file basato sul cloud,
tutti i membri del mio team possono accedere a quel file perché
abbiamo una copia sincronizzata su tutti i loro dispositivi
e su tutti i nostri server in tutto il mondo, in modo che possano
accedervi e fare ciò di cui hanno bisogno.
E mentre lo fanno, non
rimane solo sul loro computer,
ma viene sincronizzato su tutti i nostri server cloud,
in modo che tutto il percorso che deve avvenire tra
la registrazione e la pubblicazione,
e poi la visione, possa avvenire
su tutti i server in modo molto semplificato.
E questo è uno dei grandi vantaggi
del cloud dal punto di vista aziendale: non
si ha un server nel proprio ufficio.
Ora si trova nel cloud,
in un data center protetto, altamente disponibile, in grado
di essere scalabile e di
rispondere in modo elastico
alle richieste di periodi più o meno lunghi.
Dobbiamo pagare solo per quello
che usiamo e possiamo condividere le risorse con altre
persone che magari non conosciamo
nemmeno, perché siamo tutti seduti sullo stesso server fisico.
E questi sono tutti gli elementi di cui
parliamo quando iniziamo a parlare delle caratteristiche del
cloud e del motivo per cui c'è stata questa grande migrazione
verso il cloud da parte di molte aziende in tutto il mondo.