Introducción

Windows Azure Web Sites es una solución flexible de hosting de aplicaciones web en diferentes lenguajes, y diferentes mecanismos de publicación.

Actualmente WAWS soporta de tecnología de servidor ASP.NET, PHP, Python, Node.js.

Y se pueden utilizar estos mecanismos de publicación: FTP, SFTP Git, Team Foundation Server (TFS), GitHub, BitBucket, Dropbox.

Además de todo esto se soportan dos entornos de trabajo de producción y de staging que se pueden intercambiar en cualquier momento para hacer pruebas de integración.

Kudu

Kudu es la plataforma que hay detrás de la publicación de GIT en WAWS. Es completamente Open Source (https://github.com/projectkudu/kudu/) y se puede instalar fuera de Windows Azure. Este software es que permite la administración de todos los servicios que ofrece los sitios web, para que el usuario puede hacerlo por él mismo.

clip_image002

¿Cómo se puede acceder al sitio web de Kudu de mi WAWS?

Lo primero que se tiene que hacer en configuración es activar la capacidad de editar en Visual Studio Online “Monaco”. Una vez que se ha activado esta característica entonces se puede navegar al portal de Kudu anteponiendo .scm a la url.

{miSitioWeb}.azurewebsites.net -> {miSitioWeb}.scm.azurewebsites.net

A partir de aquí se introducen las credenciales de publicación estándar y se puede acceder a la consola.

Deployment Hooks

Como parte de la publicación de una aplicación web también hay un script de publicación de tu sitio web. Esto es así, porque dependiendo de la tecnología Web que se está usando el proceso de compilación (en el caso de ASP.NET) o de resolución de dependencias (Node.js) es completamente diferente y se manera de manera diferente.

Desde aquí se puede configurar como se puede realizar el proceso de publicación, en el caso concreto de Node.js, por ejemplo, se ejecuta el comando npm install que permite, en base al fichero package.json resolver las dependencias e instalarlas de manera local y luego ejecutar el comando node server.js que pone a ejecutar la aplicación web.

REST API

Kudu tiene una API Rest que permite consultar toda la información relativa al sitio seb.

App Settings

Permite mostrar la información de configuración de la aplicación.

clip_image004

Deployments

En el caso de que se tenga un despliegue activo, esta llamada de la API, muestra el detalle de los deployments que se tienen activos y los anteriores. Por cada uno de los despliegues, se muestran sus detalles.

clip_image006

Files

Con esta operación se puede explorar todo el sistema de archivos remoto del servidor.

Process and Mini-dumps

Las aplicaciones son ejecutadas por procesos host que dependiendo de la tecnología pueden variar. ¿Qué pasa si el proceso que aloja Node.js se ha quedado bloqueado?, pues no pasa nada, porque desde esta consola se puede hacer un minidump para saber cuál es el estado del mismo a través de WinDGB.

Además de eso por cada uno de los procesos se puede ver información de la colección de Threads que tiene el proceso (además información individual de cada Thread), de la lista de ficheros que están abiertos e información sobre la memoria usada del mismo.

Runtime

Con esta operación se puede mostrar una lista de los runtimes que se tienen instalados para la tecnología en concreto que se esté usando en ese sitio web. En este ejemplo se está usando Node.js y se muestra un listado de los runtime de Node.js instalados en el servidor.

clip_image007

Source Control Info

Permite mostrar información del control de código fuente utilizando en cada momento para publicar el sitio web. En este caso, es un repositorio de Git con lo que muestra la URL de deployment que se utiliza para hacer push.

Web Hooks

Web Hooks forma parte del proceso de publicación y permite configurar el proceso de publicación del sitio web. De esta manera el usuario puede personalizar el flujo de publicación en determinadas partes. Por ahora solamente se permite el evento “PostDEployment”.

Web Jobs

Desde aquí se puede acceder a la configuración de los trabajos web que se tengan configurados.

Enviroment

Desde ahí se puede listar la información de entorno, rutas locales, información del sistema, cabeceras HTTP, ect.

clip_image009

Debug Console

Como parte de Kudu también existe una consola remota que pemite ejecutar casi todos los comandos de comandero de Windows. Además de esta consola hay otra consola de PowerShell remota.

clip_image011

Diagnostic dump

Esta característica directamente genera un fichero .zip que contiene toda la información que necesitas para extraer información de los logs de IIS, de las extensiones del propio editor de Visual Studio Online “Monaco” y de Git.

Log Steam

Es un flujo en tiempo real (utilizando SingalR) que permite ver en tiempo real el flujo de la consola del servidor al cliente. De esta manera en el momento en el que se genere una excepción en servidor lo se muestre información de depuración.

Conectarse a la consola de administración de un sitio web remoto con IIS Manager

La otra característica de la que se quería hablar en este post es sobre la posibilidad de conectarte desde el IIS Manager a un sitio web alojado en Windows Azure.

Para empezar lo primero que se tiene que hacer es tener instalada la consola de IIS en la máquina. Para poder instalar esta extensión, que viene de como una característica en Windows Server, se puede ir aquí: http://www.iis.net/downloads/microsoft/iis-manager. Una vez que se tiene esta consola, desde el menú de la MMC, se pulsa “Conectarse a un Sitio”. Se introduce la url de administración de Kudu {miSitioWeb}.scm.azurewebsites.net:433 y se establece el sitio

clip_image013

El siguiente paso solicita las credenciales de acceso. Pero cuidado porque no son las credenciales que se han usado hasta ahora de publicación sino las que forman parte del fichero de publicación de sitio web. Algo parecido a esto:

clip_image015

Una vez introducidas las credenciales, el asistente pedirá un nombre para el sitio web.

Puede que al finalizar el asistente solicite que se descarguen una serie de ensamblados que no se tienen en local para poder administrar ese sitio web. Por ejemplo:

clip_image016

Cuando ya se han descargado esos ficheros ya se puede acceder a la consola de administración directamente.

clip_image018

Conclusión

Tanto con la consola de Kudu con la gestión remota de sitios web a través de IIS Manager, Microsoft permite una gestión flexible del sitio web alojado en Windows Azure Web Sites, permitiendo que se administren y configuren todos los aspecto relacionados con el producto.

Luis Guerrero.

Technical Evangelist Windows Azure.

@guerrerotook