¿Cuáles son las mejores prácticas en la creación de aplicaciones múltiples clientes?
-
23-08-2019 - |
Pregunta
¿Cuáles son las mejores prácticas en la creación de aplicaciones que dan soporte a múltiples inquilinos, como software como servicio?
Los enlaces a documentos técnicos que se expanden sobre este tema son muy apreciados.
Solución
Es posible encontrar algunos consejos preciosos en una serie de entradas de blog por Oren Eini.
Este es uno de los últimos puestos de la serie, con enlaces a los mensajes anteriores: http://ayende.com/Blog/archive/2008/08/16/Multi-Tenancy--Approaches-and-Applicability.aspx
Otros consejos
En la base de datos:
A. Poner todo sobre la misma base de datos, poner una columna tenant_id en sus tablas
Pros: Fácil de hacer
Contras: muy propenso a errores: es fácil de filtrar datos de un inquilino a otro.
B. Poner todo en la misma base de datos, pero puso cada inquilino en su propio espacio de nombres (PostgreSQL les llama esquemas)
Pros: Proporciona una mejor protección de fuga de datos de la opción A
Contras: No es compatible con todas las bases de datos. Que yo sepa PostgreSQL y Oracle es compatible con ella.
C. Configuración de una base de datos por inquilino
Pros: Absolutamente ninguna posibilidad de fugas de datos de un inquilino a otro
Contras: La creación de nuevos inquilinos es más complicado. conexiones de bases de datos son caros.
Sólo supe las ideas anteriores de Guy Naor. Aquí hay un enlace a su presentación: http : //aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html