Mi è piaciuto usare Rails su Heroku e, in questo modo, posso regolare la proprietà di configurazione di un'app di Heroku senza dover eseguire il commit su xyz.yml
e ridistribuire.Gestione della configurazione nelle applicazioni a 12 fattori
Sarebbe bello eliminare completamente i file di configurazione Yaml nella mia app Rails e fare affidamento il più possibile sulla memorizzazione della configurazione in ENV. Questo va di pari passo con il principio 12-factor config.
Tuttavia, ci sono alcuni compromessi nel passaggio da una gestione della configurazione basata su Yaml a una basata su Heroku/12 fattori.
- Mentre è vero che la proliferazione di implementazioni (QA, stage, prod, dev, demo, laboratori) può portare ad una proliferazione di file YAML, è molto facile da copiare e incollare per creare un nuovo profilo di configurazione. Non vedo un modo per "copiare" i profili di configurazione da una distribuzione all'altra in Heroku.
- Memorizzare i dati di configurazione nel repository significa che, nel caso di Heroku, l'implementazione e la configurazione e l'applicazione vengono eseguite in un'unica operazione. Se dovessi spostare la mia configurazione da file Yaml e variabili ENV, dovrei configurare la mia applicazione in un passaggio separato dopo la distribuzione.
Vorrei sentire chi ha utilizzato la configurazione in stile 12 fattori nelle proprie applicazioni private e come ha gestito molte variabili di configurazione in molte distribuzioni.
- Come si configura rapidamente una nuova distribuzione?
- Dove mantieni la tua fonte autorevole di variabili di configurazione, se non il repository? Come lo distribuisci tra gli sviluppatori?
Grazie!
Non lavoro con Heroku, ma ritengo che 12 fattori possano essere applicati a qualsiasi applicazione SaaS. Posso creare uno script di shell personalizzato per creare quella configurazione nei miei ambienti. Ma, dopo questo background, la mia domanda è: non ci sono problemi di sicurezza nel rendere le mie vele di configurazione, come i dati di accesso al database, diventano vvars? –