Diseñando soluciones Multi-tenant en Azure
Tags: azure, architecture, dotnet, cloud
Published: 2022-10-01 16:27:13

En algún punto de nuestra existencia, hemos tenido un cliente o una solución con una buena idea, algún software de contabilidad, seguimiento de trabajo, streaming de datos, redes sociales, entre otras, aquí el tema es claro, necesitamos una buena solución que sea capaz de escalar y de rendir a todos los usuarios del cliente sin ningún tipo de complicación, ya sea para usar la aplicación como usuarios o para nosotros como arquitectos el administrar cambios, desplegar nuevas versiones y administrar el sistema.
Para esto Microsoft Azure nos propone una serie de recomendaciones de arquitectura para diseñar estas soluciones, pero primero vamos a definir que es una aplicación multi-tenant.
Una solución multi-tenant es una que usan varios clientes o inquilinos. estos inquilinos son distintos de los usuarios. varios usuarios de una sola organización, empresa o grupo forman un único inquilino, como ejemplo pueden ser:

1. Soluciones de negocio a negocio (B2B)
2. Soluciones de trabajo y productos de software como (SaaS)
3. Soluciones de negocio a consumidor (B2C)

Consideraciones de arquitectura para una solución multi-tenant

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lpl6zrjgk47hnzwi6fda.png)

En una arquitectura se comparten algunos o todos los recursos entre los inquilinos, y esto implica que un buen diseño de arquitectura puede marcar la diferencia en cuanto a rendimiento, eficiencia y eficacia del sistema, para llegar a este punto debemos hacernos las siguientes preguntas:

¿Cómo se define lo que es un inquilino para una solución?
¿Un inquilino corresponde a un cliente o usuario o grupo de usuarios?
¿Cómo se implementara la infraestructura para admitir el sistema y cuanto aislamiento habrá entre los inquilinos?
¿Qué modelos de precios comerciales ofrecerá la solución y como afectaran estos a los requisitos del sistema multi-tenant?
¿Cómo tiene pensado hacer crecer su negocio o solución? 
¿Cómo reaccionará si escala al numero de inquilinos que espera?
¿Algún inquilino tiene requisitos inusuales o especiales?
¿Cómo supervisará, administrará, automatizará, escalará y controlará su entorno de Azure y como afectará esto al sistema?

!Wow¡ si, son muchas preguntas por responder y espero a lo largo de una serie de artículos vallamos resolviendo una por una pero por ahora permíteme comentarte algo más.

Sea cual sea tu arquitectura es esencial que comprenda los requisitos de los clientes, sobre todo si has adquirido compromisos de ventas con los clientes o si tienes obligaciones contractuales o requisitos de cumplimiento que satisfacer.

Por ejemplo, imagina que creamos una solución multi-tenant que vende a empresas del sector de servicios financieros, estos clientes tienen requisitos específicos y estrictos de seguridad por ejemplo como parte de la arquitectura se puede ofrecer una solución de firewall para acceder a recursos protegidos, y esta parte debe estar considerada dentro de la solución o por ejemplo para el control de usuarios del cliente que solución de [IS](https://www.youtube.com/watch?v=t4lVR1-vsEU) podríamos utilizar.

bien por hoy reflexiona, tienes la respuesta de estas preguntas? déjame tus comentarios y debatamos acerca de esto, seria genial tu apoyo compartiendo este articulo y comentándome que te parece el inicio de esta serie de artículos.

Comparto mis redes para cualquier duda, y dirían por ahí ¡voy y vengo!

[Twitter](https://twitter.com/RicardoJosue04)
[YouTube](https://www.youtube.com/c/RicardoJosue)
[Facebook](https://www.facebook.com/RicardoJosue04/)
[Linkedin](https://www.linkedin.com/in/ricardojosue/)