La disponibilità di un'applicazione indica la quantità di tempo durante il quale un'applicazione è operativa.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Come impedire i tempi di inattività
Cos'è la latenza?
Cos'è il bilanciamento del carico?
Algoritmi per il bilanciamento del carico
Failover del server
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
La disponibilità misura la quantità di tempo in cui un'applicazione è operativa. Un'applicazione è disponibile quando funziona come previsto, soddisfacendo le richieste degli utenti. Un'applicazione non è invece disponibile se non sta funzionando o se non è raggiungibile dagli utenti finali.
Per le applicazioni web, la massimizzazione della disponibilità è una parte importante del processo di sviluppo. Questo parametro può essere migliorato combinando l'ottimizzazione dell'infrastruttura di backend e di frontend con la mitigazione degli attacchi.
Gli utenti ripongono nelle applicazioni aspettative di disponibilità molto alte. I tempi di inattività possono avere un impatto significativo sia sui ricavi che sulla reputazione di un'azienda. Pensiamo agli orari di apertura di un negozio: se il negozio è chiuso in orari inaspettati, i clienti porteranno i loro soldi altrove. Allo stesso modo, gli utenti che non riescono a ottenere i servizi di cui necessitano da un'applicazione software smetteranno di usarla, e questo causerà una contrazione della clientela e una perdita di fatturato.
Per le applicazioni business-to-business (B2B), la disponibilità è solitamente prevista in un contratto sui livelli di servizio (Service-level agreement, SLA) e viene espressa come la percentuale di tempo in cui ci si aspetta che l'applicazione sia operativa. In questi casi, gli sviluppatori di applicazioni hanno l'obbligo contrattuale di garantire ai propri clienti un determinato livello di disponibilità.
il concetto di "disponibilità" si applica a sistemi e servizi di ogni tipo, dai server alle applicazioni e alle API. La disponibilità viene misurata in percentuale: un'applicazione non disponibile per 36 secondi ogni ora ha una disponibilità del 99%.
Per affidabilità si intende la capacità di un sistema o di un'applicazione di fornire i propri servizi come previsto, senza errori, nel corso di un determinato periodo di tempo. Un'applicazione può essere disponibile pur essendo inaffidabile, se le sue prestazioni sono lente o genera risultati imprevisti e non corretti. Tornando all'analogia precedente, un negozio non disponibile è chiuso, mentre un negozio inaffidabile è aperto, ma magari sugli scaffali alcuni prodotti sono nel posto sbagliato.
La misurazione della disponibilità di una data applicazione viene spesso calcolata nell'arco di un anno solare. Questa tabella indica il tempo di inattività che un'applicazione avrà in un periodo di 365 giorni a seconda dei diversi livelli di disponibilità. I tempi di inattività sono cumulativi, e possono verificarsi in diversi periodi o nel corso di un singolo evento.
| Disponibilità | Tempo di inattività totale annuo |
|---|---|
| 95% | 18 giorni e 6 ore |
| 99% | 3 giorni, 15 ore e 36 minuti |
| 99,9% | 8 ore, 45 minuti e 36 secondi |
| 99,99% | 52 minuti e 34 secondi |
| 99,999% ("i cinque nove") | 5 minuti e 15 secondi |
Per "tempo di attività" si intende l'intervallo temporale in cui una data applicazione funziona come previsto, mentre il "tempo di inattività", di converso, indica quando un dispositivo o un servizio non sono operativi. In molti contesti, i termini tempo di attività e disponibilità sono sinonimi.
L'Internet è complesso, e i fattori che possono impattare sulla disponibilità e sulle prestazioni di una applicazione web sono numerosi e diversi. Alcuni rientrano nel controllo di coloro che l'hanno sviluppata, altri no. Tuttavia, esistono diverse misure che gli sviluppatori possono adottare per tenerli in conto e mitigarli.
Per "disponibilità elevata" si intende un livello di disponibilità costante, ottenuto tramite backup ed evitando punti singoli di vulnerabilità. In un'architettura ad elevata disponibilità, nessun server, gateway o servizio che va fuori uso determina l'indisponibilità del sistema. Questo tipo di architettura deve prevenire anche gli attacchi informatici.
Il bilanciamento del carico distribuisce i carichi computazionali e il traffico di rete in modo uniforme tra gruppi di server. Questo fa in modo nessun singolo server, o gruppo di server, venga sovraccaricato con più traffico di quanto possa gestire con efficienza.
Esistono diversi algoritmi di bilanciamento del carico: alcuni bilanciatori distribuiscono uniformemente i carichi di lavoro a prescindere dalle condizioni, mentre altri utilizzano algoritmi dinamici per reagire in tempo reale alle condizioni di rete e allo stato dei server.
Ogni tanto è inevitabile che un server incorra in un arresto anomalo. Un controllo di integrità è un servizio che monitora se un dato server di origine è online oppure no. I controlli di integrità consentono ai bilanciatori di carico di reagire allo stato del server, in modo che le richieste non vengano indirizzate verso un server offline.
Le applicazioni ad elevata disponibilità integrano la ridondanza nella loro architettura. Queste applicazioni sono in grado di ripristinare una copia di backup dei dati in caso di attacco ransomware o di indisponibilità di un database per altri motivi. La ridondanza dei servizi e i pool di server garantiscono che l'arresto anomalo di un server o di un'API non influisca sulla funzionalità dell'applicazione.
Gli elementi statici di un'applicazione web possono essere trasmessi da una rete di distribuzione dei contenuti (CDN) anche se l'infrastruttura sottostante è andata in crash. Una versione in cache di un'applicazione web potrebbe non disporre di tutte le funzionalità, ma potrebbe essere tecnicamente disponibile fino al ripristino completo del servizio. (Scopri di più sul servizio Cloudflare Always Online).
Il Domain Name System (DNS) è ciò che consente agli utenti di raggiungere i server delle applicazioni su una rete. Se il DNS smette di funzionare o non riesce più a trovare l'indirizzo IP corretto, gli utenti non possono caricare l'applicazione. L'utilizzo di un provider DNS affidabile, con copertura globale e in grado di bloccare attacchi DDoS incentrati sul DNS, può fare in modo che il DNS non influisca sulla disponibilità.
L'impiego di un tool esterno di monitoraggio della disponibilità aiuta i fornitori di servizi a monitorare lo stato di servizio di un'applicazione e a intervenire prontamente in caso di arresto anomalo.
La disponibilità continua è un approccio alla progettazione dell'infrastruttura informatica volto ad assicurare che un'applicazione o un sistema rimangano continuamente operativi. L'obiettivo finale di questo approccio è l'ottenimento di una disponibilità pari al 100%, un target che nella pratica potrebbe non essere possibile ottenere. Internet è stato progettato per resistere a una guerra nucleare. Malgrado questo livello di resilienza, il servizio può comunque andare fuori uso. Ciononostante, la disponibilità continua rimane un obiettivo che vale la pena perseguire, e che contribuisce a fornire all'utenza il miglior servizio possibile.
Quanto più un'applicazione è disponibile, tanto maggiori sono le risorse che devono essere impiegate per supportarla. In altre parole, una disponibilità pari al 99,999% ha un costo, e non è basso. Gli sviluppatori devono pertanto "indovinare" il tempo di inattività che i loro clienti sono disposti a tollerare, e tarare lo sviluppo del sistema di conseguenza.
Fortunatamente, Cloudflare rende l'architettura ad alta disponibilità molto più accessibile agli sviluppatori. Cloudflare incorpora nativamente nei propri servizi il bilanciamento del carico, il caching, lo stream delivery, la mitigazione degli attacchi DDoS e la gestione dei bot. Cloudflare offre persino una piattaforma dedicata per consentire agli sviluppatori di creare nuove funzionalità o nuove applicazioni, e farle girare su una rete globale presente in 335 città distribuite in tutto il mondo.
Scopri come Cloudflare mantiene le applicazioni disponibili.