I Dodici Fattori

home / glossario / i-dodici-fattori /

I Dodici Fattori

I 12 Fattori di sviluppo(The Twelve-Factor App) sono un insieme di principi per lo sviluppo di applicazioni moderne, scalabili e mantenibili, ideati da sviluppatori di Heroku

I 12 Fattori di Autenticazione (The Twelve-Factor App) sono un insieme di principi per lo sviluppo di applicazioni moderne, scalabili e mantenibili, ideati da sviluppatori di Heroku. Questi principi sono particolarmente utili per le applicazioni cloud-native e aiutano a standardizzare le pratiche di sviluppo, deployment e scalabilità delle applicazioni.

Ecco una panoramica dei 12 fattori:

  • Codebase (Base di Codice):
    • Un'unica base di codice tracciata in un sistema di controllo delle versioni, con molteplici deploy.
  • Dependencies (Dipendenze):
    • Dichiarare esplicitamente e isolare le dipendenze. Le dipendenze dell'applicazione devono essere dichiarate esplicitamente nel manifesto delle dipendenze e isolate rispetto all'ambiente di runtime.
    • Config (Configurazione):Conservare la configurazione nell'ambiente. La configurazione che varia tra i deploy deve essere archiviata negli environment variables.
  • Backing Services (Servizi di Supporto):
    • Trattare i servizi di supporto come risorse collegate. Tutti i servizi di supporto, come database, code di messaggi o servizi esterni, devono essere trattati come risorse collegate all'applicazione tramite URL o stringhe di connessione.
  • Build, Release, Run (Costruzione, Rilascio, Esecuzione):
    • Separare rigorosamente i passaggi di costruzione e rilascio dall'esecuzione.
  • Processes (Processi):
    • Eseguire l'applicazione come uno o più processi stateless. I processi devono essere senza stato, con qualsiasi dato persistente archiviato in un backing service.
  • Port Binding (Binding delle Porte):
    • L'applicazione deve essere completamente self-contained, legando le porte e non dipendendo dal web server di runtime esterno.
  • Concurrency (Concorrenza):
      Scalare tramite il modello di processi. Utilizzare processi che possono essere replicati per gestire l'aumento della domanda.
  • Disposability (Disponibilità):
    • Massimizzare la robustezza con avviamento e spegnimento veloci. I processi devono essere robusti e capaci di avviarsi e spegnersi velocemente.
  • Dev/Prod Parity (Parità tra Dev e Prod):
    • Mantenere il divario tra sviluppo e produzione il più sottile possibile. Mantenere parità tra gli ambienti di sviluppo, staging e produzione per minimizzare i bug e le discrepanze.
  • Logs (Log):
    • Trattare i log come flussi di eventi. I log dell'applicazione devono essere trattati come flussi di eventi che possono essere inoltrati a un sistema di gestione dei log per l'analisi e l'archiviazione.
  • Admin Processes (Processi Amministrativi):
    • Eseguire processi amministrativi e di gestione come processi singoli una tantum. Le attività amministrative, come migrazioni del database, devono essere eseguite come processi una tantum, separati dai processi dell'applicazione principale.

Questi 12 fattori aiutano a garantire che le applicazioni siano facilmente scalabili, facili da mantenere e gestire, e pronte per l'implementazione continua su piattaforme cloud.
 

0
logo half bottom

Copyright © 2007-2024 COMMS.IT S.r.l. | P. IVA IT09643890016 | S.d.I. M5UXCR1 | REA TO-1068769