En la industria del software la moda es "extranjerizar" las palabras, así que seguramente el término de multi-tenecia
o multi-inquilino
o tenencia múltiple
lo encontramos en la ayuda de sitios como Microsoft o IBM donde es muy probable que sea una traducción automática. Multi-inquilino
, se conoce más por multi-tenancy
, es una arquitectura de software en la que la instancia de una aplicación de software sirve a varios clientes, a menudo denominados "inquilinos" (tenants
).
Los principales tipos de multi-tenencia
difieren en el grado de aislamiento y uso compartido de recursos entre los inquilinos. Este modelo se diferencia de las arquitecturas con múltiples instancias donde cada organización o cliente tiene su propia instancia instalada de la aplicación.
Tipos de configuración multi-inquilino
No todas las configuraciones multi-inquilino son iguales. ¡Existen diferentes tipos! Las más comunes son:
1.Multi-tenancy de nivel físico
Los inquilinos comparten el mismo hardware y software.
1.Ventajas
- Reducción de costos
- Facilidad en su implementación
1.Desventajas
- Riesgo alto de conflictos entre inquilinos
- Existe menos control sobre el entorno
- Los problemas de desempeño y escalabilidad no tardan en aparecer
2.Base de datos compartida, esquema compartido (nivel de base de datos)
Todos los inquilinos utilizan la misma base de datos y el mismo esquema. Los datos están separados por un identificador de inquilino (por ejemplo, usando una llave tenant_id
).
2.Ventajas
- Se simplifica el mantenimiento de los recursos
- Simplicidad en el desarrollo de la capa de datos
- Menores costes operativos
- Ahorro de recursos
2.Desventajas
- Riesgo alto de acceso no autorizado a datos debido a posibles errores
- Dificultades de escalado para grandes inquilinos
- Poca flexibilidad
- Complejidad en su implementación
3.Base de datos separada
Cada inquilino cuenta con su propia base de datos. Los inquilinos comparten el mismo código fuente, pero con diferentes configuraciones y datos.
3.Ventajas
- Alto de aislamiento de datos
- Personalización de la base de datos para satisfacer las necesidades específicas de los inquilinos
- Escalabilidad para inquilinos grandes
3.Desventajas
- Incremento en costos operativos y de gestión
- Incremento en consumo de recursos y migraciones
- Actualizaciones complejas
- Mayor complejidad de desarrollo
- Requiere mecanismos de aislamiento de datos
4.Multi-tenancy híbrido
Combina elementos de diferentes niveles de multi-tenancy. Por ejemplo, base de datos y esquema compartidos para inquilinos más pequeños y bases de datos separadas para inquilinos más grandes o más exigentes.
4.Ventajas
- Flexibilidad para ajustar la arquitectura a las necesidades específicas de los diferentes grupos de inquilinos
- Potencial optimización de costes y recursos.
4.Desventajas
- Mayor complejidad de diseño e implementación
- Mayor complejidad arquitectónica y de gestión
- Costos potencialmente más altos de implementación y mantenimiento.
La elección del tipo de multi-tenancy dependerá de las necesidades específicas de cada aplicación, el nivel de control que se requiera, los recursos disponibles y la tolerancia al riesgo.
La tenencia múltiple
es adecuada para una variedad de escenarios, especialmente para organizaciones y aplicaciones que apuntan a servir a múltiples clientes o clientes con una única instancia de software. A continuación se muestran algunos grupos clave para quienes la tenencia múltiple es beneficiosa:
- Proveedores de software como servicio (SaaS)
- Gobierno e instituciones educativas
- Sistemas de gestión de relaciones con el cliente (CRM)
- Instituciones financieras y bancarias
Conclusión
Elegir el tipo de multi-tenancy
adecuado para cada aplicación es crucial, una buena elección asegura un funcionamiento eficiente, seguro y escalable. Considerar las necesidades específicas y evaluar cuidadosamente las ventajas y desventajas de cada tipo de configuración, no se debe tomar a la ligera.