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.

azure platform as a service blog vinicius deschamps
https://azure.microsoft.com/en-us/overview/what-is-paas/
azure shared responsibilities blog vinicius deschamps
https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE1KVsM

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

azure app services platform infrastructure upgrade blog vinicius deschamps
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.

azure app services platform file server upgrade blog vinicius deschamps
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)

azure app services advanced tools go blog vinicius deschamps

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

azure advanced tools azure app service blog vinicius deschamps

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

AzureAzure App ServicesAzure Web AppUpdatesWeb App
Actualizaciones de Azure Web App — Vinicius Deschamps