Disponibilidad, escalabilidad, tolerancia a fallos son algunos de los requisitos con los que nos encontramos habitualmente en muchas de las aplicaciones que desarrollamos y como seguro que ya sabéis, Windows Azure puede ser un gran aliado a la hora de conseguirlos.
A continuación incluyo un pequeño “tip” relativo a la disponibilidad de las aplicaciones…
Cuando desplegamos una aplicación en Windows Azure podemos elegir la versión del sistema operativo que deseamos emplear. Generalmente, la alternativa más habitual es desplegar sobre la última versión disponible en ese momento…
Pero…¿Qué tipo de actualización seleccionamos?¿Automática o Manual?¿Tiene alguna implicación para mi aplicación?
Si seleccionamos la opción de actualización automática, cada vez que haya una nueva versión del sistema operativo de Azure, las instancias dónde residen nuestra aplicación se actualizarán de forma automática. Si se actualiza, significa que durante un determinado período de tiempo, en tiempo de actualización, mi aplicación NO estará disponible.
El tiempo de actualización no tiene por qué ser largo pero es un período de inactividad de mi aplicación que no se puede controlar y no se sabe cuándo va a ocurrir.
En las aplicaciones que por carga necesite más de una instancia no tendré el problema porque si se actualiza una instancia la otra atenderás todas las peticiones de manera puntual.
Pero si a mí me vale con una instancia, por el tipo de aplicación que sea, tener que poner dos instancias sólo para protegerme de las actualizaciones del sistema operativo no sería práctico y además, sería el doble de caro 🙂
Solución? Pues a la hora de desplegar la aplicación seleccionar el modo manual y elegir la versión del sistema operativo. De esta manera, Windows Azure no realizará el proceso automático y tendremos que ser nosotros los que manualmente lo actualicemos cuando consideremos. Nosotros controlamos el proceso y el momento de inactividad de la aplicación.