Ricerca nel sito web

LFCA: Scopri disponibilità, prestazioni e scalabilità del cloud - Parte 14


Nell'argomento precedente della nostra serie LFCA, abbiamo fornito un'introduzione al cloud computing, ai diversi tipi di cloud e ai servizi cloud e abbiamo illustrato alcuni dei vantaggi associati al cloud computing.

Se la tua azienda si basa ancora sull'ambiente informatico IT 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 vantaggi associati all'adozione del cloud computing vi sono prestazioni migliorate, elevata disponibilità e scalabilità. In effetti, li abbiamo considerati uno dei principali vantaggi dell’utilizzo della tecnologia cloud.

In questo argomento ci concentreremo sulla disponibilità, sulle prestazioni e sulla scalabilità del cloud e cercheremo di capire come questi tre elementi si uniscono per soddisfare le richieste dei clienti e garantire che gli utenti accedano ai propri dati quando ne hanno bisogno 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 effetto sui ricavi. L'aspettativa dei clienti è che i servizi siano accessibili 24 ore su 24, in qualsiasi momento e da qualsiasi luogo. E questo è ciò che la tecnologia Cloud cerca di fornire.

L'elevata disponibilità è l'obiettivo finale del cloud computing. Cerca di fornire il massimo tempo di attività possibile dei servizi di un’azienda anche a fronte di interruzioni che possono essere causate da tempi di inattività del server senza precedenti o dal degrado della rete.

L'elevata disponibilità è resa possibile dalla presenza di sistemi ridondanti e di failover. Ciò accade in un ambiente cluster in cui più server o sistemi eseguono le stesse attività fornendo quindi ridondanza.

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

La ridondanza elimina un singolo punto di errore e garantisce una disponibilità di servizi e applicazioni del 99,999%. Il clustering fornisce inoltre il bilanciamento del carico tra i server e garantisce che il carico di lavoro sia equamente distribuito e che nessun server sia sovraccaricato.

2. Scalabilità del cloud

Un altro segno distintivo del cloud computing è la scalabilità. La scalabilità è la capacità di adattare le risorse cloud per soddisfare le mutevoli esigenze. In poche parole, puoi aumentare o diminuire senza problemi le risorse come e quando necessario per soddisfare la domanda senza compromettere la qualità dei servizi o i tempi di inattività.

Supponiamo che tu stia gestendo un blog che sta iniziando a ricevere visite e più traffico. Puoi aggiungere facilmente più risorse di calcolo come spazio di archiviazione, RAM e CPU alla tua istanza di cloud computing per gestire il carico di lavoro aggiuntivo. Al contrario, è possibile ridurre le risorse quando necessario. Ciò ti garantisce di pagare solo ciò di cui hai bisogno e ciò sottolinea le economie di scala offerte dal cloud.

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

Scala verticale

Chiamato anche "scaling up", il dimensionamento verticale implica l'aggiunta di più risorse come RAM, spazio di archiviazione e CPU all'istanza di cloud computing per gestire un carico di lavoro aggiuntivo. Ciò equivale a spegnere il PC o il server fisico per aggiornare la RAM o aggiungere un disco rigido o un SSD aggiuntivo.

Ridimensionamento orizzontale

La scalabilità orizzontale, nota anche come "scalabilità orizzontale", comporta l'aggiunta di più server al pool di server preesistenti per garantire la distribuzione del carico di lavoro su più server. Con il ridimensionamento orizzontale non sei limitato alla capacità di un singolo server, a differenza del ridimensionamento verticale. Ciò garantisce maggiore scalabilità e minori tempi di inattività.

La scalabilità orizzontale è più auspicabile rispetto alla scalabilità verticale

Ed ecco perché. Con il scalamento orizzontale, in pratica aggiungi più risorse come server o spazio di archiviazione al tuo pool di risorse già esistente. Ciò consente di combinare la potenza e le prestazioni di più istanze di calcolo in una sola, ottenendo così prestazioni migliori rispetto alla semplice 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 agli errori in modo tale che, anche se un server viene interessato, gli altri continueranno a fornire l'accesso ai servizi richiesti. Il ridimensionamento verticale è associato a un singolo punto di errore. Se l'istanza di calcolo si arresta in modo anomalo, tutto si risolve con essa.

Il ridimensionamento orizzontale offre inoltre la massima flessibilità rispetto al ridimensionamento verticale in cui le applicazioni vengono realizzate come un'unica grande unità. Ciò rende più difficile gestire, aggiornare o modificare sezioni di codice senza dover riavviare l'intero sistema. La scalabilità orizzontale consente il disaccoppiamento delle applicazioni e consente un aggiornamento senza interruzioni con tempi di inattività minimi.

3. Prestazioni del cloud

Garantire che le prestazioni delle applicazioni soddisfino le richieste dei clienti può essere un compito piuttosto arduo, soprattutto se si hanno più componenti posizionati in ambienti diversi che devono comunicare costantemente tra loro.

È probabile che problemi come la latenza si manifestino e incidano sulle prestazioni. Inoltre, non è facile prevedere le prestazioni laddove le risorse sono condivise da varie entità. Indipendentemente da ciò, puoi comunque ottenere prestazioni elevate e rimanere a galla implementando le seguenti misure.

1. Istanza cloud

Assicurati di utilizzare le giuste istanze cloud con risorse sufficienti per gestire i carichi di lavoro delle tue applicazioni e servizi. Per le applicazioni ad uso intensivo di risorse, assicurati di fornire RAM, CPU e risorse di archiviazione sufficienti all'istanza cloud per evitare un possibile deficit di risorse.

2. Bilanciatore 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 sia sopraffatta dalla domanda. Supponiamo che il tuo server web riceva molto traffico che causa ritardi e incide sulle prestazioni.

Una soluzione perfetta sarebbe implementare il scaling orizzontale con un totale di 4 server web seduti dietro un bilanciatore del carico. Il bilanciatore del carico distribuirà il traffico di rete sui 4 server Web e garantirà che nessuno venga sopraffatto dal carico di lavoro.

3. Memorizzazione nella cache

Utilizza soluzioni di memorizzazione nella cache per velocizzare l'accesso ai file da parte delle applicazioni. Le cache memorizzano i dati letti di frequente eliminando così le continue ricerche di dati che possono influire sulle prestazioni. Riducono la latenza e il carico di lavoro poiché i dati sono già memorizzati nella cache, migliorando così i tempi di risposta.

La memorizzazione nella cache può essere implementata a vari livelli, ad esempio a livello di applicazione e a livello di database. Gli strumenti di memorizzazione nella cache più diffusi includono la cache Redis, Memcached e 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 la tua iniziativa e installare strumenti di monitoraggio gratuiti e open source che possono aiutarti a tenere sotto controllo le tue applicazioni e i tuoi server. Esempi di tali applicazioni includono Grafana, Netdata e Prometheus, solo per citarne alcuni.

Conclusione

Non sottolineeremo mai abbastanza come la disponibilità, la scalabilità e le prestazioni siano cruciali nel cloud. I tre fattori determinano la qualità del servizio che otterrai dal tuo fornitore di servizi cloud e, in definitiva, tracciano il confine tra il successo o il fallimento della tua attività.