Modifica design / arch webapp per semplificare la manutenzione (scalabile)

5

Diciamo che ho creato una webapp che voglio renderla più scalabile.

Come funzionerebbe ora

Se voglio "vendere" la webapp devo fare quanto segue:

  • Noleggia un nuovo hosting
  • Copia il codice nell'host
  • Crea un DB e le tabelle e cambia i nomi nel db

La tabella utenti verrà utilizzata per verificare l'utente che desidera accedere e le altre tabelle di dati memorizzano i dati e lavorano insieme (join e così via)

Questo non è davvero scalabile ... devi fare un sacco di cose manuali da configurare

Come voglio che funzioni

Una piattaforma (quindi automatizza la maggior parte delle impostazioni). Ciò renderà più semplice la manutenzione del codice (base di codice centrata) e non ci saranno problemi con la creazione di tabelle / db.

Qui mi manca la panoramica / conoscenza ...

  • Genero nuove tabelle per ogni cliente che gli utenti di questo cliente userà?
  • Oppure faccio a generare nuovi DB ogni volta con le stesse tabelle dei nomi? Ma se alcuni utenti accedono quindi devo passare a un altro DB. (come vorrei controllare che)
  • Oppure posso scaricare tutto in 1 db e le stesse tabelle e creare un extra colonna per indicare a quale azienda appartengono? Il problema con questo può avere problemi di prestazioni nel tempo. Conta circa 7800 file per ogni cliente, ogni anno .....

Tbh Non mi aspetto di trarne vantaggio, ma ero sempre molto interessato a creare piattaforme scalabili invece di copiare / incollare il codice su altri host. (cosa generalmente faccio)

La domanda è come fare questo? Non è una discussione qual è il modo migliore ma più semplicemente come puoi fare questo o come la maggior parte delle aziende fa questo

    
posta MichaelAngelo 22.11.2016 - 10:10
fonte

1 risposta

2

Penso che il termine che stai cercando sia 'single tenant' vs 'multi-tenant'

es. un'installazione della tua app supporta più client o installi un'istanza (incluso il database, ecc.) per client.

Questo non è ciò che in genere si intende per scalabilità, è possibile automatizzare la distribuzione di una nuova istanza abbastanza facilmente e la separazione tra i client può essere utile.

Le soluzioni multi-tenant complessive sono considerate più facili da mantenere e soluzioni più flessibili. specialmente se hai molti piccoli clienti. Dopo tutto non c'è nulla che ti impedisca di avere più istanze di un'app multi-tenant e essenzialmente di eseguirla in modalità single tenant

    
risposta data 22.11.2016 - 10:17
fonte

Leggi altre domande sui tag