Enfoques de Multi-Tenancy

¿Qué sistema de gestión necesita su empresa?

Compartir recursos en diferentes niveles de abstracción, tomando en cuenta el aislamiento de los usuarios y seguridad en el almacenamiento de la información, dan como resultado los diferentes modelos Multi-Tenancy o Multi-Cliente.

Multi-Tenancy es un grupo de usuarios que comparten el uso de una sola aplicación ya sea desde el acceso a los datos, la configuración, la gestión de usuario, las propiedades funcionales y no funcionales. Dicho de otra forma es un sistema compartido entre varios clientes, pero que funciona de manera flexible y opera como si fuera exclusivo de uno solo. En el modelo SaaS, al cliente se lo llama inquilino.

Base de Datos por separado

En este enfoque los datos de cada cliente se almacenan en bases de datos separadas. Las bases de datos pueden estar en el mismo servidor o pueden ser divididas a través de servidores de bases de datos múltiples. Este enfoque proporciona aislamiento máximo de los datos de los clientes, como lo muestra en la Figura 1.

Desde el punto de vista del hardware y de los recursos computacionales, este esquema es conocido como hardware compartido, en donde cada cliente tiene su propio proceso independiente de la base de datos pero se comparte el hardware de la máquina (recursos como RAM, Memoria, CPU) en donde se encuentran alojados los clientes. La virtualización es la forma de utilizar recursos de una misma máquina, donde se crean máquinas virtuales (VM) que sirven para aislar a los clientes, cada uno de estos cuentan con una base de datos instalada exclusivamente para la máquina virtual.

Figura 1
Figura 1

Base de Datos Compartidas, Esquemas Separados

Este enfoque consiste en que cada cliente tiene su propio conjunto de tablas que se agrupan en un esquema creado específicamente para el cliente. Con este enfoque puede tener una sola base de datos con un esquema para cada cliente, como se indica en la Figura 2. Igualmente desde el punto de vista del hardware, a este enfoque se lo conoce como proceso compartido, porque en este modelo los usuarios utilizan un esquema de tablas individual, pero estos comparten el mismo proceso de base de datos, con lo cual permite aprovechar de manera óptima la utilización de recursos del servidor donde se encuentran alojados los tenants o inquilinos. La utilización de un solo motor de base de datos permite a los administradores realizar tareas de migración, respaldo o recuperación de la información.

Otra ventaja de este modelo es la optimización en el uso del pool de memoria, el cual permite almacenar un mayor número de esquemas de base de datos (por cliente). Por ejemplo: para manejar 10.000 instancias, se requiere de 79 MB a 2061 MB, dependiendo del motor de base de datos.

El modelo de proceso compartido se ajusta al modo de compartición, esto quiere decir que el nivel de aislamiento de los clientes se da a nivel de Base de Datos y del Esquema.

Figura 2 - Base de datos compartida
Figura 2 – Base de datos compartida

Base de Datos Compartidas, Esquemas Compartidos

En este enfoque sólo tenemos una única base de datos y un esquema único. Cada Tabla debe de referirse a un id de cliente.

Ventajas y desventajas

De los tres enfoques que se explican el enfoque del esquema compartido, tiene sus ventajas y desventajas las cuales son:

Este enfoque tiene los más bajos costos de hardware y de copia de seguridad, ya que le permite servir al mayor número de clientes por base de datos del servidor.
Para que este modelo funcione, los clientes deben compartir el mismo de tipo de información.
Un punto de falla está en que para hacer la migración de los clientes, esta tarea es realizada directamente a la base de datos funcional.
El tema de seguridad es otro punto de fallo, debido a que los privilegios de acceso pueden ser asignados a diferentes filas en una misma tabla; para garantizar que los clientes no puedan acceder a los datos de otros clientes, incluso en caso de errores inesperados o ataques.

Figura 3 - Una sola base de datos con tablas compartidas
Figura 3 – Una sola base de datos con tablas compartidas

Impacto del Multi-Tenancy en cada nivel de gestión

Finalmente una vez ingresado al mundo de los conceptos de Cloud Computing, se realiza un análisis de cómo impacta Multi-Tenancy en los tres niveles gestión de datos. En la tabla 1, se muestra este análisis.

Tabla 1
Tabla 1

Conclusiones

El modelo de Instancia Compartida (BD Compartida y Esquema Compartido) es el más adecuado para tener aplicaciones con un nivel equilibrado de consumo de recursos y aislamiento de clientes, ya que a nivel de mantenimiento, migración, es más flexible a tiempos de inactividad e interrupción del servicio.

El nivel de abstracción más costoso y que más tiempo demora en implementarlo, pero que es más seguro, tiene mayor rendimiento y es más fácil de personalizar, es el Enfoque Base de Datos Separados.

A medida que se comparten la información en las base de datos, se abaratan costos de implementación pero se ponen en riesgo la seguridad de los datos y la personalización de los mismo, además influye en el rendimiento por el hecho de estar compartiendo recursos con otros usuarios.

Fuente: INNOVA Research Journal 2017, Vol 2, No. 2, 72-83

Adaptado por la División Consultoría de EvaluandoCloud.com

¿Qué sistema de gestión necesita su empresa?