Saturday’s Talks: del disservizio AWS, di Pacemaker, di STONITH e dell’illusione che il cloud elimini gli SPOF

C’è stato un tempo, poco dopo aver capito che Linux e l’open-source sarebbero stati la mia vita (professionale, si intende) in cui è sbocciato dentro di me il primo vero amore, che si riassumeva in un concetto che nel corso degli anni ha più volte cambiato senso. Sto parlando dell’Alta Affidabilità, in inglese High Availability o HA.

Lo so, in realtà la traduzione letterale del termine inglese sarebbe Alta Disponibilità, ma ho sempre preferito la parola Affidabilità poiché in esse ci trovavo tutto il suo obiettivo: garantire continuità nei servizi erogati a fronte di problematiche più o meno importanti.

Ai tempi, stiamo parlando della metà degli anni 2000, questa categoria di servizi era tutta raggruppata sotto la parola “cluster”. E non si parlava di cluster Kubernetes con 3 nodi a fare da control plane e mille altri nodi a fungere da worker. No, il classico cluster era quello a due nodi. Tipicamente Active/Passive. Se moriva uno, l’altro saliva a prenderne il posto.

In questo che appare un semplice principio, in realtà erano racchiuse decine di migliaia di implicazioni tecniche. La concorrenza dei dati, il locking dei file, la gestione degli stati delle macchine, e via dicendo. Tutti questi comportamenti andavano programmati e gestiti attraverso strumenti e tool di una complessità disarmante.

In principio c’era Heartbeat (parte del progetto Linux HA), tempo dopo è arrivato Pacemaker, che modernizzava (aumentando ulteriormente però la complessità di gestione) l’approccio e consentiva una gestione più organica dei nodi e delle risorse.

Con Pacemaker è stato subito amore: ne ho curato la traduzione italiana e sono finito a lavorare per un certo periodo anche con il suo creatore, Andrew Beekhof quando entrambi lavoravamo al progetto OpenStack. Inizialmente infatti, la parte HA di OpenStack era gestita mediante Pacemaker. Tutti i servizi che permettevano a OpenStack di funzionare erano singoli processi gestiti all’interno di un cluster Pacemaker che, in maniera autonoma (frutto di una configurazione molto, molto complessa) gestiva il ciclo di vita e la sopravvivenza dei servizi.

Tutta questa lezione di storia, probabilmente inutile ai più, torna però comoda per parlare di un concetto che tutte le tecnologie sopra descritte lavoravano per eliminare: lo SPOF.

Il Single Point Of Failure è da sempre il nemico giurato di quanti lavoravano ai cluster e rappresenta una o più componenti che, se interrotte, impattano sul funzionamento generale di un servizio.

Quel Pacemaker di cui scrivevo poco fa era nato esattamente con l’idea di eliminare gli SPOF, poiché autonomamente era in grado di riavviare e spostare risorse e, nel caso, uccidere nodi dei quali non si riusciva a decifrare lo stato, attraverso la tecnologia descritta da un altro acronimo a cui sono molto affezionato, ossia STONITH, cioè Shoot The Other Node In The Head.

Solo che, ad un certo punto, con l’avvento del cloud tutto è cambiato. Perché mai qualcuno avrebbe dovuto preoccuparsi di gestire questioni come la sopravvivenza (o meno) dei nodi in un contesto cloud, venduto come sempre attivo? Le stesse tecnologie cloud native, in primis Kubernetes, non si devono più porre il problema degli SPOF, poiché sono resilienti by design, per così dire.

E questo è un bene per un uomo del passato come me.

Solo che poi ci sono le notizie. C’è il fatto che nell’ottobre 2025, migliaia di utenti del cloud provider AWS hanno subito un disservizio globale, ed a quanto pare il motivo di tale disservizio è riassunto proprio da quell’acronimo: SPOF.

Nell’articolo di ARS Technica viene indicato come Amazon ha attribuito la causa del disservizio a un bug nel software che gestisce il sistema DNS interno su cui si basa DynamoDB..

Ora, uno potrebbe pensare: shit happens, i problemi capitano. Eppure questo problema, avvenuto sul più importante cloud provider del mondo, evidenzia che quel Nirvana senza SPOF che i sysadmin stanno cercando di raggiungere da sempre è ben lontano dall’essere realtà.

Tutto il resto è solamente un’illusione. Il fatto che usare il cloud sollevi chi crea e gestisce i servizi dal doversi preoccupare di “cosa succede se” è, scusate il francesismo, una cazzata. Leggete ad esempio la storia apparsa su DevOps.com, dove viene descritto l’effetto a cascata del disservizio su un ambiente che utilizzava l’auto scaling per ovviare a questi problemi.

È impressionante e ricorda tantissimo uno di quei momenti in cui guardavi il tuo cluster Pacemaker, che pensavi fosse costruito a regola d’arte, iniziare a fare fencing (ossia l’uccisione, parte dello STONITH descritto prima) a rotazione su tutti i sistemi, trovandoti nella condizione in cui la tecnologia che doveva salvarti, in realtà ti stava affondando.

Perché sì, succedeva molto spesso, ed evidentemente succede molto anche oggi.

Convinciamoci che il cloud non è la panacea di tutti i mali.

Convinciamoci che pensare a qualcun altro a cui demandare la resilienza dei nostri sistemi, vedi ad esempio l’IA, non è mai la scelta più indicata.

E non lo dico io, è una questione di fatti.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

5 risposte a “Saturday’s Talks: del disservizio AWS, di Pacemaker, di STONITH e dell’illusione che il cloud elimini gli SPOF”

  1. Avatar Giok
    Giok

    Eliminare completamente il SPOF è una mera illusione, i sistemi attuali sono così complessi che prevedere tutti gli scenari di fallimento possibili è praticamente impossibile. Bisogna rassegnarsi al fatto che non si potrà mai avere un uptime del 100% e che l'unica cosa fattibile alla fine è solo quella di minimizzare quanto più possibile l'inevitabile downtime.

    Convinciamoci che pensare a qualcun altro a cui demandare la resilienza dei nostri sistemi, vedi ad esempio l’IA, non è mai la scelta più indicata.

    Nel caso delle IA sfortunatamente sembra essere sempre più spesso l'unica scelta possibile a meno di non avere ingenti risorse economiche da dedicare all'acquisto della potenza di calcolo necessaria per far funzionare i modelli più grandi. Quello che però si può fare in questi casi è prevedere l'uso di diversi sistemi in modo intercambiabile così da avere un minimo di fault tolerance.

    In conclusione vorrei spezzare una lancia, anzi una "lancetta", in favore dei sistemi in cloud che ti semplificano un po' la vita perché, a differenza dei sistemi proprietari, in caso di problemi non sei tu a dovertene occupare. Detto questo personalmente continuo a preferire la gestione diretta quando possibile sia per una questione di costi ma soprattutto per una questione di controllo anche se, per citare un famoso film: "a grandi poteri corrispondono grandi responsabilità" 🙂

  2. Avatar mimmus
    mimmus

    A quanto pare, il problema di AWS non è stato dovuto strettamente al DNS in quanto tale ma ad un pezzo di codice che doveva aggiornare un record, non adeguato per gestire la concorrenza: una classica "race condition" ha provocato l'inserimento di un record vuoto.
    Possiamo tranquillamente affermare che contro questo tipo di problemi NON C'E' NIENTE DA FARE se non, come sempre, semplificare-semplificare-semplificare. Ma non mi sembra che sia la strada verso cui stiamo andando…

  3. Avatar Raoul Scarazzini

    Esattamente! Ti dico solo che in questi giorni sto testando Kubevirt. A proposito di semplificazione…

  4. Avatar Raoul Scarazzini

    Ma infatti è sempre (e solo) questione di organizzazione e, soprattutto, di competenze.

  5. Avatar mimmus
    mimmus

    Kubernetes, a prezzo di qualche onere di gestione, è la piattaforma "unificata" perfetta per gestire sia per il mondo cloud-native a microservizi sia quello legacy, che ha ancora bisogno di virtual-machine sia, aggiungo, anche l'infrastruttura cloud, attraverso controller specializzati, spesso forniti dagli stessi provider

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *