Multi Alquiler - Multitenancy

La tenencia múltiple de software es una arquitectura de software en la que una única instancia de software se ejecuta en un servidor y sirve a varios inquilinos. Los sistemas diseñados de tal manera son "compartidos" (en lugar de "dedicados" o "aislados"). Un inquilino es un grupo de usuarios que comparten un acceso común con privilegios específicos a la instancia de software. Con una arquitectura de múltiples inquilinos , una aplicación de software está diseñada para proporcionar a cada inquilino una parte dedicada de la instancia, incluidos sus datos, configuración, administración de usuarios, funcionalidad individual de inquilino y propiedades no funcionales . La tenencia múltiple contrasta con las arquitecturas de instancias múltiples, donde las instancias de software independientes operan en nombre de diferentes inquilinos.

Algunos comentaristas consideran la tenencia múltiple como una característica importante de la computación en nube .

Adopción

Historia de las aplicaciones multiusuario

Las aplicaciones multiusuario han evolucionado a partir de tres tipos de servicios y combinan algunas características de ellos:

  1. Tiempo compartido : desde la década de 1960, las empresas alquilaban espacio y potencia de procesamiento en computadoras mainframe ( tiempo compartido ) para reducir los gastos informáticos. A menudo, también reutilizaron aplicaciones existentes, simplemente con un campo de entrada separado en la pantalla de inicio de sesión para especificar una identificación de cuenta de cliente. Sobre la base de esta identificación, los contables del mainframe podrían cobrar a los clientes individuales por el uso de CPU, memoria y disco / cinta realmente incurrido.
  2. Aplicaciones alojadas : desde la década de 1990 , los proveedores de servicios de aplicaciones tradicionales (ASP) alojaban aplicaciones (entonces existentes) en nombre de sus clientes. Dependiendo de la limitación de la aplicación subyacente, las ASP se vieron obligadas a alojar aplicaciones en máquinas separadas (si no se podían ejecutar varias instancias de las aplicaciones en la misma máquina física) o como procesos separados . Las aplicaciones multiusuario representan una arquitectura más madura que permite un servicio similar con un menor costo operativo.
  3. Aplicaciones web : aplicaciones web populares orientadas al consumidor (como Hotmail ) desarrolladas con una única instancia de aplicación que atiende a todos los clientes. Las aplicaciones multiinquilino representan una evolución natural de este modelo, ofreciendo personalización adicional a grupos de usuarios dentro (digamos) de la misma organización cliente.

Diferenciación de la virtualización

En un entorno multiusuario, varios clientes comparten la misma aplicación, que se ejecuta en el mismo sistema operativo, en el mismo hardware y con el mismo mecanismo de almacenamiento de datos. La distinción entre los clientes se logra durante el diseño de la aplicación, por lo que los clientes no comparten ni ven los datos de los demás. Compare esto con la virtualización en la que los componentes se transforman, lo que permite que cada aplicación del cliente parezca ejecutarse en una máquina virtual separada.

Diferenciación competitiva

Algunas empresas promueven activamente el principio de tenencia múltiple y lo utilizan como fuente de diferenciación competitiva. El uso de la tenencia múltiple aumenta día a día.

Economía de la tenencia múltiple

Ahorro de costes

La tenencia múltiple permite ahorros de costos por encima de las economías de escala básicas que se pueden lograr al consolidar los recursos de TI en una sola operación. Una instancia de aplicación generalmente incurre en una cierta cantidad de memoria y sobrecarga de procesamiento que puede ser sustancial cuando se multiplica por muchos clientes, especialmente si los clientes son pequeños. La tenencia múltiple reduce esta sobrecarga distribuyéndola entre muchos clientes. Los ahorros de costos adicionales pueden provenir de los costos de licencia del software subyacente (como los sistemas operativos y los sistemas de administración de bases de datos). En pocas palabras, si puede ejecutar todo en una única instancia de software, solo tiene que comprar una licencia de software . El ahorro de costos puede verse eclipsado por la dificultad de escalar la instancia única a medida que crece la demanda: aumentar el rendimiento de la instancia en un solo servidor solo se puede lograr comprando hardware más rápido, como CPU rápidas, más memoria y sistemas de disco más rápidos. y, por lo general, estos costos aumentan más rápido que si la carga se dividiera entre varios servidores con aproximadamente la misma capacidad agregada. Además, el desarrollo de sistemas multiusuario es más complejo y las pruebas de seguridad son más estrictas debido al hecho de que se mezclan los datos de varios clientes.

Agregación de datos / minería de datos

Una de las razones más convincentes para que los proveedores / ISV utilicen la tenencia múltiple es por los beneficios inherentes a la agregación de datos . En lugar de recopilar datos de varias fuentes de datos, con esquemas de base de datos potencialmente diferentes , todos los datos de todos los clientes se almacenan en un esquema de base de datos único. Por lo tanto, ejecutar consultas entre clientes, extraer datos y buscar tendencias es mucho más simple. Es probable que esta razón esté sobrevalorada, ya que uno de los requisitos básicos de la tenencia múltiple es la necesidad de evitar que el proveedor de servicios acceda a la información del cliente (inquilino). Además, es común separar la base de datos operativa de la base de datos de minería (generalmente debido a las diferentes características de la carga de trabajo), lo que debilita aún más el argumento.

Complejidad

Debido a la complejidad de personalización adicional y la necesidad de mantener metadatos por inquilino , las aplicaciones de múltiples inquilinos requieren un mayor esfuerzo de desarrollo. Deben tenerse en cuenta consideraciones como la secuenciación de datos basada en vectores, la infraestructura de algoritmos encriptables y las interfaces de control virtualizadas.

Gestión de la liberación

La tenencia múltiple simplifica el proceso de administración de versiones. En un proceso de administración de versiones tradicional, los paquetes que contienen cambios en el código y la base de datos se distribuyen al escritorio del cliente y / o al servidor; en el caso de una sola instancia, sería una máquina servidor por cliente. Estos paquetes luego deben instalarse en cada máquina individual. Con el modelo multiusuario, el paquete normalmente solo necesita instalarse en un único servidor. Esto simplifica enormemente el proceso de gestión de versiones y la escala ya no depende del número de clientes.

Al mismo tiempo, la tenencia múltiple aumenta los riesgos e impactos inherentes a la aplicación de una nueva versión de lanzamiento. Como hay una única instancia de software que atiende a varios inquilinos, una actualización en esta instancia puede causar tiempo de inactividad para todos los inquilinos, incluso si la actualización se solicita y es útil para solo un inquilino. Además, algunos errores y problemas derivados de la aplicación de la nueva versión podrían manifestarse en la vista personalizada de la aplicación por parte de otros inquilinos. Debido al posible tiempo de inactividad , el momento de aplicar la versión puede estar restringido según el programa de uso del tiempo de más de un inquilino.

Requisitos

Personalización

Las aplicaciones de múltiples inquilinos generalmente se requieren para proporcionar un alto grado de personalización para respaldar las necesidades de cada organización objetivo. La personalización generalmente incluye los siguientes aspectos:

  • Marca: permitir que cada organización personalice la apariencia de la aplicación para que coincida con su marca corporativa (a menudo denominada " piel " distinta ).
  • Flujo de trabajo : acomoda las diferencias en el flujo de trabajo para ser utilizado por una amplia gama de clientes potenciales.
  • Extensiones del modelo de datos : admite un modelo de datos extensible para brindar a los clientes la capacidad de personalizar los elementos de datos administrados por la aplicación para satisfacer sus necesidades específicas.
  • Control de acceso : permitir que cada organización cliente personalice de forma independiente los derechos y restricciones de acceso para cada usuario .

Calidad de servicio

Se espera que las aplicaciones de múltiples inquilinos proporcionen un aislamiento adecuado de seguridad , solidez y rendimiento entre múltiples inquilinos, lo cual es proporcionado por las capas debajo de la aplicación en el caso de aplicaciones de múltiples instancias.

Virtualización

Los costos de rediseñar aplicaciones para múltiples inquilinos pueden ser significativos, especialmente para los proveedores de software que continúan ofreciendo una versión local de inquilino único de su producto. Terminan viéndose obligados a soportar dos productos distintos con todos los costes resultantes.

Una ruta alternativa cada vez más viable a la tenencia múltiple que elimina la necesidad de un cambio arquitectónico significativo es utilizar la tecnología de virtualización para alojar múltiples instancias aisladas de una aplicación en uno o más servidores. De hecho, cuando las aplicaciones se vuelven a empaquetar como dispositivos virtuales, la misma imagen de dispositivo se puede implementar en ubicaciones alojadas por ISV, locales o de terceros de confianza e incluso migrar de un sitio de implementación a otro a lo largo del tiempo.

Ver también

Referencias