Affidabilità
Si supponga di eseguire un sistema clinico per un'organizzazione sanitaria. Gli operatori sanitari non hanno molta tolleranza per i tempi di inattività. Devono avere accesso ai sistemi IT clinici 24 ore al giorno per garantire un'assistenza di alta qualità in qualsiasi momento.
Per soddisfare i requisiti di disponibilità continua, le applicazioni devono essere in grado di gestire gli errori con un impatto minimo per gli utenti. Come si garantisce che le applicazioni rimangano operative, sia in caso di eventi imprevisti locali che di emergenze su larga scala?
In questa unità viene illustrato come includere gli elementi del principio fondamentale dell'affidabilità nella progettazione dell'architettura.
Che cos'è l'affidabilità?
In un'applicazione complessa possono verificarsi numerosi imprevisti di qualsiasi portata. Possono verificarsi errori di singoli server e dischi rigidi. Un problema di distribuzione può provocare l'involontaria eliminazione di tutte le tabelle di un database. Interi data center possono diventare irraggiungibili. Un ransomware può crittografare in modo malevolo tutti i dati. È fondamentale che l'applicazione rimanga affidabile e sia in grado di gestire gli eventi imprevisti sia a livello locale che a livello generale.
La progettazione per l'affidabilità prevede mantenimento del tempo di attività in caso di eventi imprevisti su piccola scala e condizioni temporanee come interruzioni parziali della rete. È possibile assicurarsi che l'applicazione gestisca gli errori localizzati integrando la disponibilità elevata in ogni componente. Questa progettazione dell'applicazione elimina singoli punti di errore. Un progetto di questo tipo riduce anche al minimo l'impatto della manutenzione dell'infrastruttura. Le progettazioni a disponibilità elevata in genere mirano a eliminare l'impatto degli eventi imprevisti rapidamente e automaticamente e ad assicurare che il sistema possa continuare a elaborare le richieste senza alcun impatto o con un impatto minimo.
La progettazione per l'affidabilità è incentrata anche sul ripristino in caso di perdita dei dati ed emergenze su larga scala. Il ripristino da questi tipi di eventi imprevisti spesso comporta interventi attivi, anche se i passaggi automatici possono ridurre il tempo necessario per il ripristino. Questi tipi di eventi imprevisti possono causare tempi di inattività o la perdita definitiva dei dati. Per il ripristino di emergenza sono necessarie tanto una pianificazione accurata quanto una corretta esecuzione.
Includendo la disponibilità elevata e la possibilità di ripristino nella progettazione dell'architettura, è possibile proteggere l'azienda dalle perdite finanziarie derivanti da tempi di inattività e perdita di dati. Proteggono anche l'azienda da una perdita di reputazione causata da una perdita di fiducia da parte dei clienti.
La progettazione per l'affidabilità assicura che l'applicazione possa mantenere gli impegni presi con i clienti, Sarà ad esempio possibile garantire che i sistemi siano disponibili per gli utenti finali e consentano il ripristino in caso di errori.
Creare un'architettura a disponibilità elevata
Per la disponibilità, identificare il contratto di servizio da offrire ai clienti. Esaminare le potenziali capacità di disponibilità elevata dell'applicazione rispetto al contratto di servizio e identificare le aree in cui si ha una copertura adeguata e quelle in cui è necessario apportare miglioramenti. L'obiettivo è aggiungere ridondanza ai componenti dell'architettura per ridurre le probabilità che si verifichi un'interruzione.
Esempi di componenti di progettazione a disponibilità elevata sono il clustering e il bilanciamento del carico:
Il clustering sostituisce una singola macchina virtuale con un set di macchine virtuali coordinate. In caso di errore o irraggiungibilità di una macchina virtuale, verrà eseguito il failover dei servizi a un'altra macchina virtuale in grado di soddisfare le richieste.
Il bilanciamento del carico distribuisce le richieste su molte istanze di un servizio, rilevando le istanze con errori e impedendo che le richieste vengano indirizzate a tali istanze.
Creare un'architettura che possa essere ripristinata in caso di errore
Per creare la possibilità di ripristino, è necessario eseguire un'analisi allo scopo di esaminare i possibili scenari di perdita di dati e i principali scenari di tempi di inattività. L'analisi deve includere l'esame delle strategie di ripristino e del compromesso costi/benefici per ciascuna di esse. Questo esercizio offrirà una visione approfondita delle priorità dell'organizzazione e contribuirà a chiarire il ruolo dell'applicazione. I risultati dell'analisi devono includere questi valori di durata per l'applicazione:
Obiettivo del punto di ripristino (RPO): durata massima della perdita di dati accettabile. L'obiettivo RPO viene misurato in unità di tempo, non di volume. Ad esempio, "30 minuti di dati", "quattro ore di dati" e così via. L'obiettivo RPO riguarda la limitazione e il ripristino in seguito a una perdita di dati, non a un furto di dati.
Obiettivo del tempo di ripristino (RTO): durata massima di tempo di inattività accettabile, dove il "tempo di inattività" è definito dalle proprie specifiche. Se, ad esempio, la durata del tempo di inattività accettabile in caso di emergenza è di otto ore, l'obiettivo del tempo di ripristino corrisponde a otto ore.
Definendo RPO e RTO è possibile progettare funzionalità di backup, ripristino, replica e recupero nell'architettura per soddisfare questi obiettivi.
Ogni provider di servizi cloud offre una suite di servizi e funzionalità che è possibile usare per migliorare la disponibilità e la possibilità di ripristino delle applicazioni. Quando possibile, usare i servizi e le procedure consigliate esistenti ed evitare di crearne altri.
I dischi rigidi possono danneggiarsi, i data center possono diventare irraggiungibili e i pirati informatici possono sferrare attacchi. È importante mantenere una buona reputazione presso i clienti garantendo disponibilità e possibilità di ripristino. La disponibilità riguarda il mantenimento dei tempi di attività in situazioni come le interruzioni di rete, mentre la possibilità di ripristino riguarda il recupero dei dati dopo una situazione di emergenza.