Ciao, e benvenuto nella prima puntata della settantunesima stagione. Nella stagione scorsa abbiamo smontato un solo computer, e visto come il sistema operativo crea per ogni programma l'illusione di possederlo tutto. Oggi facciamo il passo successivo, e il più ambizioso: prendiamo tanti computer, sparsi magari in mezzo mondo, e proviamo a farli sembrare uno solo. Benvenuto nel mondo dei sistemi distribuiti, dove la posta in gioco è enorme e le trappole sono più subdole di quanto immagini.
Partiamo dal perché ci mettiamo in questo guaio, perché nessuno lo fa per il gusto di complicarsi la vita. Ci sono due motivi grossi. Il primo è la scala: un computer solo, per quanto potente, ha un limite. A un certo punto gli utenti sono troppi, i dati sono troppi, il lavoro è troppo, e nessuna macchina singola ce la fa. L'unica via è dividere il carico su tante macchine che lavorano insieme. Il secondo motivo è l'affidabilità: un computer solo, prima o poi, si rompe. Se tutto dipende da lui, quando cade cade tutto. Ma se il lavoro è spalmato su tante macchine, la caduta di una non ferma il servizio. Scala e resistenza ai guasti: sono queste le due promesse.
Ed ecco la magia, quella che ci vendono ogni giorno. Tu apri un servizio nel cloud, e sembra un unico computer immenso, sempre acceso, che non si rompe mai, potente quanto ti serve. Carichi una foto e la ritrovi dall'altra parte del pianeta un istante dopo. Il servizio regge milioni di persone insieme senza fare una piega. Sembra un solo, gigantesco cervello elettronico. È il nome che diamo alla magia: il computer unico e infallibile. E come sempre, oggi cominciamo a guardare cosa c'è davvero dietro.
Vediamo la verità che si nasconde sotto, perché cambia tutto. Dietro quella facciata liscia non c'è un unico computer immenso: ci sono tante macchine separate, ognuna col suo processore, la sua memoria, il suo pezzo di lavoro, che si parlano tra loro. E qui sta il punto cruciale, quello che rende questa materia diversa da tutto: quelle macchine non condividono niente. Nella scorsa stagione, dentro una macchina sola, tutti i programmi condividevano la stessa memoria e lo stesso orologio, e potevano fidarsi l'uno dell'altro. Qui no. Ogni macchina è un'isola, con la sua memoria che nessun altro vede, il suo orologio che va per conto suo, e l'unico modo di parlare con le altre è mandare messaggi attraverso un filo.
E quel filo, la rete, è il vero protagonista di tutta la stagione, e non è un amico. Mandare un messaggio da una macchina all'altra non è come chiamare una funzione dentro lo stesso programma. Il messaggio può arrivare in ritardo, può perdersi per strada, può arrivare doppio, può arrivare quando ormai non serve più. E, cosa peggiore di tutte, il filo può proprio spezzarsi, lasciando due gruppi di macchine che non riescono più a parlarsi, ognuno convinto che l'altro sia sparito. Tutta la difficoltà dei sistemi distribuiti nasce da qui: da come far cooperare macchine che possono fallire da sole e che si parlano attraverso un canale inaffidabile.
C'è un'immagine che useremo per tutta la stagione, ed è quella di un'azienda con tante filiali sparse nel mondo. Ogni filiale è una macchina: ha i suoi impiegati, i suoi registri, il suo lavoro. Le filiali non si vedono e non condividono l'archivio: l'unico modo di coordinarsi è scriversi, telefonarsi, mandarsi messaggeri. E il sistema di comunicazione è quello che è: le lettere ritardano, le telefonate cadono, a volte una filiale non risponde e non sai perché. Far funzionare l'azienda come se fosse un ufficio unico, ordinato e coerente, quando in realtà è un arcipelago di uffici che si parlano a fatica, è esattamente il mestiere dei sistemi distribuiti.
Voglio lasciarti con il cambio di prospettiva che ci guiderà. La promessa dei sistemi distribuiti è splendida: superare i limiti di una macchina sola e sopravvivere ai guasti. Ma quella promessa non è gratis. In cambio della scala e della resistenza, accetti un nemico nuovo e implacabile: la distanza, e l'inaffidabilità di tutto ciò che sta in mezzo. Non hai eliminato i problemi di un computer solo: li hai scambiati con problemi diversi, più difficili, e a volte senza soluzione perfetta. Capire i sistemi distribuiti significa proprio questo: sapere cosa guadagni, sapere cosa paghi, e riconoscere dove l'illusione dell'unico computer si spezza.
Per oggi ci fermiamo qui. Abbiamo aperto la stagione con l'ambizione più grande: far sembrare uno solo tanti computer sparsi. Lo facciamo per due motivi seri, la scala oltre i limiti di una macchina e la resistenza ai guasti. La magia che ci vendono è il computer unico e infallibile del cloud; la verità sotto è un insieme di macchine separate, ognuna un'isola senza memoria condivisa né orologio comune, che possono parlarsi solo mandando messaggi lungo un filo inaffidabile. Quel filo, la rete, ritarda, perde, duplica e a volte si spezza, ed è da lì che nasce ogni difficoltà. Come un'azienda di filiali che si coordinano solo per posta. La scala e la resistenza non sono gratis: le paghi con un nemico nuovo. Nella prossima puntata: il nemico si chiama rete. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.