REL08-BP03 Integra i test di resilienza come parte della tua implementazione - AWS Well-Architected Framework

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à.

REL08-BP03 Integra i test di resilienza come parte della tua implementazione

Integra i test di resilienza introducendo consapevolmente errori nel sistema per misurarne la capacità in caso di scenari destabilizzanti. I test di resilienza, diversamente dai test funzionali e dagli unit test che di solito sono integrati nei cicli di implementazione, si concentrano sull'identificazione di errori imprevisti nel sistema. Puoi iniziare l'integrazione dei test di resilienza nella fase di pre-produzione, ma stabilisci l'obiettivo di implementare questi test in produzione durante le giornate di gioco.

Risultato desiderato: maggiore fiducia nella capacità del sistema di resistere al degrado nella produzione grazie ai test di resilienza. Gli esperimenti identificano i punti di debolezza che potrebbero causare errori, consentendoti di migliorare il sistema per mitigare automaticamente ed efficacemente errori e danneggiamento.

Anti-pattern comuni:

  • Mancanza di osservabilità e monitoraggio nei processi di implementazione.

  • Dipendenza dagli esseri umani per risolvere gli errori del sistema.

  • Meccanismi di analisi di scarsa qualità.

  • Supporto per i problemi noti del sistema e mancanza di sperimentazione per identificare eventuali incognite.

  • Identificazione degli errori, ma nessuna risoluzione.

  • Nessuna documentazione degli esiti e dei runbook.

Vantaggi dell'adozione delle best practice: i test di resilienza integrati nelle implementazioni consentono di identificare problemi sconosciuti nel sistema che altrimenti passerebbero inosservati, con conseguenti tempi di inattività nella produzione. L'identificazione di queste incognite nel sistema ti consente di documentare gli esiti, integrare i test nel processo CI/CD e creare runbook che semplificano la mitigazione attraverso meccanismi efficienti e ripetibili.

Livello di rischio associato se questa best practice non fosse adottata: medio

Guida all'implementazione

I moduli di test di resilienza più comuni che possono essere integrati nelle implementazioni del sistema sono il ripristino di emergenza e l'ingegneria del caos.

  • Includi aggiornamenti ai piani di disaster recovery e alle procedure operative standard (SOPs) in qualsiasi implementazione significativa.

  • Integra i test di affidabilità nelle pipeline di implementazione automatizzate. Servizi come AWS Resilience Hub possono essere integrati nella pipeline CI/CD al fine di valutare in modo continuo e automatico la resilienza nell'ambito di ogni implementazione.

  • Definisci le tue applicazioni in AWS Resilience Hub. Le valutazioni della resilienza generano frammenti di codice che ti aiutano a creare procedure di ripristino come documenti di AWS Systems Manager per le tue applicazioni e forniscono un elenco di monitor e allarmi Amazon CloudWatch consigliati.

  • Una volta aggiornati i piani di disaster recovery e SOPs i tuoi piani di disaster recovery, completa i test di disaster recovery per verificarne l'efficacia. I test di ripristino di emergenza consentono di determinare se è possibile ripristinare il sistema dopo un evento e tornare alle normali operazioni. Puoi simulare varie strategie di ripristino di emergenza e determinare se la pianificazione è sufficiente a soddisfare i requisiti di operatività. Le strategie di ripristino di emergenza più comuni includono backup e ripristino, pilot light, cold standby, warm standby, standby a caldo e attivo-attivo e si differenziano tutte per costi e complessità. Prima dei test di disaster recovery, ti consigliamo di definire il Recovery Time Objective (RTO) e il Recovery Point Objective (RPO) per semplificare la scelta della strategia da simulare. AWS offre strumenti di disaster recovery AWS Elastic Disaster Recoveryper aiutarvi a iniziare con la pianificazione e i test.

  • Gli esperimenti di ingegneria del caos introducono interruzioni nel sistema, come interruzioni di rete ed errori del servizio. Simulando con gli errori controllati, puoi scoprire le vulnerabilità del sistema contenendo al contempo l'impatto degli errori inseriti. Analogamente alle altre strategie, esegui simulazioni controllate di guasti in ambienti non di produzione, con servizi come AWS Fault Injection Service, per acquisire sicurezza prima dell'implementazione in produzione.

Risorse

Documenti correlati:

Video correlati: