> Manuales > Windows Azure

Vamos a tratar de hacer un ejemplo mínimo, para centrarnos en Azure como plataforma y que por otro lado nos permita ver "nubes" de inmediato.

En anteriores entregas vimos una pequeña introducción a Windows Azure, un producto de Microsoft para programación en la nube. Ahora estamos en condiciones de ponernos manos a la obra con un primer ejemplo básico, el típico "Hola Mundo" que nosotros hemos llamado en esta ocasión "Hola nube".

Nuestro ejemplo será una simple página Web que muestre la última fotografía del satélite meteorológico Meteosat. En ella podremos introducir observaciones sobre la imagen y guardar los datos mediante un botón de comando, pero de momento nos conformaremos con mostrar la fotografía, dejando para más adelante la implementación de la manipulación y almacenamiento de datos.

Para empezar, arrancamos Visual Studio con privilegios de administrador, dado que el entorno de simulación local de la plataforma requerirá de ciertos permisos sobre nuestra máquina. Creamos un proyecto de la nueva categoría "Cloud", seleccionando como plantilla "Windows Azure Cloud Service", y asignamos los nombres WeatherService y CloudMania al proyecto y la solución, respectivamente.

Una vez que aceptamos el diálogo, se nos consultará qué roles debe implementar el servicio que queremos desarrollar. Podemos ver los roles como las máquinas virtuales que vamos a utilizar para desplegar nuestra aplicación en la nube. Cada rol nos presenta una configuración distinta de máquina orientada a unas tareas concretas. Los roles que se nos proponen son los siguientes:

Nota: En la actualidad, Azure también da soporte a desarrollos realizados con Ruby, Python o Java, pero éstos requieren de la instalación de software adicional en nuestra máquina de desarrollo.

Dada la naturaleza de nuestro ejercicio, tan solo necesitamos un rol Web ASP.NET. Al indicarlo, se nos generará la estructura de nuestra solución (figura 1), donde nos encontraremos con un nuevo proyecto: al proyecto WeatherService, que contiene la configuración y metadatos del nuevo servicio, se añadirá otro llamado WebRole1, que contiene una implementación prácticamente igual a lo que sería un proyecto ASP.NET tradicional. Centrémonos de momento en Default.aspx para mostrar la última imagen del Meteosat (listado 1); bastará con insertar una etiqueta (tag) de imagen en la página y ubicar un par de controles con el espacio para los comentarios y el botón de guardar.
Ahora ya estamos en disposición de arrancar nuestra solución; no almacena datos, pero ya mostrará la última fotografía del satélite. Al ejecutar, advertiremos que nos aparece un nuevo icono de notificación, ubicado en la esquina inferior derecha de la pantalla, que muestra el estado de los servicios asociados a nuestro entorno de desarrollo. En estos momentos se están levantando los entornos de desarrollo locales de los dos servicios clave de la plataforma Azure: Development Fabric y Development Storage.

Listado 1. Mostrar última imagen del Meteosat (Default.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="WebRole1._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="float:left; margin-right: 20px;">
<img ID="Imagen" runat="server" alt="Foto Meteosat"
src="http://www.meteosat.com/imagenes/meteosat/sp/ultima_meteosat-visible.jpg"/>
</div>
<div>
<asp:TextBox ID="txtObservaciones" runat="server" TextMode="MultiLine"
Height="100px" Width="300px"/>
<br/>
<asp:Button ID="btnGuardar" runat="server" Text="Almacenar"
onclick="btnGuardar_Click" />
</div>
</form>
</body>

Development Fabric es el servicio que nos simula el Fabric Controller de Azure, un servicio vital del sistema, dado que es el encargado de monitorizar, mantener y provisionar el entorno donde se ejecuten nuestras aplicaciones en la nube.
Por otro lado, con Development Storage dispondremos en local de todas las herramientas disponibles en Azure para que nuestros desarrollos puedan almacenar datos no relacionales accesibles vía REST. El servicio contempla tres modelos de almacenamiento:

Para implementar los tres modelos, y aunque parezca paradójico, la plataforma local se sustenta sobre SQL Server. De hecho, lo primero que veremos antes de que se nos muestre nuestra aplicación es la ventana de inicialización del Storage, la cual, una vez aceptada, dará paso al navegador con nuestra aplicación.
Ahora que ya tenemos desarrollada la primera parte de nuestra "nube local", tendremos la posibilidad de interactuar con los servicios de Fabric y Storage mediante los administradores accesibles en el menú contextual del icono de notificación. También podremos configurar nuestro servicio editando en el proyecto WeatherService los archivos ServiceConfiguration.cscfg y ServiceDefinition.csdef o, sin necesidad de tocar XML, configurar directamente vía WebRole1 (ver figura 2). Es de destacar con qué facilidad podremos definir el número de máquinas virtuales que soportarán nuestra aplicación, la potencia de las mismas (tabla 1) o la sencilla configuración de los endpoints.

Para probar, ¿primero hay que pasar la tarjeta?

¿Y cómo podemos hacer pruebas reales en la nube? Microsoft ofrece dos modalidades gratuitas en promoción, una para suscriptores MSDN y otra para el público general. Las dos modalidades constan de una serie de recursos limitados, y en caso de superar los consumos establecidos deberemos abonar los costes adicionales. Todas las labores administrativas relacionadas con Azure se gestionan desde el portal Microsoft Online Services, al que accederemos para pedir nuestra cuenta.

Nota: Si deseamos usar la oferta para suscriptores MSDN, deberemos acceder primero desde el enlace que aparece en el menú de suscripción del propio portal de MSDN. En la zona "Suscripciones" accederemos a la opción "Plataforma Windows Azure" para poder disfrutar de la oferta con mayores recursos disponibles y durante un período de tiempo más extenso.

Si es la primera vez que accedemos al portal de servicios en línea de Microsoft, se nos requerirá una serie de datos de contacto; una vez rellenados los formularios, dependiendo del tipo de promoción iremos por un camino u otro. En el caso de la promoción pública, nos dirigimos a la pestaña "Servicios", seleccionamos "Plataforma Windows Azure" y en "Ofertas especiales" elegimos "Comprar ahora" (figura 3); mientras que los suscriptores MSDN se encontrarán ya en el carro de la compra y tendrán que pulsar "Pagar" para continuar. En ambos casos, entre los datos que nos piden está el número de tarjeta de crédito que es obligatorio facilitar, dado que si excedemos los recursos asignados se nos podrá cobrar.

Cuando hayamos facilitado todos los datos que se nos requieren, Microsoft nos enviará un par de correos avisándonos de la activación del servicio y dándonos instrucciones para el acceso al portal de desarrollo de Azure.
Dos detalles importantes a tener en cuenta: primero, si no queremos descuidarnos y exceder los límites gratuitos de las promociones, podemos consultar la cantidad de recursos consumidos hasta un momento determinado (la información no es instantánea, tarda unas horas en actualizarse) desde el apartado "Acciones", pulsando el enlace "Ver mis facturas". Y segundo, el hecho de que por defecto nuestra suscripción a la plataforma Azure está activada para renovarse automáticamente cuando finalice el plazo de prueba. Si no queremos pasar a un servicio de pago sin nuestra intervención, podemos cancelar la renovación automática en la pestaña de suscripciones mediante la acción "Cancelar suscripción de renovación automática".

Nota: El sistema implementa una serie de avisos, vía correo electrónico, que nos advierten cuando estamos a punto de sobrepasar los límites establecidos en las cuentas de evaluación.

Toni Recio y Gerard López

Project Manager y Analista Programador, ambos en Pasiona Consulting

Manual