Después de programar la aplicación en local, camos a subirlaa la nube, en los data centers de Microsoft.
Una vez que hemos realizado nuestras pruebas en entorno local (podríamos decir que nuestra aplicación está en la niebla ;-) como hemos visto en los artículos anteriores de nuestro manual de Windows Azure y hemos obtenido una cuenta con acceso a Azure, estamos en condiciones de publicar nuestro "Hola nube" en los Data Centers de Microsoft.
Para publicar nuestro proyecto WeatherService, volveremos a Visual Studio y utilizaremos la opción "Publish" del menú "Build", lo que nos abrirá una carpeta local donde están ubicados nuestros dos únicos ficheros necesarios para hacer la publicación, y también nos lanzará nuestro navegador predeterminado mostrando el portal de desarrollo de Azure. Si es la primera vez que accedemos al portal, tendremos que crear un servicio mediante el enlace "New Service" y seleccionar entre crear una cuenta Storage o un Hosted Service. Para el ejemplo que nos ocupa, elegiremos el servicio, introduciremos un nombre y descripción para el mismo, y después tendremos que elegir una URL para nuestra aplicación, que será un subdominio de cloudapp.net. Observe que tenemos un botón para comprobar que la dirección está disponible. Hemos de tener en cuenta que ni el nombre ni la URL podrán ser modificados posteriormente. Otro aspecto importante a decidir será en qué zona geográfica queremos que sea alojada nuestra aplicación. Aquí también podemos seleccionar un grupo de afinidad, porque si vamos a subir varias aplicaciones a la nube que interactúan entre ellas, esto nos asegura que se mantengan en una misma región geográfica. Si cuando creamos un servicio no especificamos un grupo de afinidad, después no podremos agregárselo, con lo que tendríamos que eliminar el servicio y volver a crearlo.
Una vez que tenemos el servicio creado, nos aparece un panel de gestión (figura 4). En dicho panel podemos controlar el despliegue en producción y en el entorno de staging (entorno de pruebas). Si pulsamos en la flecha de la derecha veremos los dos entornos; esto nos sirve para poder mantener una versión publicada en la nube pero en un entorno de pruebas al que podremos acceder con una URL diferente (podemos restringir el acceso), y cuando hayamos probado nuestra versión, pasarla a producción con un simple clic (figura 5). Este paso entre entornos nos desplegará la versión de staging en producción, y a su vez hará una copia de la versión de producción en staging para mantenerla de backup.
Para realizar la publicación, deberemos pulsar el botón "Deploy" (en nuestro ejemplo, lo haremos sobre el entorno de producción) e indicar la ubicación de los ficheros que nos habia generado Visual Studio al publicar: el Application Package (fichero .cspkg) y el Configuration Settings (fichero .cscfg). Entonces pulsaremos de nuevo el botón "Deploy" y esperaremos unos minutos hasta que la aplicación se haya desplegado por completo. Una vez desplegada, el cubo que representa nuestra aplicación se nos mostrará en azul, y veremos que se nos habilitan algunas nuevas opciones (figura 6). Desde la opción "Configure", podremos modificar el fichero .cscfg, donde por ejemplo podríamos establecer nuevamente el número de instancias levantadas para balancear la carga de nuestra aplicación.
Ahora ya solo nos faltaría arrancar la aplicación utilizando el botón "Run"; paciencia de nuevo, esto puede tardar unos minutos. Cuando el proceso haya finalizado, veremos que el estado de nuestra aplicación es Ready; a partir de este momento ¡estamos en la nube!, y podemos visitar nuestra aplicación desde la URL asociada.
Debemos tener claro que siempre que tengamos una aplicacion desplegada, esta estara consumiendo recursos de proceso, incluso aunque estuviera en estado Stopped. Si queremos dejar de consumir recursos para no sobrepasar las horas establecidas en las cuentas gratuitas, debemos eliminar el despliegue (!el cubo debe quedar gris!). Todo el proceso de publicacion puede realizarse de una manera automatizada mediante Windows Azure Service Management API. Los detalles de esta API basada en REST se escapan del alcance de este articulo; puede ver un escenario completo y funcional de su utilizacion en uno de los ejemplos publicados por Microsoft, CSManage.
Toni Recio y Gerard López
Project Manager y Analista Programador, ambos en Pasiona Consulting