L’arte del Rilascio – Progettazione software (Recensione)

Recensione libri

Quella che stai per leggere è la recensione del libro L’arte del Rilascio, una serie ben elencata di storie e aneddoti sull’arte del progettare software e rilasciarlo.

Quanto sei preparato sulla progettazione software? Se non ti bastano le recensioni (o gli acquisti) di Clean Code e Clean Architecture, un libro sulle architetture software, significa che sei uno tosto, quindi devi assolutamente leggere anche questa.

 

Ecco un libro sulla Progettazione Software

 

Titolo: L’arte del Rilascioprogettazione e deploy di software che funziona progettare software

Autore: Michael T.Nygard

Editore: Apogeo

Anno pubblicazione:  2018 Ed.Italiana

ISBN: 978-8850334674

 

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 progettazione software?

Scopriamolo insieme…

 

Di cosa parla L’arte del rilascio

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 di L’arte del rilascio

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.

 

L’arte del Rilascio – 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 ma 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, ecco il secondo caso di studio: questa volta il racconto al cardiopalmo riguarda un sito online di e-commerce e 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 invece 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 di Apogeo Edizioni

 

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

 

Prima di lasciarti andare ti segnalo la recensione del libro di Martin Fowler L’arte del Refactoring, una raccolta di appunti dell’autore su quando e perchè fare refactoring.

Se desideri acquistare il libro L’arte del Rilascio, puoi farlo cliccando direttamente sul link o sulla copertina qui sotto e… grazie per il tempo che hai dedicato a questa lettura!

 

Acquista L’arte del Rilascio Progettazione e deploy di software che funziona di Apogeo Edizioni

🔥438 volte è stato letto questo articolo
Se ti è piaciuto questo articolo, lascia le tue stelle!

Lascia un commento

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