Recensione

 

Titolo: L’arte del Rilascio – progettazione e deploy di software che funziona

Autore: Michael T.Nygard

Editore: Apogeo

Anno pubblicazione:  2018 Ed.Italiana

ISBN: 978-8850334674

 

Sei pronto? Se non ti bastano le recensioni (o gli acquisti) di Clean Code e Clean Architecture significa che sei uno tosto, quindi devi assolutamente leggere anche questa.

Altre trecentotrentatre pagine non ti possono certo spaventare ma L’arte del Rilascio sarà il tuo prossimo libro? O è la fotocopia di una parte degli altri due libri suddetti? Ti interessa la programmazione agile?

Scopriamolo insieme…

 

Di cosa parla il libro?

Nygard ha raccolto in questo libro una serie di casi di studio reali in cui sistemi software distribuiti hanno fatto perdere soldi a palate per colpa di bug o codice scritto in maniera non sicura, quindi attaccabile da eventi esterni di varia natura.

L’obiettivo dell’autore è di suggerire soluzioni (anche con agile methodology) sulla base dei fallimenti evidenziati nei casi di studio, in sostanza come sviluppare software e rilasciarlo al mondo in maniera da dormire sonni tranquilli. In teoria…

Il libro comunque è rivolto a sviluppatori e architetti di sistemi software distribuiti, quindi sviluppatori di software non distribuito e tutte le altre categorie non leggetelo, non apprezzereste il reale significato della sterminata serie di consigli che Nygard ha scritto in queste pagine.

Dimenticavo, l’autore inoltre consiglia la lettura a tutti coloro che rischiano di essere licenziati perchè il software ha smesso di funzionare…

I contenuti

Il libro si compone di 17 capitoli per un totale, come dicevo all’inizio, di circa 333 pagine; inoltre sul sito dell’editore inglese è possibile scaricare il codice degli esempi illustrati.

Suddiviso in quattro parti, ogni parte inizia con un caso di studio reale e i successivi capitoli ne illustrano i problemi e le soluzioni.

 

Parte Prima

Il primo capitolo, Vivere in Produzione, è una introduzione perfetta alla realtà di moltissime aziende che sviluppano software distribuito, in cui esistono architetti che l’autore definisce di due tipi: da torri d’avorio e pragmatici.

I primi impongono l’architettura che hanno progettato mentre i secondi la discutono con gli sviluppatori membri del team. Quale sarà l’architetto migliore e quale sarà il progetto vincente, che riuscirà a terminare e andare in produzione senza causare danni?

Il secondo capitolo, Caso di studio: bloccati a terra da un’eccezione non è un caso di studio, è il racconto di tre ore di panico avvenuto per un problema al sistema di check-in di una compagnia aerea in cui Nygard era uno dei membri del team; il racconto di cosa successe e come fece a scoprire il problema, leggere il listato del codice sorgente che disassemblò mi ha fatto scaturire un piccolo senso di panico. E non puoi immaginare quale istruzione originò l’errore. Non posso dirtelo, devi leggerlo da solo.

Con il terzo capitolo, Stabilizzare il sistema, Nygard inizia ad analizzare, in maniera concettuale, il problema del caso di studio precedente dando una definizione di stabilità e suggerendo come arrestare la propagazione di un errore visto che un errore provoca guasti a catena.

Nel quarto capitolo, Antimodelli di stabilità, l’autore invece punta il dito contro i comportamenti e le abitudini che possono creare e moltiplicare falle nel sistema che si sta sviluppando: i protocolli basati su socket, HTTP, librerie API esterne, gli utenti indesiderati e quelli pericolosi, i thread bloccati, gli attacchi self-denial e molto altro; il quinto capitolo al contrario è dedicato a tutte quelle pratiche che consentono di ridurre ai minimi termini le crepe nei sistemi, eccone qualcuno: i timeout, il circuit breaker, l’handshaking e il disaccoppiamento del middleware.

 

Parte Seconda

Sesto capitolo, secondo caso di studio: questa volta il racconto al cardiopalmo riguarda un sito online di e-commerce, ovviamente di grandi proporzioni, che andò in tilt nel periodo del Black Friday e Nygard, insieme al team, scongiurò il disastro adottando una soluzione da lui stesso dichiarata non ideale.

A partire dal settimo e fino all’undicesimo capitolo troverai la descrizione riguardo una valanga di modelli per il controllo e l’availability nei data center fisici e negli ambienti cloud; l’autore lo definisce Vivere in produzione l’avere a che fare con i dettagli complessi degli ambienti di produzione quali il load balancing e la virtualization.

Un lungo percorso in cui vengono descritti i file di configurazione, il logging, le metriche di istanza, i controlli di integrità, come preparare un piano di controllo e gestire la sicurezza.

 

Acquista L'arte del Rilascio - progettazione e deploy di software che funziona

 

Parte Terza

Il dodicesimo capitolo è il terzo Caso di studio, una ennesima lettura a ritmo sincopato, ma i successivi due capitoli, il  tredicesimo e il quattordicesimo, ti porteranno a scoprire come progettare applicazioni per semplificarne la distribuzione.

Alcuni tra gli argomenti discussi? Il deployment automatico e continuo e la gestione del versioning con modifiche alle API senza e con interruzioni.

 

Parte Quarta

Quarto ed ultimo Caso di studio: sommersi dai clienti è l’oggetto del quindicesimo capitolo, la testimonianza diretta dell’autore riguardo un sito web che andò in crash dopo mezz’ora dal suo avvio e dopo 3 mesi di test di carico.

Gli ultimi due capitoli del libro, il sedicesimo (Adattamento) e il diciassettesimo (Ingegneria del caos) esplorano le problematiche riguardo le difficoltà di adattamento dei team alle architetture che cambiano e alla teoria che rompere le cose serve a rafforzarle.

 

Aspetti Positivi:

Un ottimo libro da “esplorazione”, offre panoramiche dettagliate riguardo problematiche reali su ambienti distribuiti.

I casi di studio sono testimonianze eccezionali di una persona che ha vissuto in prima persona gli eventi e ha fornito una sua personale visione dei motivi di tali “disastri” e soprattutto una serie di consigli, suggerimenti e moniti per prevenire questi ultimi, anche utilizzando la programmazione agile.

Aspetti Negativi:

Nessuno.

 

Se desideri acquistare il libro, puoi farlo cliccando direttamente sul link o sulla copertina qui sotto. Grazie per il tempo che hai dedicato!

 

Acquista L'arte del Rilascio - progettazione e deploy di software che funziona

🔥285
Vota questo articolo

Lascia un commento

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