Hola a todos, en este primer post de la serie, haré la introducción al caso de estudio, explicando los puntos principales y de forma general los componentes que se han decidido utilizar para la solución del mismo, aclaro que la idea es estructurar la solución sobre Microsoft Azure y qué es solo una posible solución más no la única.


Así que iniciemos, primero un pequeño párrafo con el caso:

La líbreria Ultimate Book Store desea rediseñar su portal Web para ofrecer una mejor experiencia al usuario; actualmente, cuenta con miles de libros disponibles y cada día el número aumenta considerablemente, por lo que en poco tiempo se estará hablando de millones de libros, ese aumento de libros disponibles supone una alta demanda, por lo cual, la escalabilidad, alta disponibilidad y gran rendimiento en las búsquedas del sistema juegan un papel muy importante para el negocio.

Bueno, en realidad el caso es simple, pero es bueno pensar que realmente vamos a solucionar algo :).

Luego de analizar el escenario (y pensando en Azure que es el foco del tema) se ha decidido utilizar los siguientes componentes:

  • Azure Web App: Se ha desplegar el Web Site sobre un Azure Web App por su sistema de escalamiento sencillo y eficaz, al ofrecer varios slots se tiene la posibilidad de manejar diferentes entornos para ir validando nuevos requerimientos, así mismo, con el sistema de auto-escalamiento no es necesaria la intervención manual para responder al aumento de carga.
  • SQL Database: Como sistema de almacenamiento relacional: El sistema original tiene un motor relacional (SQL Server 2008), sin embargo, para dosminuir las tareas administrativas se realizará la migración a SQL Database.
  • Azure Search: Uno de los puntos más importantes del sistema son las búsquedas, por este motivo se ha decidido utilizar un componente especializado que permita aumentar el rendimiento de las búsquedas de los libros, así mismo se disminuye la carga de la base de datos relacional.
  • Azure Storage Queues: para ir encolando cada uno de los libros que se van creando para luego ser procesados e indexados en Azure Search.
  • Azure Web Jobs: para ir procesando cada mensaje (libro) que se vaya agregando a la cola y este sea enviado al motor de búsqueda.


Y en general esos son los componentes que van a conformar el sistema (inicialmente, luego iré añadiendo nuevos elementos), en este primero post la idea es hacer una introducción al escenario y describir brevemente cada parte del sistema, en los siguientes post veremos paso a paso cada componente.

Espero la serie les sea de ayuda!

PD: Puede que en este momento te cuestiones si necesitamos todos esos componentes o no, y en realidad puede que no sea necesario, sin embargo repito, la idea es mostrar como es posible trabajar con varios componentes de Azure en conjunto para ofrecer soluciones más completas y robustas.

Saludos!