LFCA: Impara disponibilità cloud, prestazioni e scalabilità – Parte 14

Nel precedente argomento della nostra serie LFCA, abbiamo dato un’introduzione al cloud computing, ai diversi tipi di Cloud e ai servizi cloud, e ti abbiamo guidato attraverso alcuni dei benefici associati al cloud computing.

Se la tua attività si basa ancora sull’ambiente informatico tradizionale, è ora di salire di livello e passare al cloud. Si stima che entro la fine del 2021, oltre il 90% del carico di lavoro totale sarà gestito nel cloud.

Tra i principali benefici associati all’adozione del cloud computing ci sono miglioramenti delle prestazioni, alta disponibilità e scalabilità. Infatti, abbiamo accennato a questi come uno dei principali vantaggi dell’utilizzo della tecnologia cloud.

In questo argomento, ci concentriamo sulla disponibilità, sulle prestazioni e sulla scalabilità del cloud e cerchiamo di capire come queste tre componenti si uniscano per soddisfare le esigenze dei clienti e garantire agli utenti l’accesso ai propri dati come necessario da qualsiasi parte del mondo.

1. Disponibilità del Cloud

Le applicazioni e i servizi IT di un’organizzazione sono fondamentali e qualsiasi interruzione del servizio può avere un profondo impatto sulle entrate. L’aspettativa dei clienti è che i servizi siano accessibili 24 ore su 24 in qualsiasi momento e da qualsiasi luogo. Ed è proprio ciò che la tecnologia cloud cerca di fornire.

L’alta disponibilità è l’obiettivo ultimo del cloud computing. Cerca di garantire il massimo tempo di attività possibile dei servizi di un’azienda anche di fronte a interruzioni che possono essere causate da un tempo di inattività del server senza precedenti o da una degradazione della rete.

L’alta disponibilità è resa possibile avendo sistemi ridondanti e di failover. Questo avviene in un ambiente di cluster in cui più server o sistemi svolgono le stesse attività e quindi forniscono ridondanza.

Quando un server va giù, gli altri possono comunque continuare a funzionare e a fornire i servizi forniti dal server interessato. Un esempio perfetto di ridondanza è la replica dei dati su più server di database in un cluster. Nel caso in cui il server di database primario nel cluster incontri un problema, un altro server di database fornirà comunque i dati richiesti dagli utenti nonostante il guasto.

La ridondanza elimina un singolo punto di fallimento e garantisce che ci sia una disponibilità dei servizi e delle applicazioni del 99,999%. Il clustering fornisce anche il bilanciamento del carico tra i server e garantisce che il carico di lavoro sia distribuito in modo equo e nessun server sia sovraccaricato.

2. Scalabilità del Cloud

Un altro tratto distintivo del cloud computing è la scalabilità. La scalabilità è la capacità di regolare le risorse cloud per soddisfare le esigenze in evoluzione. In poche parole, è possibile aumentare o diminuire le risorse in modo fluido quando necessario per soddisfare la domanda senza compromettere la qualità dei servizi o il tempo di inattività.

Stai gestendo un blog che sta iniziando a ricevere visite e più traffico. Puoi facilmente aggiungere più risorse di calcolo come storage, RAM e CPU alla tua istanza di calcolo cloud per gestire il carico di lavoro aggiuntivo. Al contrario, puoi ridimensionare le risorse quando necessario. Questo assicura che paghi solo per ciò di cui hai bisogno, sottolineando così le economie di scala che il cloud fornisce.

La scalabilità è duplice: scalabilità verticale e scalabilità orizzontale.

Scalabilità Verticale

Anche chiamata ‘scalabilità verso l’alto’, la scalabilità verticale comporta l’aggiunta di più risorse come RAM, storage e CPU alla tua istanza di calcolo cloud per gestire il carico di lavoro aggiuntivo. Questo equivale a spegnere il tuo PC fisico o server per aggiornare la RAM o aggiungere un disco rigido o SSD extra.

Scalabilità Orizzontale

La scalabilità orizzontale, nota anche come ‘espansione’, comporta l’aggiunta di più server al tuo pool di server preesistenti per garantire la distribuzione del carico di lavoro su più server. Con la scalabilità orizzontale, non sei limitato alla capacità di un singolo server, a differenza della scalabilità verticale. Questo fornisce maggiore scalabilità e meno tempo di inattività.

L’espansione è più desiderabile rispetto all’aggiornamento

Ecco perché. Con il scaling orizzontale, stai essenzialmente aggiungendo più risorse come server o storage al tuo pool di risorse già esistente. Questo ti permette di combinare la potenza e le prestazioni di più istanze di calcolo in una sola, ottenendo così migliori prestazioni rispetto all’aggiunta di risorse su un singolo server. Server aggiuntivi implicano che non dovrai affrontare una carenza di risorse.

Inoltre, il scaling orizzontale fornisce ridondanza e tolleranza ai guasti in modo tale che anche se un server è colpito, gli altri continueranno a fornire accesso ai servizi richiesti. Il scaling verticale è associato a un singolo punto di fallimento. Se l’istanza di calcolo si blocca, allora tutto va giù con essa.

Il scaling orizzontale offre anche massima flessibilità rispetto al scaling verticale dove le applicazioni sono costruite come un’unica grande unità. Questo rende più difficile gestire, aggiornare o modificare sezioni di codice senza dover riavviare l’intero sistema. Espandere consente di disaccoppiare le applicazioni e permette un aggiornamento senza soluzione di continuità con un tempo di inattività minimo.

3. Prestazioni Cloud

Garantire che le prestazioni dell’applicazione soddisfino le esigenze dei clienti può essere un compito piuttosto impegnativo, specialmente se hai molteplici componenti distribuiti in ambienti diversi che devono comunicare costantemente tra loro.

Le problematiche come la latenza sono probabili manifestarsi e impattare le prestazioni. Inoltre, non è facile prevedere le prestazioni quando le risorse sono condivise da varie entità. Tuttavia, è comunque possibile ottenere alte prestazioni e mantenersi a galla implementando le seguenti misure.

1. Istanza Cloud

Assicurati di utilizzare le istanze cloud appropriate con abbastanza risorse per gestire i carichi di lavoro delle tue applicazioni e servizi. Per applicazioni ad alta intensità di risorse, assicurati di fornire abbastanza RAM, CPU e risorse di archiviazione alla tua istanza cloud per evitare un possibile deficit di risorse.

2. Bilanciamento del Carico

Implementa un bilanciatore del carico per distribuire equamente il traffico di rete tra le tue risorse. Ciò garantirà che nessuna delle tue applicazioni venga sopraffatta dalla domanda. Supponiamo che il tuo server web stia ricevendo molto traffico che sta causando ritardi e impatti sulle prestazioni.

A perfect solution would be to implement horizontal scaling with a total of 4 web servers sitting behind a load balancer. The load balancer will distribute network traffic across the 4 web servers and ensure none is overwhelmed by the workload.

3. Caching

Utilizza soluzioni di caching per velocizzare l’accesso ai file da parte delle applicazioni. Le cache memorizzano dati letti frequentemente ed eliminano così le costanti ricerche di dati che possono impattare le prestazioni. Riducono la latenza e il carico di lavoro poiché i dati sono già memorizzati nella cache, migliorando quindi i tempi di risposta.

La memorizzazione nella cache può essere implementata su vari livelli come il livello dell’applicazione, il livello del database. Gli strumenti di memorizzazione nella cache popolari includono Redis, Memcached, e cache Varnish.

4. Monitoraggio delle prestazioni

Infine, assicurati di monitorare le prestazioni dei tuoi server e delle tue applicazioni. I fornitori di servizi cloud forniscono strumenti nativi che possono aiutarti a tenere d’occhio i tuoi server cloud da un browser web.

Inoltre, puoi prendere l’iniziativa e installare strumenti di monitoraggio gratuiti e open-source che possono aiutarti a tenere d’occhio le tue applicazioni e server. Esempi di tali applicazioni includono Grafana, Netdata e Prometheus, per citarne alcuni.

Conclusione

Non possiamo sottolineare abbastanza quanto siano cruciali l’affidabilità, la scalabilità e le prestazioni nel cloud. Questi tre fattori determinano la qualità del servizio che otterrai dal tuo fornitore di cloud e alla fine tracciano la linea tra il successo e il fallimento della tua attività.

Source:
https://www.tecmint.com/cloud-availability-performance-and-scalability/