Versionado de aplicaciones Windows Azure

En toda aplicación uno de los puntos claves a tener en cuenta es todo lo relacionado con el despliegue de la aplicación, acción que no resulta complicada con Windows Azure, pero incluso más importante que el despliegue es todo lo relacionado con el proceso de actualización y versiones de aplicaciones.

Entornos de preproducción y producción

Al realizar el despliegue de una aplicación en servicio de Windows Azure se puede elegir si se desea publicar la aplicación en preproducción o producción.

Ambos entornos son exactamente iguales siendo la única diferencia que si el despliegue se realiza en el entorno de preproducción Windows Azure proporcionará una URL temporal para probar la aplicación. Si en entorno se realiza en el entorno de producción, la URL que se asignará será la establecida al crear el servicio de Azure.

No es necesario desplegar primero la aplicación en el entorno de preproducción, se puede desplegar directamente en el entorno de producción. Tener ambos entornos posibilita poder tener dos versiones diferentes de la aplicación publicada de forma simultánea, cada una publicada en una URI diferente.


Figura 1.- Información del servicio

Actualización de preproducción a producción (VIP-Swap)

Si el despliegue se realiza sobre el entorno de preproducción pasarlo a entorno de producción es una tarea que puede realizarse de forma inmediata, únicamente pulsando sobre el botón que se encuentra entre los dos entornos.


Figura 2.- Paso de preproducción a producción

Este tipo de actualización es inmediata, ya que Windows Azure realmente no migra la aplicación de entorno, simplemente cambia la redirección de las URI actualizando el DNS, para que la URI de entorno de producción apunta a las máquinas dónde está el despliegue de preproducción. La URI de entorno de preproducción dejará de existir.

Este tipo de actualización permite que la aplicación esté siempre disponible y que no haya ningún momento en el cuál no ofrece servicio.

Como punto negativo de este tipo de actualización, es que no se puede cambiar la configuración entre el entorno de preproducción y producción. Por ejemplo, no puede cambiarse el número de instancias desplegadas. Si en el entorno de producción se tiene una instancia de la aplicación, al desplegar a producción sólo se tendrá esa única instancia.

Actualización de un entorno de forma directa (Upgrade)

La segunda opción a la hora de actualizar un despliegue es la actualización directa de entorno. A través de la opción "Upgrade" es posible actualizar el despliegue. Permite actualizarse tanto el entorno de preproducción como en entorno de producción.

En este tipo de actualización es importante conocer el concepto de "upgrade domains". Los upgrade domains son agrupaciones lógicas que se emplean en el proceso de actualización. Las actualizaciones se realizan teniendo en cuenta estas agrupaciones; primero se actualiza un upgrade domain, luego otro, luego etc...y no se pasa de uno a otro hasta que el anterior se ha actualizado correctamente.

Los "upgrade domains" evitan paradas de servicio siempre y cuando el servicio se encuentre desplegado en más de un dominio y también sirven como medida de seguridad ante un error en el proceso de actualización; Si falla la actualización de un dominio no se pasa al siguiente.

Por defecto su valor es 5, valor que se puede modificar en el fichero de configuración CSDEF.


Figura 3- Upgrade domains

Entre las opciones de actualización se permite definir si el proceso de actualización será automático o manual. Si el proceso es manual deberá ser el usuario el que decida ir actualizando dominio a dominio. Si el proceso es automático la actualización se realizará de forma secuencia.


Figura 4- Opción de actualización

Este tipo de actualización permite actualizar todos los roles de aplicación o solamente aquellos que interesen al usuario.

Actualización de la configuración (Update)

Otro tipo de actualización posible es la actualización de la configuración del servicio. A través de la opción "Configure" pueden cambiarse los parámetros de configuración del fichero cscfg de la aplicación.

Por ejemplo, cambiando este fichero es posible establecer el número de instancias del servicio que se quiere desplegar.


Figura 5.- Actualización de la configuración

En este tipo de actualización también es necesario tener en cuenta el concepto de "upgrade domain".