Un sito come lo stack overflow potrebbe essere migliore come build statiche separate o un'unica app con switch di runtime per ogni comunità?

3

Sto progettando un'applicazione web. Mi piacerebbe utilizzare sottodomini per dividere il sito in sezioni logiche separate in base ad alcune categorie, esattamente come fanno i siti di scambio di stack. Al momento sono a conoscenza di due approcci a questo ...

  1. Un'applicazione di grandi dimensioni che raccoglie il contesto dal dominio corrente (o in un altro modo) e rende il modello X o Y basato sul sottodominio. Considero questa logica come una grande quantità di logica di runtime che rende in modo selettivo gli elementi corretti in base al sottodominio corrente.
  2. Molteplici "build" di applicazioni che sono singolarmente codificate per il loro sottodominio, ma probabilmente riutilizzeranno molto codice condiviso dagli altri sottodomini.

La mia web application è scritta usando JS e React e la impacchetta usando il webpack. L'approccio per ciascuno di questi scenari sembra semplice in termini di come vado da qui a lì.

La mia domanda è, in base all'esempio dello scambio di stack e alla mia descrizione, quale approccio è "migliore"? Qualcuno ha qualche trucco che sarebbe bello sapere? Attualmente mi sto appoggiando alle singole build statiche per ogni sottodominio, perché ciò sembra abbastanza intuitivo e facile da mantenere.

    
posta Ryan 10.06.2016 - 03:04
fonte

1 risposta

5

Stai chiedendo la classica domanda multi-tenant.

Personalmente vorrei - e ho - mantenere una singola copia dell'applicazione. Dovrebbe cercare il sottodominio nel db per prendere un id del sito, prendere le informazioni sul sito e mostrare il contenuto pertinente. I modelli e le immagini possono essere memorizzati inserendoli in una directory denominata come il loro sottodominio o id del sito. Quindi /subdomain1/logo.png, /subdomain2/logo.png, ecc. Per quanto riguarda il db, utilizzerei un singolo database a meno che non sia necessario mantenere separati i dati dai diversi siti.

Il problema di avere più copie dell'app è semplice: hai più copie dell'app da aggiornare ogni volta che apporti delle modifiche. L'unica volta che avrei usato più copie era se ci fossero differenze significative che andavano molto al di là di ciò che poteva essere configurato in fase di esecuzione. Non è certo un grosso problema se hai solo 3 copie dell'applicazione, ma cosa succede quando hai 1.000 sottodomini?

    
risposta data 10.06.2016 - 05:18
fonte

Leggi altre domande sui tag