The Abstention Protocol: RCA for Clos Fabrics
Questo articolo introduce CoreSec, un sistema di analisi della causa radice in produzione per fabric Clos su larga scala che sostituisce l'instabile fusione basata su punteggi con un'algebra dell'astensione deterministica in stile PAM per ottenere un'attribuzione dei guasti stabile, spiegabile e monotona in ambienti di telemetria rumorosi.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Nella vasta, ronzante architettura del moderno cloud computing, i dati non scorrono attraverso un singolo tubo, ma attraverso una rete di connessioni intricata e multistrato. Immaginate una città in cui ogni edificio è collegato a uno switch di quartiere, che a sua volta si collega a un hub di distretto, il quale infine si connette a una spina dorsale centrale. Questa struttura, nota come fabric Clos, permette a milioni di server di comunicare tra loro con una velocità e una ridondanza incredibili. Se un percorso è bloccato, il traffico trova semplicemente un'altra via. Grazie a questo design, il sistema è incredibilmente resiliente; può assorbire migliaia di piccoli guasti casuali ogni giorno — come un cavo allentato, una luce intermittente o un breve intoppo del software — senza che l'utente medio se ne accorga mai. Tuttavia, questo costante rumore di fondo crea un problema profondo per gli ingegneri che gestiscono il sistema. Quando un servizio specifico fallisce per un cliente, il sistema si illumina con centinaia di avvisi. La sfida non è trovare le parti rotte, ma capire quale tra quelle molteplici parti danneggiate abbia effettivamente causato il guasto specifico.
Per anni, il modo standard per risolvere questo enigma è stato quello di assegnare un punteggio a ogni segnale di avviso. Se un cavo presentava un alto numero di errori, riceveva un punteggio alto. Se uno switch si riavviava, riceveva un punteggio. Il sistema sommava questi punteggi, e l'entità con il totale più alto veniva incolpata del problema. Questo approccio funzionava abbastanza bene quando la rete era calma, ma in un ambiente hyperscale, spesso falliva. Poiché c'è sempre del rumore di fondo, il sistema trovava frequentemente un "colpevole" anche quando non c'era nulla di veramente sbagliato, oppure incolpava il dispositivo errato perché i punteggi erano troppo vicini per essere distinti. Gli ingegneri scoprirono che cercare di perfezionare questi punteggi per correggere un tipo di errore finiva per compromettere accidentalmente la capacità del sistema di rilevare un altro. Il risultato era un ciclo di incertezza, in cui le riparazioni automatizzate venivano talvolta innescate da falsi allarmi, peggiorando la situazione anziché migliorarla.
Per risolvere questo problema, un team di Microsoft ha sviluppato un nuovo sistema chiamato CoreSec, che cambia la logica fondamentale di come vengono prese queste decisioni. Invece di sommare i punteggi, il nuovo sistema tratta l'indagine come una serie di controlli rigorosi e indipendenti, simili al modo in cui un sistema di sicurezza verifica l'identità di una persona. In un edificio ad alta sicurezza, una guardia potrebbe richiedere una password, un'impronta digitale e una tessera magnetica. Se la password manca, la guardia non indovina; semplicemente nega l'accesso e interrompe il processo. CoreSec applica questa stessa logica di "astensione" ai guasti di rete. Assegna ruoli specifici a diversi tipi di dati. Alcuni segnali sono obbligatori: se un pezzo critico di evidenza è mancante o obsoleto, il sistema rifiuta di prendere una decisione. Altri segnali sono sufficienti da soli: se viene trovato un errore specifico e inequivocabile, il sistema smette di cercare e nomina immediatamente la causa.
Il sistema esegue cinque diverse investigazioni in parallelo, ognuna delle quali analizza un diverso livello della rete, dai singoli cavi che collegano i server ai massicci switch di spina dorsale che reggono l'intero fabric. Ogni investigazione utilizza il proprio set di regole per decidere se ha prove sufficienti per votare una specifica causa. Se l'evidenza è chiara, vota. Se l'evidenza è mancante o contraddittoria, si astiene. Questo è un cambiamento crucialo. Nel vecchio sistema, il computer era costretto a scegliere un vincitore anche quando non conosceva la risposta. Nel nuovo sistema, ammettere l'ignoranza è un risultato valido e utile. Quando il sistema si astiene, comunica agli ingegneri umani: "Non posso ancora esserne sicuro", e consegna il caso loro con un riepilogo chiaro di quali dati mancassero. Ciò evita che il sistema faccia ipotesi sicure ma errate che potrebbero innescare riparazioni automatizzate non necessarie e potenzialmente dannose.
Una volta concluse le cinque investigazioni parallele, un secondo livello di logica interviene per combinare i risultati. Questa logica comprende la forma fisica della rete. Sa che se un singolo switch fallisce, potrebbe influenzare alcuni server, ma se un hub di livello superiore fallisce, causerà un effetto a catena che farà apparire molti switch malati contemporaneamente. Il sistema utilizza regole semplici e predefinite per decidere quale livello sia realmente responsabile. Ad esempio, se un alto livello di switch è sospettato, il sistema controlla se almeno due terzi degli switch più piccoli collegati ad esso mostrano anch'essi problemi. Se è così, il sistema conclude che lo switch di alto livello è la causa principale e ignora i singoli switch sottostanti. Questo evita che il sistema venga distratto dai sintomi e incolpi il livello errato della rete.
I risultati dell'implementazione di questo sistema in oltre sessanta regioni del cloud Azure sono stati sorprendenti. Nel corso di tre anni, il sistema ha elaborato più di 700.000 incidenti. Il tasso di falsi allarmi, ovvero i casi in cui il sistema incolpava un dispositivo sano, è sceso da quasi il venti per cento a meno dell'uno per cento. Allo stesso tempo, il numero di volte in cui il sistema identificava correttamente il problema senza bisogno dell'intervento umano è aumentato significamente. Forse la cosa più importante è che il sistema ha eliminato la necessità di tre ingegneri a tempo pieno per revisionare e riconciliare manualmente i dati contrastanti per ogni incidente. Gli ingegneri che prima passavano ore a districare questi nodi ricevono ora un rapporto chiaro e strutturato che dice esattamente cosa il sistema ha trovato, cosa non è riuscito a decidere e dove dovrebbero guardare successivamente.
Il successo di CoreSec risiede nel suo rifiuto di tirare a indovinare. Trattando la fusione di diverse fonti di dati come un problema di composizione piuttosto che come un gioco di punteggi, il sistema raggiunge un livello di stabilità che era precedentemente impossibile. Non si affida a complessi modelli di machine learning che potrebbero cambiare comportamento man mano che la rete evolve. Inveve, utilizza un set fisso di regole logiche che si sono dimostrate efficaci su hardware diversi, pattern di traffico differenti e design di datacenter diversi, senza necessità di essere ricalibrate. Il sistema ha dimostrato che, in un mondo di informazioni rumorose e incomplete, lo strumento più potente è spesso la capacità di dire: "Non lo so", e attendere prove migliori. Questo approccio ha trasformato l'analisi della causa radice da un gioco di probabilità in un processo affidabile e spiegabile, permettendo al cloud di rimanere stabile anche mentre continua a crescere in dimensioni e complessità.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.