En este post veremos pros y contras de tres formas diferentes de Diseño de base de datos en la nube especialmente diseñado para ser utilizado en plataformas SaaS con muchos clientes o «inquilinos». Es lo que en inglés se conoce como Arquitecturas multiinquilino.
Créditos fotográficos: cybrain
El diseño de bases de datos para aplicaciones multiinquilino debe prestar atención que los datos y la carga de trabajo estarán particionados. Puede dividir los datos y la carga de trabajo, a modo de ejemplo, teniendo en cuenta los límites de cada inquilino, dado que la mayoría de las solicitudes se producirán dentro de esos límites.
Este tipo de diseño de base de datos se utiliza en todo el espectro de aplicaciones sustentadas en la nube.
Diseño de base de datos aislada
Este enfoque para el diseño de bases de datos necesita la construcción de una base de datos para cada inquilino.. Es un enfoque asociado a muchos beneficios, como los que disponen que ver con:
- Personalización: este diseño posibilita agregar algunas propiedades de entidad dedicadas al inquilino, por lo que se podría decir que el esquema base está altamente personalizado.
- Escalabilidad– El rendimiento es muy bueno y se mantiene inclusive cuando aumenta el número de inquilinos, al contrario de lo que ocurre en otras modalidades de diseño de bases de datos.
- Versatilidad: Si es necesario, sería muy fácil migrar aplicaciones antiguas a un enfoque de múltiples inquilinos.
- Seguridad: El aislamiento físico de los datos de cada inquilino es la clave para minimizar el riesgo.
Pese a las ventajas de este enfoque, Antes de decidirse por el diseño de bases de datos aisladas, se debe prestar atención que esta decisión implica la necesidad de mantener una segunda conexión a la base de datos, el aumento de recursos necesarios para el proyecto y la oportunidad de situaciones de distribución. datos desiguales. A estos inconvenientes hay que añadir la implementación y mantenimiento difíciles de dicha base de datos, algo que debe tenerse en cuenta antes de lanzar la iniciativa.
Diseño de base de datos único
Para este caso, todos los inquilinos se unen en una sola base de datos. En él, las entidades se definen a través de claves foráneas de la tabla que corresponden a atributos de identificación de inquilinos. Este enfoque de diseño tiene dos grandes ventajas:
- Despliegue rápido: No es necesario crear una nueva base de datos ni cambiar el esquema de la existente. Cada vez que se necesita agregar un nuevo inquilino, solo es necesario insertar la nueva entidad en la base de datos.
- Facilidad de implementación: Dado que se utiliza una única conexión de base de datos para una solicitud HTTP, es muy fácil poner en práctica mecanismos de cambio de base de datos.
Pero a pesar de esto, El diseño de la base de datos así propuesto implica algunos inconvenientes, como problemas de escalabilidad que pueden surgir por falta de particionamiento o problemas de seguridad relacionados con el acceso a los recursos., si se hace sin el control necesario.
Diseño de base de datos híbrida
La conjunción del modelo aislado y el multicliente dan como consecuencia el diseño de la base de datos híbrida., una estructura compleja, que necesita una mayor inversión en desarrollo y que, a pesar de esto, logra minimizar los inconvenientes de los otros dos tipos de bases de datos.
El enfoque híbrido posibilita repartir a los inquilinos, combinando bases de datos aisladas para algunos de ellos, con otro multiusuario, para el que se pueden agrupar según sus características.
Las ventajas de este enfoque de diseño son la escalabilidad y la seguridad, aún cuando sus inconvenientes pueden ser determinantes. La complejidad del modelo, su difícil implementación y la condición de contar con identificadores de recursos deben ser únicos en todas las bases de datos (solo así serían posibles las migraciones) podría obligar a muchas instituciones a decantarse por soluciones más accesibles.
Cuando se trata del diseño de bases de datos, cada compañía debe tomar la decisión que mejor se adapte a sus capacidades y expectativas., aún cuando siempre teniendo en cuenta la tipos de clientes quién utilizará la plataforma, así como sus demandas de seguridad y disponibilidad.