Windows Azure no es sólo para .NET

Al contrario de lo que algunos piensan, la Plataforma Windows Azure no es la plataforma cloud para .NET. El servicio de Windows Azure pone a nuestra disposicion un Windows Server 2008 R2 para alojar nuestras aplicaciones y un servicio de Fabric para mantenerlas arriba, gestionar el número de instancias, etcétera. Pero NO es exclusivo para aplicaciones .NET  Puede subirse cualquier aplicacion o framework que se pueda ejecutar sobre la plataforma base, Windows Server 2008 R2.

De modo que podemos encontrar servicios en C++, aplicaciones en Java, Ruby… y por supuesto PHP. Desde hace tiempo Microsoft esta apoyando y empujando PHP como plataforma de desarrollo para la web. Con FastCGI para IIS, los drivers para SQL, el soporte en Expression y en WebMatrix, wincache de php para IIS, empujar drupal, wordpres, joomla… Hace tiempo que se viene trabajando en esa línea y no podían faltar las herramientas y librerías necesarias para trabajar en cloud. En esta url se pueden encontrar muchos de los proyectos relacionados con PHP en los que trabaja Microsoft http://www.interoperabilitybridges.com/projects/tag/PHP.aspx

Plataforma Windows Azure & Eclipse

Este es el primer artículo de una serie donde intentaremos mostrar cómo es posible utilizar windows Azure desde PHP. En este primer post, veremos una primera aproximación para que se vea lo sencillo que resulta empezar a desarrollar para la nube desde PHP utilizando Eclipse como herramienta.

Hace tiempo se presentó un pligin para trabajar con la Plataforma Windows Azure desde Eclipse, recientemente el equipo de Interoperabilidad en Microsoft, ha anunciado la disponibilidad de otra actualización de las herramientas de Windows Azure para Eclipse. En éste post, veremos cómo utilizar el plugin actualizado para crear y ejecutar un proyecto en el Development Fabric de Azure y más adelante, en otros post, veremos cómo incorporarle capacidad para acceder a datos, cómo prepararlo para publicarlo en Windows Azure y cómo desplegarlo finalmente en la nube.

Para este post no, pero para los siguientes, si quieres seguirlos paso a paso, necesitarás una cuenta en Windows Azure y preparar el servicio de almacenamiento en SQL Azure. Existen cuentas de evaluación para probar Windows Azure sin coste.

Instalando las herramientas de Windows Azure para Eclipse

En el sitio oficial de la descarga de las herramientas tienes las instrucciones paso a paso, http://www.windowsazure4e.org/download/. Pero básicamente, dar de alta http://www.windowsazure4e.org/update como sitio de fuentes en Eclipse para incorporar el plugin de las herramientas de Azure.

 

Creando un proyecto de desarrollo

Si tras seguir los pasos en la guía de las herramientas no te aparece el menú de Windows Azure, tendrás que habilitarlo manualmente en el menú Windows.

image

Una vez nos aparece, seguimos estos pasos:

1. Click en File > New > Windows Azure PHP Project

image

2. Escogemos un nombre de proyecto y click en Next

image

3. Ahora nos da una serie de opciones para configurar un rol (máquina virtual). Escogemos un nombre, y como por ahora vamos a hacer un rol orientado a frontal web, sin almacenamiento, no necesitamos marcar ninguna opción más.

image

Al hacer click en Next, nos da la posibilidad de añadir más roles. En nuestro caso no es necesario, hacemos click en Finish

image

Las herramientas nos han creado un proyecto base tomando como referencia los parámetros de configuración que le hemos proporcionado.

image

De los archivos que rodean al proyecto, el que más nos interesa a partir de ahora es el index.php, punto base de nuestra aplicación. El resto de archivos y carpetas, son la infraestructura necesaria en base a la configuración:

Carpeta php. Incluye el runtime de php. Recordemos que estamos subiendo la aplicación a una máquina virtual Windows Server 208R2 y que hemos de incluirle el runtime de PHP contra el que estamos desarrollando

Web.config. Información relacionada con la configuración del frontal web. Se establece el mapping de php al intérprete, la página por defecto, se incluyen módulos para diagnóstico…

 

Para nuestro hola mundo, no hace falta que añadamos código, tenemos un phpinfo que hará las funciones de hola mundo :)

 

Ejecutando un proyecto en el development fabric

El development fabric es el entorno de ejecución de la nube simulado en nuestro equipo, de este modo nos evitamos tener que hacer despliegues para probar funcionalidad, corregir fallos a ciegas e incurrir en costes para pruebas. El development fabric nos va a permitir ir desarrollando en local la aplicación, probarla, depurarla para finalmente subirla a la nube cuando esté preparada.

Para arrancar el development fabric en nuestra máquina, tendremos que ejecutar el siguiente comando desde la carpeta del SDK - C:\Program Files\Windows Azure SDK\v1.1\bin (o añadir el SDK al Path)   csrun /devfabric:start

image

A partir de este momento deberíamos ver un nuevo icono en la barra image, es el indicador de que tenemos el development fabric preparado.

Ahora es el momento de volver a Eclipse, seleccionar el web role en el explorador de proyectos y hacer click en Windows Azure > RunWindows Azure PHP Project in development fabric

image 

En este momento el plugin empaquetará el proyecto y la configuración y se lo pasará al servicio de development fabric para que lo ejecute. En unos segundos, nos abrirá una página con el proyecto ejecutándose

 

image

Explorando el Developement Fabric

Nuestro proyecto ha sido empaquetado y se esta simulando su ejecución en la nube, si vamos al icono del Development Fabric en la barra de tareas, podemos hacer click en Show Development Fabric UI

image

Y acceder a la consola de monitorización de la máquina virtual simulada

image

En este caso solo tenemos un rol (el FrontalWebRole) y una instancia ( la 0 ). Pero en un proyecto más complejo veríamos los diferentes roles con los diferentes números de instancias ejecutando el rol. Al hacer click sobre cada instancia, vemos la consola de output de la misma. Donde podemos enviar mensajes para trazar funcionalidad, mostrar excepciones, etcétera… 

Siguiente paso

Como habéis podido ver, Eclipse + Windows Azure plugin nos va a facilitar enormemente la tarea de desarrollo y empaquetado de las aplicaciones. En el siguiente post, haremos una aplicación que utilice datos para ir complicando el escenario.

 

Estamos muy interesados en vuestro feedback y en comentarios relacionados.

Gracias & happy hacking!

David Salgado – Web & Cloud Technical Evangelist

http://davidsalgado.mehttp://twitter.com/davidsb