Plataforma

Arquitectura multitenant ¿qué es y qué beneficios aporta?

?php the_title(); ?>

Según la definición de Wikipedia, multitenant (literalmente “multi-inquilino”, en español se suele usar el término tenencia múltiple) “corresponde a un principio de arquitectura de software en la cual una sola instancia de la aplicación se ejecuta en el servidor, pero sirviendo a múltiples clientes u organizaciones”. Está cada vez más extendido en el ámbito de la computación en la nube, hasta el punto de que algunos declaran que es el verdadero concepto de la nube.

La idea básica es sencilla: tener una sola base de código que se ejecuta para todos los clientes, con una misma estructura de datos, pero áreas de datos separadas para cada uno. Siguiendo la analogía de la casa de pisos, un mismo edificio tiene infraestructuras comunes y un plano de planta idéntico para cada uno de los apartamentos, que lógicamente tienen su espacio propio.

La implementación física de esto tiene varias posibilidades. La base de código será única, pero puede haber una copia física, o puede estar desplegada en varios servidores; puede haber una sola instancia de ejecución, o se pueden crear varios procesos o hilos ejecutando el mismo código. En cuanto a los datos, pueden estar particionados en una única base de datos, o puede haber una base de datos separada para cada cliente pero con estructura análoga.

Las implicaciones de esta arquitectura son significativas. Actualizar la base de código significa actualizarla para todos los clientes a la vez; esto tiene la gran ventaja de que todos son partícipes de las mejoras de inmediato, sin necesidad de un complejo plan de migración por fases. Y tiene el problema de tener que tener muy claros los efectos que los cambios generales puedan tener en las particularidades de cada cliente. En cuanto a las estructuras de datos, una gran ventaja de que las estructuras estén unificadas, tanto si se alojan en la misma base de datos física como si no, es la posibilidad de hacer consultas agregadas sobre los datos de todos los clientes.

En cuanto a procesos de mantenimiento y actualizaciones, lógicamente hay que modificar las estructuras en el mismo paso que el código que las utiliza (o, normalmente, justo antes); teniendo en cuenta cómo afectará a las instalaciones que están en marcha. Una aplicación de negocio en la nube suele admitir poco o ningún tiempo de parada, por lo que hay que planificar estas operaciones de manera que afecten lo menos posible al funcionamiento de las aplicaciones.

Como ya mencionamos al describir nuestro framework, en Yunbit históricamente hemos apostado por un modelo mixto, en el que existe una base de código principal en modelo multitenant, con una serie de puntos de extensión donde se puede añadir código y estructuras de datos personalizadas para cada cliente; aunque en las personalizaciones siempre intentamos identificar mejoras que puedan aportar valor a los demás clientes para integrar en el producto. Recientemente cada vez tendemos más a esa opción, lo que significaría acercarnos al multitenant puro.

Valora el artículo:

1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (9 valoraciones, media: 4,33 sobre 5)
Loading...
Mario Villar Mario Villar Director Tecnológico Ver más artículos de Mario Villar

¿Y tú qué opinas?

Posible error

Otros artículos de la categoría Actualidad

Nuestra web utiliza cookies. Ponemos en tu conocimiento que algunos de tus datos pueden ser archivados. Si quieres saber más haz click aquí