Cuando se pasa del diseño de aplicaciones tradicionales a arquitecturas en la nube, uno de los temas que nos debemos plantear es el multitenancy de la aplicación. Normalmente cuando se desarrolla software empaquetado, éste está diseñado para ejecutarse en los servidores del cliente que adquiere la licencia por lo que en muchas ocasiones estas aplicaciones tendrán arquitecturas single-tenant, es decir, la aplicación sólo está diseñada para que cada cliente la despliegue en su propia infraestructura (sus servidores de aplicaciones, sus bases de datos, etc.).

Al pasar al mundo SaaS, esto se convierte en una limitación importante ya que si para cada cliente le tengo que provisionar servidores independientes, el coste de despliegue aún en modo SaaS es mucho mayor que si tengo una solución multi-tenant en donde una misma aplicación puede compartir un grupo de servidores en la nube, en Windows Azure, y además dar servicio a múltiples clientes. Desde muchos puntos de vista, las arquitecturas multi-tenant son mucho más eficientes que las single-tenant para aplicaciones SaaS. Por el contrario, nos vamos a encontrar también con arquitecturas más complejas ya que hay que tener en cuenta temas como el aprovisionamiento automático de nuevos tenants (clientes), monitorización, escalabilidad, seguridad, etc.

Afortunadamente, nos encontramos con algunas ayudas como el proyecto Cloud Ninja que establece una arquitectura multi-tenant de ejemplo en Windows Azure totalmente funcional. También es especialmente interesante el nuevo Windows Azure Autoscaling Application Block (“WASABi”) creado por el equipo de Patterns & Practices y que nos facilita enormemente el escalado automático de una aplicación en Windows Azure en base a una serie de reglas que puedo definir.

De esto y algunas cosas más hablamos en la sesión que dimos César de la Torre y yo en el último Foro de Arquitectos. A continuación tenéis la presentación completa:

 

Si estáis interesados, podéis también acceder al resto de presentaciones del Foro de Arquitectos de Diciembre desde esta carpeta de SkyDrive.