Subir una aplicación a Windows Azure

Versión Actualizada aquí

Una vez que tenemos agregado un servicio en Windows Azure, estamos preparados para subir nuestra aplicación a la nube. Normalmente, lo que debemos hacer, es subir la misma al entorno Staging y, una vez que hayamos realizado las pruebas oportunas, pasarla a producción para que nuestro servicio sea público.
Para trabajar con Windows Azure y Visual Studio necesitamos instalar una serie de complementos. Para acceder a ellos, nos dirigimos a www.microsoft.com/azure y pulsamos en el siguiente enlace:


En esta página se nos ofrecen una serie de links como las herramientas para Visual Studio, Windows Azure SDK y Microsoft .NET Service SDK. Haremos clic en cada uno de los enlaces para instalar los mismos.


Cuando finalicemos las instalaciones, abrimos nuestro Visual Studio, File => New => Project … y deberíamos tener una nueva plantilla llamada Cloud Service.

Cuando pulsamos OK, nos aparece una nueva ventana con tres tipos de proyectos más:

  • ASP.NET Web Role : Es una aplicación Web  estándar, preparada para funcionar en Windows Azure.
  • Worker Role: Es una aplicación que se ejecuta en segundo plano, como un servicio Windows, para Windows Azure.
  • CGI Web Role: Este proyecto se utiliza para correr aplicaciones FastCGI.

Seleccionamos ASP.NET Web Role y, a través los botones que aparecen en el centro,  añadimos la selección a la parte derecha de la ventana, modificando su nombre por Movies.WebRole.


A partir de este momento, tenemos dos proyectos en nuestra solución:

CloudService contiene la referencia de Movies.WebRole y además dos archivos necesarios para Windows Azure: ServiceConfiguration.cscfg, el cual incluye la configuración de nuestro servicio, instancias que tiene, etcétera y ServiceDefinition.csdef que contiene la metadata necesaria para que Windows Azure entienda cual es la forma de trabajar nuestra aplicación (En este archivo aparecen los roles de nuestra aplicación, endpoints, etc.)

Como realmente no me quiero extender en lo que es la codificación de un programa nuevo, únicamente voy a incluir un texto en el Default.aspx de Movies.WebRole, ya que solo quiero mostrar la forma de subir la aplicación a la nube.

   1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Movies.WebRole._Default" %>
   2:  
   3: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   4: <html xmlns="http://www.w3.org/1999/xhtml" >
   5: <head runat="server">
   6:     <title>Testing Windows Azure</title>
   7: </head>
   8: <body>
   9:     <form id="form1" runat="server">
  10:     <div>
  11:     Tutorial de Windows Azure desde <a href="http://returngis.blogspot.com/">Return(GiS);</a>
  12:     </div>
  13:     </form>
  14: </body>
  15: </html> 


Si pulsamos F5 para probar en local la misma, nos encontraríamos con este mensaje:

Lo único de lo que nos está advirtiendo es que Development Fabric necesita ser iniciado para poder arrancar este tipo de aplicación en local y que necesita que nuestro Visual Studio esté abierto con credenciales de administrador. Entonces, cerramos Visual Studio, hacemos clic sobre el icono del mismo y pulsamos sobre “Ejecutar como administrador”. Abrimos nuestra aplicación de nuevo y al pulsar F5 nos aparecerá un cuadro de diálogo distinto, preguntando si puede iniciar Development Storage con credenciales de Administrador.

Cuando damos permiso, aparecerá una nueva ventana donde nos informa de la inicialización de Development Storage y la instancia de SQL Server que está usando.


La aplicación arranca y dos iconos aparecen en nuestra barra de tareas:

Development Fabric es una interfaz de administración, donde podemos ver nuestro servicio, las instancias que tiene a su disposición y la consola del mismo.


Y, por otro lado, Development Storage:

Esta otra herramienta, depende de una instancia de SQL Server y se utiliza para el almacenamiento. En este caso, no es necesario Development Storage ya que no necesitamos almacenar absolutamente nada.

Sin entrar en más detalles por el momento, ha llegado la hora de publicar nuestra pequeña aplicación en la nube. Como si se tratara de una aplicación cualquiera, seleccionamos CloudService con el botón derecho y seleccionamos Publish…
Al hacer esto, ocurren dos cosas: Nos abre una ventana de nuestro explorador web que nos envía al portal de Azure y una ventana del explorador de Windows en la ubicación donde se encuentran los archivos que tendremos que subir.

En el explorador web, seleccionamos nuestro proyecto, hacemos clic en el servicio que tenemos preparado para nuestra aplicación y en el apartado Staging hacemos clic en el botón Deploy.
Se nos piden dos archivos: Aplication Package (CloudService) y Configuration Settings (ServiceConfiguration). Añadimos cada uno en su lugar, indicamos una etiqueta para este deploy  y pulsamos en el botón Deploy.
Aparecerá una ventana en blanco durante unos instantes y volveremos a la página de nuestro Servicio con la siguiente imagen:

Si ahora mismo pulsamos en la URL que nos ofrece, no funcionará ya que el servicio aún no está iniciado. Para ello, pulsamos en el botón Run.

Una vez que finalice, cambiará el estado a Initializing, el cual puede tardar un tiempo en cambiar a Started que es el que nos indicará que nuestra aplicación está lista para acceder en el entorno de Staging.


Ahora ya podemos probar en nuestro entorno de Staging de Windows Azure, sin necesidad de tenerlo públicamente en Internet. Cuando creamos que esté listo, es tan fácil como pulsar el botón de sincronización central y la nube se encargará de realizar el trabajo por nosotros.


Cuando realizamos la sincronización, nuestro entorno de Staging recupera la versión que estaba subida anteriormente en Producción, si es que existía alguna, y nuestra URL pública queda habilitada con nuestro nuevo servicio.

¡Saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *