Sin embargo, hay algunas empresas de supuesto que temen que sus datos podrían verse comprometidas , por lo que estamos evaluando otras soluciones .
Esto es desafortunado, ya que a veces los clientes tienen la idea errónea de que solo el aislamiento físico puede ofrecer suficiente seguridad.
Hay un artículo interesante de MSDN, titulado Multi-Tenant Data Architecture, que es posible que desee comprobar. Así es como los autores abordan la idea errónea hacia el enfoque compartido:
Un error común sostiene que aislamiento solamente física puede proporcionar una nivel adecuado de seguridad. En el hecho , los datos almacenados utilizando un enfoque compartido también pueden proporcionar datos fuertes de seguridad, pero requiere el uso de más patrones de diseño sofisticado .
En cuanto a las consideraciones técnicas y de negocios, el artículo hace un breve análisis sobre dónde un cierto enfoque podría ser más apropiado que otro:
El número, la naturaleza y las necesidades de los inquilinos que se pueden esperar servir a todos afecta su decisión de arquitectura de datos en formas diferentes. Algunas de las siguientes preguntas pueden inclinarlo hacia un enfoque más aislado de , mientras que otras pueden inclinarlo hacia un enfoque más compartido.
¿Cuántos posibles inquilinos espera apuntar? Puede estar en ninguna parte cerca de poder estimar uso prospectivo con autoridad, pero pensar en términos de órdenes de magnitud: ¿Está construyendo una aplicación para cientos de inquilinos? ¿Miles? Tens de miles? ¿Más? Cuanto más grande sea espere que su base de clientes sea, es más probable que desee considerar un enfoque más compartido.
¿Cuánto espacio de almacenamiento espera que ocupen los datos medios del inquilino? Si espera que algunos o todos los inquilinos a almacenen grandes cantidades de datos, el enfoque de la base de datos separada probablemente sea mejor. (De hecho, almacenamiento de datos requisitos pueden obligan 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 así desde el empezando a pasar a un enfoque -base de datos independiente más adelante).
¿Cuántos usuarios finales concurrentes espera que soporte el cliente promedio? 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 cada inquilino, como como copia de seguridad por inquilino y restaurar capacidad? Dichos servicios son más fáciles de ofrecer a través de un enfoque más aislado .
ACTUALIZACIÓN: Además de actualizar sobre el número esperado de los inquilinos.
El número esperado de inquilinos (10k) debe excluir el enfoque de varias bases de datos, para la mayoría, si no todos los escenarios. No creo que te apetezca la idea de mantener 10.000 instancias de base de datos y tener que crear cientos de nuevas cada día.
Solo desde ese parámetro, parece que el enfoque de base de datos compartidos, de un solo esquema es el más adecuado. El hecho de que almacene unos 50Mb por inquilino y que no haya complementos por inquilino hace que este enfoque sea aún más apropiado.
El artículo de MSDN antes citado menciona tres patrones de seguridad que abordan las consideraciones de seguridad para el enfoque de base de datos compartida:
Cuando se tiene la certeza de las medidas de seguridad de datos de su aplicación, usted podría ofrecer a sus clientes un Service Level Agrement que proporciona sólidas garantías de seguridad de datos.En su SLA, además de las garantías, también podría 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 trasladó/hizo un nuevo artículo sobre este tema, el enlace original se ha ido y esta es la nueva: Multi-tenant SaaS database tenancy patterns (felicitaciones a Shai kerer)
"Multi-Schema parece estar diseñado para tener tablas ligeramente diferentes para cada inquilino" ¿Entonces? ¿Qué pasa con multi-schema y todas las mismas tablas? ¿Estás diciendo que no quieres recrear estructuras de tablas idénticas en todos los esquemas? ¿O está diciendo que no puede crear estructuras idénticas en todos los esquemas? –
+1 para la pregunta buena/interesante – AdaTheDev
@ S.Lott Espero 10.000 inquilinos con más de 100 inscripciones al día. Tener millones de entradas en una sola definición de tabla (definición = compartido, datos = aislado) me hace sentir mejor que tener miles de entradas en miles de tablas-definiciones. Como no muchas personas lo hacen de esa manera, no estoy tan seguro con multi-schema. –