Condividi tramite


Comprendere la progettazione e la resilienza del caos

Prima di iniziare a usare Azure Chaos Studio è utile comprendere i concetti fondamentali relativi alla progettazione dell'affidabilità del sito da applicare.

Che cos'è la resilienza?

Non è mai stato così facile creare applicazioni distribuite su larga scala. L'infrastruttura è ospitata nel cloud e il supporto del linguaggio di programmazione è diversificato. Sono disponibili anche molti componenti e servizi open source e ospitati su cui eseguire la compilazione.

Sfortunatamente, non esiste alcuna garanzia di affidabilità per questi componenti e dipendenze sottostanti o per i sistemi basati su di essi. L'infrastruttura può andare offline e possono verificarsi problemi o interruzioni del servizio in qualsiasi momento. Piccole interruzioni in un'area possono essere ingrandirsi e avere effetti collaterali di lunga durata in un'altra area.

Le applicazioni e i servizi devono pianificare e gestire problemi come:

  • Interruzioni di servizio.
  • Interruzioni di dipendenze note e sconosciute.
  • Carico imprevisto improvviso.
  • Latenze in tutto il sistema.

Le applicazioni e i servizi devono essere progettati per gestire gli errori ed avere una protezione avanzata in caso di interruzioni.

Le applicazioni e i servizi che gestiscono stress e problemi normalmente sono resilienti. L'affidabilità dei singoli componenti è buona, anche se la resilienza è una proprietà dell'intero sistema. La resilienza del sistema end-to-end deve essere convalidata in un ambiente integrato, tipo ambiente di produzione con condizioni e carichi che affrontano in un ambiente di produzione.

Che cosa sono l'ingegneria del caos e l'inserimento di errori?

  • Ingegneria del caos: la pratica di sottoporre applicazioni e servizi a stress ed errori reali. L'obiettivo è creare e convalidare la resilienza in condizioni inaffidabili e con dipendenze mancanti.
  • Inserimento di errori: l'atto di introdurre un errore in un sistema. È possibile usare errori diversi, ad esempio la latenza di rete, la perdita di accesso all'archiviazione o ai componenti di sistema di destinazione. È possibile creare scenari che un'applicazione o un servizio devono essere in grado di gestire o ripristinare.

Un esperimento Chaos è l'applicazione di singoli errori, in parallelo o in modo sequenziale rispetto a una o più risorse o dipendenze della sottoscrizione. L'obiettivo è monitorare il comportamento e l'integrità del sistema in modo da poter agire su ogni problema che si verifica.

Un esperimento può rappresentare uno scenario reale, ad esempio un'interruzione dell'alimentazione del data center o una latenza di rete in un server DNS. Può anche essere usato per simulare condizioni estreme che si verificano. Un esempi è la frenesia degli acquisti durante il Black Friday o quando si vendono i biglietti del concerto di band popolare.