Puntos a tener en cuenta antes de desarrollar una aplicación SaaS en Windows Azure

Ya he hablado de este tema en alguna ocasión. Cuando una empresa se decide a empezar a ofrecer servicios SaaS, hay unas implicaciones de negocio que es importante entender bien tal y cómo comentaba hace unas semanas. Adicionalmente, desde el punto de vista de el diseño y arquitectura de la aplicación también hay varios temas a tener muy en cuenta. Veamos algunos de ellos:

 

  • Multi-Tenancy: Si quiero buscar economías de escala, deberé pensar siempre en una aplicación multi-tenant, es decir que desde una misma infraestructura, pueda dar servicio simultáneo a varios clientes o empresas. Hablaba más en detalle sobre este tema en este post.
  • Fiabilidad y escalabilidad: Si bien es algo importante para cualquier software, en el caso del SaaS es todavía más crítico ya que un fallo en la aplicación puede afectar de forma simultánea a un gran número de clientes.
  • Seguridad: Es fundamental tenerla presente desde el principio. Es siempre una de las primeras preocupaciones de los clientes.
  • Monitorización: Nos permite entender cómo está operando nuestra aplicación, cuáles son los patrones de uso, estimación de costes, etc.
  • Operaciones: Para ofrecer SaaS, tan importante como tener una buena solución es saber operar eficientemente la solución.
  • Portabilidad: Deberemos analizar si nuestra aplicación requiere funcionar en múltiples entornos: cloud y on-premise.
  • API: Está demostrado que, además de ofrecer un servicio útil a sus usuarios, las soluciones SaaS más exitosas ofrecen también un API de forma que terceros pueden crear apps para enriquecer la solución.
  • Personalización: Cuando estoy ofreciendo SaaS es analizar cómo de flexible va a ser mi solución.
  • Marketplaces: Debemos decidir si queremos publicitar y comercializar nuestra solución desde alguno de los marketplaces ya existentes como, por ejemplo, el Windows Azure Marketplace

Son todos los que están pero no están todos los que son. Esta lista se puede tomar como un punto de inicio de temas que debe considerar antes de definir la arquitectura de mi solución. Si tenéis interés en profundizar en este tema, os recomiendo leer este documento publicado por David Chappell:

  Building SaaS Applications on Windows Azure

Espero que haya sido útil.