

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

# Aumentare la resilienza e migliorare l'esperienza del cliente utilizzando l'ingegneria del caos su AWS
<a name="introduction"></a>

*Laurent Domb, responsabile tecnico, Federal Financials, Amazon Web Services*

*[Aprile 2025 (storia del documento)](doc-history.md)*

L'ingegneria del caos è la disciplina che consiste nella sperimentazione su un'applicazione per aumentare la fiducia nella capacità dell'organizzazione e dell'applicazione di resistere a condizioni di produzione turbolente. Si tratta di un approccio proattivo alla resilienza, con l'obiettivo di verificare se l'applicazione e l'organizzazione sono in grado di assorbire, adattarsi e infine riprendersi dai problemi del servizio introducendo guasti controllati tra persone, processi e tecnologie. L'intento è anche quello di identificare ed eliminare i punti deboli prima che possano causare interruzioni o altre interruzioni della produzione.

In Amazon, sappiamo che il fallimento è inevitabile nei sistemi distribuiti, al punto che funzionare nonostante la presenza di guasti è una modalità operativa normale. Poiché le interazioni tra i servizi sono destinate a fallire, è necessario comprendere come reagiscono i servizi durante le varie modalità di errore e creare servizi resilienti a vulnerabilità chiave come errori di dipendenza, tempeste di tentativi, zone di disponibilità compromesse e esaurimento delle risorse dell'host.

Prendiamo l'esempio di un Retry Storm. Un errore localizzato in un client può avere un impatto significativo su più servizi. Questo effetto viene comunemente chiamato effetto *farfalla*. Una *tempesta di tentativi* è una manifestazione dell'effetto farfalla, in cui una dipendenza non funzionante spinge i client, e i client di tali client, a riprovare l'operazione fallita, con conseguente crescita esponenziale del traffico. I servizi si sovraccaricano perché devono rispondere al traffico regolare oltre a ripetere il traffico, gestendo al contempo un peggioramento delle prestazioni.

L'ingegneria del caos è emersa come risposta alla crescente complessità dei sistemi distribuiti. È un approccio multidisciplinare che combina i principi della teoria del caos, del pensiero sistemico e dell'ingegneria per progettare e gestire sistemi complessi resistenti a eventi e comportamenti imprevisti. Fondamentalmente, l'ingegneria del caos si occupa della comprensione e della gestione del comportamento di sistemi complessi in condizioni di incertezza e imprevedibilità. Riconosce che gli approcci tradizionali all'ingegneria, che si basano sulla previsione e sul controllo dei risultati, sono spesso insufficienti per affrontare la natura complessa e dinamica dei sistemi distribuiti. Man mano che questi sistemi crescono, spesso superano l'ambito di comprensione di ogni singolo individuo.

L'ingegneria del caos fornisce concetti, tecniche e strumenti per iniettare intenzionalmente i guasti nei sistemi e scoprire i punti deboli prima che si manifestino in produzione. Questo approccio proattivo consente alle organizzazioni di acquisire la certezza che i propri sistemi funzioneranno in condizioni di stress. Sebbene l'ingegneria del caos sia ancora una pratica in evoluzione, rappresenta un cambiamento fondamentale verso la progettazione, la gestione e il funzionamento dei sistemi informatici moderni per renderli resilienti di fronte alla crescente complessità e interconnessione.

Le seguenti sezioni di questa guida illustrano i vantaggi dell'ingegneria del caos, spiegano come condurre esperimenti di ingegneria del caos e descrivono gli approcci che è possibile adottare per implementare l'ingegneria del caos su larga scala all'interno dell'organizzazione. Sono inclusi anche esempi di documenti di pianificazione degli esperimenti e dei risultati degli esperimenti che è possibile utilizzare come modelli per gli esperimenti di ingegneria del caos.
+ [Panoramica](overview.md)
+ [Guida introduttiva all'ingegneria del caos](getting-started.md)
+ [Attuazione dell'ingegneria del caos su AWS](implementation.md)
+ [Ciclo di vita continuo degli esperimenti di ingegneria del caos](lifecycle.md)
+ [Scalare l'ingegneria del caos in tutta l'organizzazione](scaling.md)
+ [Conclusione](conclusion.md)
+ [Risorse](resources.md)
+ [Appendice: documenti di esempio](appendix.md)

La sezione successiva esplora in che modo le caratteristiche dell'ingegneria del caos differiscono dai tradizionali test di resilienza come i test di unità, di fumo o di integrazione.