Quali sono le migliori pratiche nella creazione di applicazioni multi-tenancy?
-
23-08-2019 - |
Domanda
Quali sono le migliori pratiche nella creazione di applicazioni che supportano più inquilini, come Software as a Service?
Link a white paper che si espandono su questo argomento sono molto apprezzate.
Soluzione
Si potrebbe trovare qualche consiglio prezioso in una serie di post di blog da Oren Eini.
Questo è uno degli ultimi post della serie, con i link ai post precedenti: http://ayende.com/Blog/archive/2008/08/16/Multi-Tenancy--Approaches-and-Applicability.aspx
Altri suggerimenti
Per il database:
A. Mettere il tutto sullo stesso database, messo una colonna tenant_id sulle vostre tavole
Pro: Facile da fare
Contro: molto inclini a bug: è facile perdere i dati da un inquilino ad un altro.
B. Mettere tutto sullo stesso database, ma mettere ogni inquilino nel proprio spazio dei nomi (PostgreSQL loro schemi chiama)
Pro: offre una migliore protezione dei dati di perdita di opzione A
Contro: Non supportato da tutti i database. Per quanto ne so PostgreSQL e Oracle supporta.
C. Imposta un database per inquilino
Pro: assolutamente alcuna possibilità di fuoriuscita di dati da un cliente in un'altra
Contro: La creazione di nuovi inquilini è più complicato. connessioni al database sono costosi.
Ho imparato solo le idee di cui sopra da Guy Naor. Ecco un link per la sua presentazione: http : //aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html