Conclusioni - Disponibilità e oltre: comprensione e miglioramento della resilienza dei sistemi distribuiti su AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Conclusioni

Abbiamo stabilito 12 regole per l'alta disponibilità in questo documento.

  • Regola 1 — Guasti meno frequenti (MTBF più lungo), tempi di rilevamento dei guasti più brevi (MTTD più breve) e tempi di riparazione più brevi (MTTR più breve) sono i tre fattori utilizzati per migliorare la disponibilità nei sistemi distribuiti.

  • Regola 2 — La disponibilità del software nel carico di lavoro è un fattore importante della disponibilità complessiva del carico di lavoro e dovrebbe ricevere la stessa attenzione degli altri componenti.

  • Regola 3 — La riduzione delle dipendenze può avere un impatto positivo sulla disponibilità.

  • Regola 4: in generale, seleziona le dipendenze i cui obiettivi di disponibilità sono uguali o superiori agli obiettivi del tuo carico di lavoro.

  • Regola 5: usa il risparmio per aumentare la disponibilità delle dipendenze in un carico di lavoro.

  • Regola 6 — Esiste un limite superiore all'efficienza in termini di costi del risparmio. Utilizza il minor numero di pezzi di ricambio necessari per ottenere la disponibilità richiesta.

  • Regola 7: non dipendere dai piani di controllo del piano dati, specialmente durante il ripristino.

  • Regola 8 — Abbina liberamente le dipendenze in modo che il carico di lavoro possa funzionare correttamente nonostante la riduzione della dipendenza, ove possibile.

  • Regola 9 — L'osservabilità e la strumentazione sono fondamentali per ridurre MTTD e MTTR.

  • Regola 10 — Concentrati sulla mitigazione dell'impatto, non sulla risoluzione dei problemi. Prendi il percorso più veloce per tornare al normale funzionamento.

  • Regola 11 — L'isolamento dei guasti riduce la portata dell'impatto e aumenta l'MTBF del carico di lavoro riducendo il tasso di guasto complessivo.

  • Regola 12 — Fai in modo che gli operatori facciano facilmente la cosa giusta.

Il miglioramento della disponibilità dei carichi di lavoro si basa sulla riduzione di MTTD e MTTR e sull'aumento del MTBF. In sintesi, abbiamo discusso i seguenti modi per migliorare la disponibilità che riguardano tecnologia, persone e processi.

  • MTTD

    • Riduci l'MTTD attraverso il monitoraggio proattivo delle metriche relative alla Customer Experience.

    • Sfrutta i controlli di integrità granulari per un failover rapido.

  • MTTR

    • Monitora l'ambito di impatto e le metriche operative sullo stato di salute.

    • Riduci l'MTTR seguendo 1/Restart, 2/Reboot, 3/Re-image/Redeploy e 4/Replace.

    • Risolvi il fallimento comprendendo l'ambito dell'impatto.

    • Utilizza servizi con tempi di riavvio più rapidi, come container e funzioni serverless su macchine virtuali o host fisici.

    • Ripristina automaticamente le distribuzioni non riuscite quando possibile.

    • Definisci guide e strumenti operativi per le operazioni di diagnosi e le procedure di riavvio.

  • MTBF

    • Elimina i bug e i difetti del software attraverso test rigorosi prima del rilascio in produzione.

    • Implementa l'ingegneria del caos e l'iniezione di errori.

    • Utilizza la giusta dose di risparmio nelle dipendenze per tollerare il fallimento.

    • Riduci al minimo la portata dell'impatto durante i guasti tramite contenitori di guasti.

    • Implementa gli standard per le implementazioni e le modifiche.

    • Progetta interfacce operatore semplici, intuitive, coerenti e ben documentate.

    • Stabilisci obiettivi per l'eccellenza operativa.

    • Privilegia la stabilità rispetto al rilascio di nuove funzionalità quando la disponibilità è una dimensione critica del carico di lavoro.

    • Implementa le quote di utilizzo con limitazione o riduzione del carico o entrambi per evitare il sovraccarico.

Ricorda che non riusciremo mai completamente a prevenire i fallimenti. Concentrati sulla progettazione di software con il miglior isolamento possibile dei guasti che limiti la portata e l'entità dell'impatto, idealmente mantenendo tale impatto al di sotto delle soglie di «downtime» E investi in un rilevamento e una mitigazione molto rapidi e affidabili. I moderni sistemi distribuiti devono ancora considerare i guasti come inevitabili ed essere progettati a tutti i livelli per garantire un'elevata disponibilità.