Un servicio hosteado en Windows Azure consiste de uno o más “web roles” y “worker roles”. Un Web Role es una aplicación ASP.NET accesible vía un endpoint HTTP o HTTPS y funciona comunmente como el front-end de una aplicación. Los Worker Roles son aplicaciones de procesamiento en background, y son normalmente encontradas en el back-end. Los servicios en Windows Azure pueden componer uno o ambos roles, y pueden correr múltiples instancias de cada tipo. Las instancias de roles pueden ser agregadas o eliminadas, basadas en la demanda, y permiten a las aplicaciones escalar rápidamente y económicamente, de acuerdo a la necesidad.

Los servicios de almecenamiento de Windows Azure en la nube, incluyen servicios “Blob” para el almacenamiento de texto e información binaria, servicios de “Table” para almacenamiento estructurado que puede ser consultado por queries, y servicios de “Queue” para la mensajería confiable y persistente entre servicios.

En el hands-on lab (disponible también en el Windows Azure Training kit), se exploran los elementos básicos de los servicios de Windows Azure, por la creación de una aplicación de Libro de Visitas (GuestBook), incluyendo roles web, worker, blob storage, table storage y queues.
En la aplicación GuestBook, un web role provee el front-end que permite a los usuarios ver el contenido del libro de visitas, y publicar nuevas firmas. Cada firma contiene un nombre, mensaje y una foto asociada. La aplicación también cuenta con un worker role que genera thumbnails para cada imagen que el usuario publica.
Cuando el usuario publica un nuevo item, el web role sube la imegen a un blob storage y crea una entrada en una tabla que contiene la información ingresada por el usuario, y un link al blob con la imagen. El web role muestra esta información en el browser, para que los usuarios puedan ver el libro de visitas.
Luego de almacenar la imagen y crear la entrada, el web role postea un item de trabajo en el queue para que se procese la imagen. El worker role toma el item de trabajo del queue, levanta la imagen del blob, y cambia el tamaño de la imagen creando el thumbnail. El utilizar colas para postear items de trabajo es un patrón común en aplicaciones cloud, y permite la separación de tareas de computo, de aquellas de front-end. La ventaja de esta arquitectura, es que el font end y el back end pueden escalar independientemente.
Objetivos
En este hands-on lab, aprenderá:
- Cómo crear aplicaciones en Windows Azure, utilizando Web Roles y Worker Roles
- Utilizar los servicios de almacenamiento de Windows Azure, incluyendo blobs, queues y tables
- Desplegar una aplicación en Windows Azure
El hands on Lab cuenta de 3 ejercicios.
Ejercicio 1: Creando la primer Aplicación Windows Azure
En este ejercicio creará su aplicación GuestBook, y la ejecutará en el entorno local de desarrollo (local development fabric). Para este propósito, utilizará las herramientas de Windows Azure para Visual Studio, creando un proyecto Cloud Service.

Es especialmente importante notar las diferencias con un proyecto ASP.NET, ya que un proyecto Cloud también incluye los archivos de configuración necesarios para desplegar los servicios sobre Windows Azure. A su vez, el ejercicio muestra cómo crear el modelo de datos, seleccionando un PartitionKey adecuado para el almacenamiento.
Ejercicio 2: Procesamiento en Background con Worker Roles y Queues
En este ejercicio se agrega un worker role para leer los items posteados por el web role del fron-end. Para procesar cada work item del queue, el worker role extrae la información del libro de visitas del table. Luego busca la imagen asociada en el blob storage y crea un thumbnail, que también es almacenado en el blob. Finalmente, al completar el procesamiento, actualiza la URL del thumbnail generado, en la entrada de la tabla con la información de la firma del libro.

Ejercicio 3: Desplegando la aplicación en Windows Azure
Hasta este momento, todo el trabajo se estaba realizando en el Local Development Fabric disponible con las herramientas de Windows Azure para Visual Studio. El ejercicio 3 muestra cómo crear una cuenta en Windows Azure, para poder publicar y desplegar el servicio, en los datacenters de Microsoft.

Puede ver la descripción completa del laboratorio en la siguiente descarga:
Para una versión completa y actualizada, recomendamos descargar el Windows Azure Training kit.