Affidabilità del software e semplicità delle architetture

Negli ultimi tempi sto affrontando tematiche relative a DevOps, container e infrastrutture resilienti. E sono sempre più convinto di un pensiero un po’ contro corrente nell’immaginario degli architetti software.

Spesso, per ottenere soluzioni in grado di resistere ai guasti, si realizzano architetture complicatissime. Configurazione e manutenzione di storage e application cluster sono aspetti che hanno impatto sul grado di affidabilità.
La configurazione e il test di sistemi complessi sono attività difficili. Nella mia esperienza di valutazione e revisione di architetture applicative mi è capitato spesso di notare che alla base della scarsa affidabilità di un sistema sono proprio le configurazioni sbagliate delle componenti utilizzate per proteggere dal fallimento.

Mantenere il sistema più semplice possibile, quindi, è un obiettivo da perseguire nella progettazione del software e delle infrastrutture. In certi casi conviene mettere in conto fallimenti, purché accadano di rado. Ripristinare un sistema più semplice è un’attività che avviene in tempi rapidi.

Dunque, quale può essere una strategia vincente? Non cercare di evitare tutti i possibili disastri, ma fare in modo di essere sicuri di poter gestire le conseguenze in modo semplice. Soprattutto quando questo semplifica molto il sistema che stiamo realizzando.

Appassionato di informatica da quando avevo 10 anni, mi diverto ad aiutare i clienti a migliorare il modo di affrontare temi legati allo sviluppo del software ed evoluzione dei sistemi IT. Sono l’Amministratore Delegato di Imola Informatica ma sono spesso anche in laboratorio insieme a tante persone che come me, con diversi livelli di abilità, cercano soluzioni creative e innovative ai problemi che non mancano mai. Ho due figli che cerco di coinvolgere nelle mie passioni. Per ora mi è riuscito solo con lo sci.