Cuando hablamos de Multi tenancy, nos enfrentamos a que es una de esas palabras que casi todos escucharon, pero nadie la define de la misma manera; De hecho, a menos que sea un ingeniero de software, no es esencial saber su significado exacto.

Multi-Tenancy  es un grupo de usuarios que comparten el uso de una sola solicitud de acceso para datos, configuración, administración de usuarios, funcional y no funcionales.

En otras palabras, es un sistema compartido entre más clientes, pero funciona de manera flexible como si fuera único a uno. En el modelo SaaS, el cliente se llama inquilino.

Puedes utilizar lenguajes de programación como mongo, angular, node, puedes ver ejemplo que te dejamos en el siguiente video

¿Qué es Multi Tenancy?

Multi-Tenancy es una arquitectura en la que una única instancia de una aplicación de software sirve a varios clientes.

Cada cliente se denomina inquilino. Los inquilinos pueden tener la capacidad de personalizar algunas partes de la aplicación, como el color de la interfaz de usuario (UI) o las reglas de negocio, pero no pueden personalizar el código de la aplicación.

En una arquitectura multi-tenant, múltiples instancias de una aplicación operan en un entorno compartido. Esta arquitectura puede funcionar porque cada inquilino está integrado físicamente, pero separado lógicamente; lo que significa que una única instancia del software se ejecutará en un servidor y servirá a varios inquilinos.

De este modo, una aplicación de software en una arquitectura multi-tenant puede compartir una instancia dedicada de configuraciones, datos, gestión de usuarios y otras propiedades.

Las aplicaciones multi tenancy o  multiarrendamiento pueden compartir los mismos usuarios, pantallas, reglas aunque los usuarios pueden personalizarlas hasta cierto punto, como ya hemos comentado anteriormente,  y esquemas de base de datos, que los arrendatarios también pueden personalizar.

Importancia de Multi Tenancy


El multi-tenancy ha visto una gran adopción y se utiliza más con la computación en nube. Las arquitecturas multi tenancy se encuentran tanto en entornos de nube pública como de nube privada, y permiten separar los datos de cada arrendatario.

Por ejemplo, en una nube pública multi tenancy, los mismos servidores se utilizarán en un entorno de alojamiento para hospedar a varios usuarios. Cada usuario dispone de un espacio separado e idealmente seguro dentro de esos servidores para almacenar los datos.

También es importante para la escalabilidad de las nubes públicas y privadas, y ha contribuido a convertir el multi tenancy en un estándar.

La arquitectura multi tenancy también puede ayudar a proporcionar un mejor retorno de la inversión para las organizaciones, así como a acelerar el ritmo de mantenimiento y las actualizaciones para los inquilinos.

Tipos de arquitectura multi tenancy

via GIPHY


Existen tres tipos principales de modelos multi tenancy, todos ellos con distintos niveles de complejidad y costes.

Esquema de base de datos único y compartido

Es un modelo multi tenancy con una base de datos multi tenancy.  Esta es la forma más sencilla de las tres y tiene un coste relativamente bajo para los inquilinos debido al uso de recursos compartidos.

Esta forma utiliza una única aplicación e instancia de base de datos para alojar a los inquilinos y almacenar los datos. El uso de un único esquema de base de datos compartido permite un escalado más fácil; sin embargo, los costes operativos pueden ser mayores.

Uso de una única base de datos con múltiples esquemas.

Este sistema de inquilinos utiliza una única instancia de aplicación con bases de datos individuales para cada inquilino. Además, esta arquitectura tiene un coste más elevado con más gastos generales con cada base de datos.

Es una arquitectura valiosa cuando los datos de los distintos inquilinos tienen que ser tratados de forma diferente.

Por ejemplo, si tienen que pasar por diferentes regulaciones geográficas.

Alojar los datos en múltiples bases de datos

Este modelo es relativamente complejo en términos de gestión y mantenimiento, pero los inquilinos pueden ser separados por un criterio elegido.

Ventajas e inconvenientes del multi tenancy


Hay una serie de ventajas y desventajas que conlleva ser proveedor de alojamiento y arrendatario con multi tenancy.

Algunas ventajas son:

  1. Es menos costoso en comparación con otras arquitecturas de alojamiento.
  2. Ofrece modelos de precios de pago por lo que se necesita.
  3. No tienes que preocuparte por las actualizaciones, ya que son enviadas por el proveedor de alojamiento.
  4. No tienes que preocuparse por el hardware en el que se alojan sus datos.
  5. Los proveedores sólo tienen que supervisar y administrar un único sistema.
    La arquitectura es fácilmente escalable.

Algunas de las desventajas son:

  1. Las aplicaciones multi tenancy tienden a ser menos flexibles que las aplicaciones en otras arquitecturas de arrendamiento, como la de single-tenancy.
  2. El multi tenancy es, en general, más complejo que el single-tenancy.
  3. Las aplicaciones multi tenancy necesitan una autenticación y unos controles de acceso más estrictos para la seguridad.
  4. Los inquilinos tienen que preocuparse de los vecinos ruidosos, es decir, de alguien que esté en la misma CPU y consuma muchos ciclos, lo que puede ralentizar el tiempo de respuesta.
  5. El tiempo de inactividad también puede ser un problema, dependiendo del proveedor.

Aspectos claves del Multi Tenancy

via GIPHY


Para crear una distribución de aplicaciones multi-tenancy, debe centrarse en tres aspectos fundamentales:

El mecanismo de distribución de recursos:
Su objetivo es reducir los costos de hardware, software y administración de cada inquilino.

El mecanismo de aislamiento de seguridad:

Tiene como objetivo es evitar cualquier acceso, conflictos e interferencias no válidos entre los inquilinos.

El mecanismo de personalización:
Su finalidad es admitir el modelo de UI (Interfaz de usuario) para inquilinos, control de acceso, proceso y datos a través de los enfoques de configuración.

Bases fundamentales Multi Tenancy

via GIPHY


Disponibilidad:
Al ser una arquitectura compartida, se debe proporcionar redundancia integrada para que los recursos de la computadora requeridos, la red y el almacenamiento todavía estén disponibles en cualquier momento; Como un posible fallo podría afectar a muchos clientes ofrecidos por estos servicios.

Separación segura
Ser una arquitectura compartida, se debe tener en cuenta el aislamiento del usuario y la seguridad en el almacenamiento de información.

Garantía de servicio.
Asimismo, debe aislarse y garantizar el equipo, la red y el rendimiento de almacenamiento en cualquier momento durante el funcionamiento normal cuando ocurran fallas o cuando algunos servicios generen problemas.

Gestión

La capacidad de administrar, administrar y supervisar todos los recursos completos, ofreciendo a los clientes a acceder a la administración de sus servicios de inmediato y sin problemas.

CONCLUSIÓN:

Multi-Tenant, se podría definir, como una arquitectura en la que una sola instancia de una aplicación de software sirve a múltiples clientes. Este tipo de arquitectura tiene muchísimo más sentido en entornos SAAS (Software como Servicio), que no quiere decir que también en entornos IAAS ó PAAS, donde por ejemplo, un proveedor pone a disposición de cliente bases de datos SQL y servidores WEB, para alojar páginas como lo hemos explicado en el video que te he dejado al inicio.

La elección del proveedor adecuado depende estrictamente del tipo de aplicación que el cliente desea implementar, ya que cada uno de estos ofrece un servicio orientado a los diferentes paradigmas existentes en las tecnologías Cloud Computing.

Cuando evalúes una aplicación SaaS, la pregunta correcta no es si es o no Multi-Tenancy, sino en qué grado lo es en relación al conjunto de aplicaciones evaluadas.

Recuerda que si deseas ampliar tus conocimientos puedes ir a disfrutar del contenido de programación que te compartimos cada semana.

Plataforma de cursos gratis sobre programación