Tuttavia, ci sono alcune aziende che temono che i loro dati possano essere compromessi, quindi stiamo valutando altre soluzioni.
Questo è un peccato, poiché i clienti a volte soffrono di un malinteso secondo cui solo l'isolamento fisico può offrire sufficiente sicurezza.
C'è un interessante articolo MSDN, intitolato Multi-Tenant Data Architecture , che potresti voler controllare. Ecco come gli autori hanno indirizzato il malinteso verso l'approccio condiviso:
Un malinteso comune sostiene che solo l'isolamento fisico può fornire un livello adeguato di sicurezza. In effetti, i dati memorizzati utilizzando un approccio condiviso possono anche fornire una forte sicurezza dei dati, ma richiedono l'uso di modelli di progettazione più sofisticati.
Per quanto riguarda le considerazioni tecniche e commerciali, l'articolo fa una breve analisi su dove un certo approccio potrebbe essere più appropriato di un altro:
Il numero, la natura e le esigenze degli inquilini che ci si aspetta di soddisfare influiscono in modo diverso sulla decisione dell'architettura dei dati. Alcune delle seguenti domande potrebbero orientarti verso un approccio più isolato, mentre altre potrebbero orientarti verso un approccio più condiviso.
Quanti potenziali inquilini ti aspetti di scegliere come target? Potresti non essere in grado di stimare l'uso futuro con autorità, ma pensare in termini di ordini di grandezza: stai creando un'applicazione per centinaia di inquilini? Migliaia? Decine di migliaia? Di Più? Maggiore è la tua base di inquilino, maggiore sarà la probabilità di prendere in considerazione un approccio più condiviso.
Quanto spazio di archiviazione ti aspetti dai dati dell'inquilino medio? Se si prevede che alcuni o tutti i tenant memorizzino grandi quantità di dati, l'approccio con database separato è probabilmente il migliore. (In effetti, i requisiti di archiviazione dei dati potrebbero costringerti ad adottare comunque un modello di database separato. In tal caso, sarà molto più semplice progettare l'applicazione in questo modo dall'inizio piuttosto che passare a un approccio a database separato in seguito.)
Quanti utenti finali simultanei ti aspetti che l'inquilino medio supporti? Maggiore è il numero, più appropriato sarà un approccio più isolato per soddisfare le esigenze degli utenti finali.
Prevedi di offrire servizi a valore aggiunto per tenant, come il backup e la capacità di ripristino per tenant? Tali servizi sono più facili da offrire attraverso un approccio più isolato.
AGGIORNARE: ulteriore aggiornamento sul numero previsto di inquilini.
Quel numero previsto di inquilini (10k) dovrebbe escludere l'approccio multi-database, per la maggior parte, se non per tutti gli scenari. Non credo che ti piacerà l'idea di mantenere 10.000 istanze di database e di doverne creare centinaia di nuove ogni giorno.
Da quel solo parametro, sembra che l'approccio a schema singolo sia il database condiviso sia il più adatto. Il fatto che memorizzerete solo circa 50 Mb per inquilino e che non vi saranno componenti aggiuntivi per inquilino, rende questo approccio ancora più appropriato.
L'articolo di MSDN sopra citato menziona tre modelli di sicurezza che affrontano le considerazioni sulla sicurezza per l'approccio del database condiviso:
Quando sei sicuro delle misure di sicurezza dei dati della tua applicazione, sarai in grado di offrire ai tuoi clienti un accordo sul livello di servizio che fornisca forti garanzie di sicurezza dei dati. Nel tuo SLA, oltre alle garanzie, potresti anche descrivere le misure che vorresti adottare per garantire che i dati non fossero compromessi.
AGGIORNAMENTO 2: Apparentemente i ragazzi di Microsoft hanno spostato / fatto un nuovo articolo su questo argomento, il collegamento originale è sparito e questo è quello nuovo: modelli di tenancy del database SaaS multi-tenant (complimenti a Shai Kerer)