Le linee guida Twelve-Factor App restano una checklist per il software cloud-native
Punti chiave
- •La metodologia Twelve-Factor App è stata sviluppata nel 2011 dal cofondatore di Heroku Adam Wiggins dopo aver osservato schemi applicativi sulla piattaforma Heroku.
- •Il framework promuove deployment cloud ripetibili attraverso una singola base di codice, gestione esplicita delle dipendenze e configurazione fornita tramite l’ambiente.
- •La metodologia considera database, code, cache e altri servizi di supporto come risorse collegate sostituibili.
- •Raccomanda pipeline build-release-run immutabili, processi stateless, port binding, scalabilità basata sui processi e comportamenti di avvio e arresto ordinati.
- •L’articolo afferma che l’elenco originale Twelve-Factor resta utile, ma non affronta pienamente osservabilità moderna, gestione dei segreti, sicurezza o questioni relative alle API.

Towards AI ha pubblicato un articolo intitolato “The Twelve-Factor App: 12 Rules Your App Is Probably Breaking Right Now,” aggiornato da ultimo il July 27, 2026 dall’Editorial Team e originariamente pubblicato su Towards AI.
L’articolo riprende la metodologia Twelve-Factor App, un insieme di linee guida per la progettazione software scritto nel 2011, prima che Docker diventasse ampiamente utilizzato. Il pezzo presenta la metodologia come una checklist che continua a influenzare il modo in cui le applicazioni cloud-native vengono valutate e costruite.
Secondo l’articolo, Adam Wiggins, cofondatore di Heroku, sviluppò le linee guida dopo aver osservato alcuni schemi ricorrenti durante l’esecuzione di migliaia di applicazioni sulla piattaforma Heroku. L’approccio Twelve-Factor App viene presentato come un framework pratico per creare software distribuibile in modo affidabile nei moderni ambienti cloud.
L’articolo spiega che un’applicazione cloud-native dovrebbe usare una singola base di codice distribuibile su più ambienti. Sottolinea inoltre che le dipendenze dovrebbero essere dichiarate esplicitamente e isolate, invece di essere considerate già presenti nel sistema sottostante. Insieme, queste regole favoriscono deployment ripetibili riducendo le differenze nascoste tra gli ambienti.
La configurazione è un altro principio centrale. La metodologia raccomanda di fornire la configurazione tramite l’ambiente invece di incorporarla direttamente nel codice dell’applicazione. Questa separazione è pensata per rendere le applicazioni più facili da spostare tra ambienti di sviluppo, staging e produzione senza modificare la base di codice.
Le linee guida trattano anche i servizi di supporto come risorse collegate. Database, code, cache e altri servizi esterni dovrebbero essere considerati risorse sostituibili che possono essere scambiate senza richiedere modifiche rilevanti all’applicazione.
L’articolo evidenzia inoltre l’importanza di una pipeline rigorosa di build, release ed esecuzione. In questo modello, la fase di build crea un artefatto eseguibile, la fase di release combina quell’artefatto con la configurazione e la fase di esecuzione avvia l’applicazione. Le release sono considerate immutabili.
Per scalabilità e affidabilità, la metodologia Twelve-Factor App richiede processi stateless. I processi applicativi non dovrebbero dipendere da stato locale, consentendo la scalabilità orizzontale e la sostituzione delle istanze. Viene sottolineato anche il port binding, in modo che l’applicazione sia realmente autonoma e possa esporre servizi direttamente tramite una porta.
Il pezzo affronta anche la concorrenza tramite la scalabilità dei processi. Invece di affidarsi a un unico grande processo, le applicazioni dovrebbero scalare eseguendo più processi. La disposability è un altro requisito: ci si aspetta che le applicazioni si avviino rapidamente e si arrestino in modo ordinato. Questi principi sono centrali per applicazioni che devono essere sostituite, riavviate o scalate senza preservare lo stato su una singola istanza.
La parità dev/prod viene descritta come un modo per ridurre i problemi del tipo “funziona in locale”. L’articolo afferma che gli ambienti di sviluppo, staging e produzione dovrebbero rimanere il più possibile simili per evitare comportamenti inattesi durante il deployment.
I log sono trattati come stream di eventi. Invece di gestire internamente i file di log, le applicazioni dovrebbero scrivere i log come stream che possono essere raccolti ed elaborati da un sistema di osservabilità. Le attività amministrative e di manutenzione dovrebbero essere eseguite come processi una tantum nello stesso ambiente dell’applicazione.
L’articolo si conclude osservando come le pratiche software si siano evolute dal 2011. Afferma che l’osservabilità oggi va oltre i log, che la gestione della configurazione e dei segreti è diventata più sofisticata e che le questioni di sicurezza e API non sono trattate esplicitamente nell’elenco originale Twelve-Factor App. Questa impostazione rende la metodologia una checklist di base più che un modello architetturale moderno completo.
Pubblicato tramite Towards AI.
Nota: il contenuto dell’articolo riflette le opinioni degli autori contributori e non di Towards AI.