Azure · Web App
Actualizaciones de Azure Web App
En la publicación de hoy voy a compartir la experiencia que tuve recientemente con el Platform as a Service: Azure Web App Updates
Platform as a Service
Al contar con la flavor PaaS, un par de cosas ya no son tu responsabilidad y dependen de tu Proveedor de la Nube, en este caso Azure.
En resumen, PaaS te permite centrarte en tu aplicación y sus datos.


Qué esperar cuando no esperas
Como estás ejecutando tu aplicación en una plataforma administrada, hay algunas cosas que debes tener en cuenta y evitar para no llevarte sorpresas.
Actualizaciones mensuales
Uno de los beneficios de tener un PaaS es mantener tu entorno con los parches más recientes aplicados, pero ¿cómo sucede esta magia detrás de escena?
Antes que nada, y reforzando la forma PaaS de hacer las cosas
No tienes que habilitar, permitir, aceptar ni hacer nada más para que tu entorno PaaS forme parte de los despliegues de actualizaciones
Azure nombra su calendario como Patched Tuesday, y todo sucede automáticamente de una manera que garantiza el SLA de los servicios de Azure.
¿Qué Tuesday?
Desafortunadamente, nunca lo sabrás. Y escuché una vez de un Ingeniero de Azure que es para evitar ataques de Denegación de Servicio (DDoS) porque durante el despliegue de actualizaciones los entornos tienen la mitad de su capacidad, lo que facilitaría el éxito de los ataques.
¿Cuál es la fecha límite para completar las actualizaciones?
Las actualizaciones se instalan fuera de horas en cada región, y para lograrlo a nivel mundial se requieren cerca de 10 días hábiles.
Reinicios y mitigaciones
Incluso realizando esta actividad fuera del horario laboral para cada región y garantizando los números de SLA, no significa que tu aplicación estará disponible durante las actualizaciones.
Hasta ahora, he experimentado dos tipos de actualizaciones, y voy a explicar brevemente sobre ellas y formas de mitigar el tiempo de inactividad de tu aplicación
Plataforma (Actualización de Infraestructura)
Estas actualizaciones son específicas de la infraestructura de App Service, y permiten correcciones de errores, parchado de seguridad, nueva funcionalidad

| Platform(Infrastructure Upgrade) | Tu aplicación fue reciclada cuando la unidad de escala de Azure estaba siendo actualizada. Este evento ocurrió varias veces durante el día en varias instancias. Existen actualizaciones periódicas realizadas por Microsoft a la plataforma subyacente de Azure para mejorar la confiabilidad, rendimiento y seguridad de la infraestructura de la plataforma donde se ejecuta tu aplicación. La mayoría de estas actualizaciones se realizan sin impacto en tu web app. Para reducir el impacto de estos eventos en tu aplicación, considera desplegar tu aplicación en múltiples regiones y usar Azure Traffic Manager para distribuir la carga entre regiones. |
Puedes reducir el impacto en tu aplicación teniendo uno o TODOS los siguientes
- Un App Service Scale Out, ya que reiniciará una instancia a la vez
- Un App Service en la misma región pero con su propio App Service y usando Azure Traffic Manager para cambiar el tráfico
- Un App Service en una región diferente y usando Azure Traffic Manager para cambiar el tráfico
Plataforma (Actualización del File Server)
Buscando mejorar la durabilidad y la seguridad, Azure también realiza actualizaciones específicas a sus servidores de archivos.
Cada App Service está conectado a dos storage: uno es el primario/activo, y el otro es secundario/pasivo. Una vez que el almacenamiento activo se actualiza, Azure tiene que apuntar el almacenamiento al nodo secundario/pasivo, y tan pronto como la actualización termina el almacenamiento se cambia de vuelta.
Dicho esto, cualquier App Service se reiniciará dos veces, y esto es a propósito.

| Platform(File Server Upgrade) | Tu aplicación fue reciclada debido a una actualización del servidor de archivos. Este evento ocurrió varias veces durante el día en varias instancias. Estos eventos provocan un movimiento de volumen de almacenamiento que puede resultar en un reinicio de tu aplicación. Si este reinicio impacta negativamente la disponibilidad de la aplicación, habilitar la función Local Cache puede ayudar a reducir la dependencia de los servidores de archivos de almacenamiento en cierta medida. Más información: Consultar Local Cache descrito en el Troubleshooting and Next Steps. |
Puedes reducir el impacto en tu aplicación teniendo uno o TODOS los siguientes
- Un App Service en la misma región pero con su propio App Service y usando Azure Traffic Manager para cambiar el tráfico
- Un App Service en una región diferente y usando Azure Traffic Manager para cambiar el tráfico
- Uso de Local Cache pero recuerda que hay un límite máximo de 2GB para caché
Consejos adicionales
Además de lo que acabo de decir, hay algunos consejos para ti cuando el tema de Azure Web Apps aparece
¿Cómo sé si mi Web App está actualizada?
Trabajaba en un entorno con App Services en East US y Europe West, y una vez East US empezó a actualizarse, quería saber si las Web Apps europeas ya estaban actualizadas.
Navega a App Services (1), selecciona uno de ellos, busca Advanced Tools (2) y haz clic en Go (3)

Se abrirá una nueva pestaña, y encontrarás Azure App Service y verás una entrada similar a esta 89.0.7.88 (master-18642c22ea4) que es la versión de la herramienta

Ahora, simplemente repite los pasos y revisa los App Services en la otra región, si no coinciden, entonces la región aún no está actualizada.
Y eso es todo
Espero que te haya gustado, y nos vemos en mi próxima publicación
Foto de Markus Winkler en Unsplash