Sin embargo, hay algunas compañías, por supuesto, que temen que sus datos puedan verse comprometidos, por lo que estamos evaluando otras soluciones.
Esto es lamentable, ya que los clientes a veces sufren de una idea errónea de que solo el aislamiento físico puede ofrecer suficiente seguridad.
Hay un interesante artículo de MSDN titulado Arquitectura de datos de múltiples inquilinos , que quizás desee consultar. Así es como los autores abordaron la idea errónea hacia el enfoque compartido:
Una idea errónea común sostiene que solo el aislamiento físico puede proporcionar un nivel adecuado de seguridad. De hecho, los datos almacenados utilizando un enfoque compartido también pueden proporcionar una seguridad sólida de los datos, pero requieren el uso de patrones de diseño más sofisticados.
En cuanto a las consideraciones técnicas y comerciales, el artículo hace un breve análisis sobre dónde un determinado enfoque podría ser más apropiado que otro:
El número, la naturaleza y las necesidades de los inquilinos a los que espera atender afectan su decisión de arquitectura de datos de diferentes maneras. Algunas de las siguientes preguntas pueden sesgarlo hacia un enfoque más aislado, mientras que otras pueden sesgarlo hacia un enfoque más compartido.
¿A cuántos posibles inquilinos espera apuntar? Es posible que no esté cerca de poder estimar el uso potencial con autoridad, pero piense en términos de órdenes de magnitud: ¿está creando una aplicación para cientos de inquilinos? Miles? ¿Decenas de miles? ¿Más? Cuanto más grande espere que sea su base de inquilinos, más probabilidades tendrá de considerar un enfoque más compartido.
¿Cuánto espacio de almacenamiento espera que ocupen los datos del inquilino promedio? Si espera que algunos o todos los inquilinos almacenen grandes cantidades de datos, el enfoque de base de datos separada es probablemente el mejor. (De hecho, los requisitos de almacenamiento de datos pueden obligarlo a adoptar un modelo de base de datos separada de todos modos. Si es así, será mucho más fácil diseñar la aplicación de esa manera desde el principio que pasar a un enfoque de base de datos separada más adelante).
¿Cuántos usuarios finales concurrentes espera que el inquilino promedio admita? Cuanto mayor sea el número, más apropiado será un enfoque más aislado para cumplir con los requisitos del usuario final.
¿Espera ofrecer algún servicio de valor agregado por inquilino, como la capacidad de respaldo y restauración por inquilino? Dichos servicios son más fáciles de ofrecer a través de un enfoque más aislado.
ACTUALIZAR: más para actualizar sobre el número esperado de inquilinos.
Ese número esperado de inquilinos (10k) debería excluir el enfoque de múltiples bases de datos, para la mayoría, si no todos los escenarios. No creo que le guste la idea de mantener 10,000 instancias de bases de datos y tener que crear cientos de nuevas cada día.
Solo con ese parámetro, parece que el enfoque de esquema único de base de datos compartida es el más adecuado. El hecho de que almacenará aproximadamente 50Mb por inquilino, y que no habrá complementos por inquilino, hace que este enfoque sea aún más apropiado.
El artículo de MSDN citado anteriormente menciona tres patrones de seguridad que abordan las consideraciones de seguridad para el enfoque de base de datos compartida:
Cuando esté seguro de las medidas de seguridad de datos de su aplicación, podrá ofrecer a sus clientes un Acuerdo de nivel de servicio que brinde sólidas garantías de seguridad de datos. En su SLA, además de las garantías, también puede describir las medidas que tomaría para garantizar que los datos no se vean comprometidos.
ACTUALIZACIÓN 2: Al parecer, los chicos de Microsoft se mudaron / hicieron un nuevo artículo sobre este tema, el enlace original desapareció y este es el nuevo: patrones de tenencia de la base de datos SaaS para múltiples inquilinos (felicitaciones a Shai Kerer)