Dove memorizzare le impostazioni di configurazione in un file di testo e quando si trova in un database?

2

Ho diverse applicazioni web. Tutti loro hanno i file di configurazione. Sto cercando di capire quando è opportuno memorizzare i dati in un file di configurazione e quando nel database in json o in formato libero? Ad esempio, ho impostato diversi metodi di pagamento: PayPal, Stripe, ecc. Tutti hanno diversi set di impostazioni, alcuni richiedono una chiave API, alcuni questo, altri e non quello. E così via.

Quando è meglio memorizzare tali tipi di impostazioni di configurazione in un database e quando si trovano nei file config yaml / xml / json?

E in generale, non solo questi tipi di impostazioni di configurazione, ma anche altri tipi.

    
posta Ojman 05.06.2018 - 06:22
fonte

1 risposta

1

Dato che stai chiedendo specificatamente queste due opzioni, non entrerò nel modello 12factor [1] che afferma:

An app’s config is everything that is likely to vary between deploys. [...] Apps sometimes store config as constants in the code. This is a violation of twelve-factor, which requires strict separation of config from code. [...] Another approach to config is the use of config files which are not checked into revision control.

E infine:

The twelve-factor app stores config in environment variables.

Risposta breve: se la configurazione, in base alla natura, può essere modificata in fase di runtime, ad es. a livello di utente (quindi se è effettivamente una funzionalità del tuo prodotto come change background color ), quindi inseriscila nel database. Se è fondamentale che il tuo codice funzioni, come le connessioni al database, le chiavi API ecc. Non è necessario accettare il sovraccarico di memorizzarlo in un altro sistema (che è il tuo DB).

Sebbene tu possa metterlo nei file di configurazione, la tua vita sarà migliore quando la conserverai in variabili env. In questo modo è facile regolare il codice per più ambienti. È anche buona norma non mettere le informazioni sensibili nel controllo di versione.

[1] link

    
risposta data 05.06.2018 - 19:11
fonte

Leggi altre domande sui tag