Only Build Your Binaries Once

Only Build Your Binaries Once

 06 Jan 2023 -  Giulio Vian

Uno dei principi evidenziati da Continuous Delivery   , già molti anni fa, è Only Build Your Binaries Once (Cap.5 p.113), traducibile con costruisci i tuoi binari una sola volta. Come accade a tutti i bravi principi, la sua formulazione è semplice ma le ramificazioni numerose. Quest’oggi cercherò di sviluppare le principali conseguenze e chiarire i motivi che giustificano il principio di generare i binari una volta sola. Prima di addentrarci bisogna chiarire che il termine “binari”, nel contesto degli autori originali ma anche in questo articolo, comprende ogni genere di artefatti prodotti dalla continuous integration (ossia la build) ed in particolare i pacchetti di installazione o distribuzione.

Leggi di più… ( ~7 Min.)
La pipeline CI/CD nel 2023

La pipeline CI/CD nel 2023

 24 Dec 2022 -  Giulio Vian

Ecco un lungo articolo in tempo per le vacanze natalizie. Oggi voglio darvi una panoramica su cosa prevedere in una moderna pipeline di Continuous Integration / Continuous Delivery (CI/CD). Com’è mio solito non mi focalizzerò su specifiche tecnologie quanto sul processo, limitando ad accenni di prodotti e soluzioni tecniche, quel tanto da esemplificare i concetti. A mio modesto parere, il migliore approccio per disegnare un processo, od anche un’architettura, è di procedere a ritroso, dall’obiettivo finale con i suoi requisiti fondamentali, all’indietro fino alla pianificazione dell’evoluzione del prodotto.

Leggi di più… ( ~17 Min.)
Rilasci non-funzionali

Rilasci non-funzionali

 10 Dec 2022 -  Giulio Vian

Cosa sono i rilasci non-funzionali? È presto detto: sono rilasci “tecnici” senza alcun cambiamento funzionale. Qualcuno si chiederà che senso abbia un rilascio senza modifiche al codice. Facile, non cambia il codice ma qualcosa al contorno che non è rilasciabile separatamente. Il caso più comune oramai è dover aggiornare una libreria vulnerabile con una versione più sicura, reimpacchettare e rilasciare di nuovo. Purtroppo negli ultimi anni il ritmo di questi cambiamenti è mutato drasticamente ed impatta noi e le nostre applicazioni!

Leggi di più… ( ~10 Min.)
Pacchettini o Containers?

Pacchettini o Containers?

 10 Oct 2022 -  Giulio Vian

In un precedente articolo ho considerato il principio che DevOps raccoglie da Lean, ossia l’importanza di minimizzare la dimensione dei rilasci. In Lean si parla di small batches, trattandosi di software riduciamo per quanto possibile la quantità di modifiche presenti in un rilascio. Con dei semplici esempli spero di aver dimostrato i vantaggi che se ne ricavano e come l’automazione sia conseguenza di minimizzare il peso dei nostri rilasci.

Leggi di più… ( ~5 Min.)
Automatizzare? Sempre!

Automatizzare? Sempre!

 30 Sep 2022 -  Giulio Vian

Alcuni anni fa ho tenuto una conferenza, dal titolo “Automate? Always!” (Automatizzare? Sempre!), per stimolare una discussione sull’automazione nell’ingegneria del software. Oggi metto per iscritto l’argomento di quella presentazione sperando di raggiungere un pubblico più vasto. Nota: in questo post mi riferisco a qualsiasi automazione nel ciclo di vita dello sviluppo software: spaziando dalle macro dell’editor agli script di distribuzione (con un’enfasi su questi ultimi). Per favore pazienta, perché questo post sarà un po’ più lungo degli altri, e considera che ci sarebbe da dire di più che un singolo articolo.

Leggi di più… ( ~7 Min.)
DevOps è solo automazione?

DevOps è solo automazione?

 09 Sep 2022 -  Giulio Vian

Un grosso equivoco su DevOps è che il suo scopo sia automatizzare. Nulla di più errato. L’automazione è un mezzo per un fine assai diverso. Il fine di DevOps è ottimizzare, massimizzare, il valore fornito agli utenti mediante la catena del lavoro IT. Per massimizzare il valore dobbiamo ridurre le dimensioni dei nostri rilasci. Rilasci con meno funzionalità ma più frequenti. Rilasci più frequenti sono meno efficienti se pensiamo di gestirli manualmente.

Leggi di più… ( ~3 Min.)
Cos'è l'architettura?

Cos’è l’architettura?

 02 Sep 2022 -  Giulio Vian

Le definizioni sono importanti e quando sento usare il termine architettura in riferimento a classi e pattern di programmazione interni ad un programma mi trovo in difficoltà. Probabilmente è un mio problema, così son andato a vedere cosa si dice in letteratura e non siamo in una situazione esaltante. Martin Fowler in Software Architecture Guide (martinfowler.com)   menziona due approcci: the shared understanding that the expert developers have of the system design

Leggi di più… ( ~3 Min.)
Blog aggiornato con Hugo e GitHub Actions

Blog aggiornato con Hugo e GitHub Actions

 25 Apr 2020 -  Giulio Vian

Tre anni fa scrivevo di come avevo migrato il contenuto del blog su Azure DevOps (da notare che aveva un nome diverso all’epoca). Oggi invece scrivo di come ho migrato il tutto su GitHub. Ritornando sulla soluzione ho scoperto quanto Hugo   sia evoluto e quante personalizzazioni posso buttare, grazie al principio fondante “le batterie sono comprese”. Oltre ad aver aggiornato la versione di Hugo da 0.24.1 a 0.

Leggi di più… ( ~2 Min.)