Detectando cambios para web-apps con Application Change Analysis

Estás en pleno desarrollo, programando las características de la nueva feature que vas a implementar en la aplicación web en la que trabajas… cuando recibes un aviso. La aplicación web, que hace 10 minutos funcionaba sin problemas en producción, no funciona.

¿Qué es lo que ha cambiado en ese periodo de tiempo? ¿Cómo puedo saberlo? Application Change Analysis llega al rescate.

Los servicios de alarmas estándar te indican sobre un problema existente, incluso señalan componentes específicos que están fallando en un momento dado. Pero no ofrecen luz sobre las posibles causas de ese problema del que informan.

Por eso Application Change Analysis está diseñado para detectar cambios en los recursos de tu suscripción, para aumentar la observabilidad de nuestras aplicaciones y reducir el tiempo que puede tomar este tipo de problemas.

Como podemos ver en el gráfico de su arquitectura, detecta varios tipos de cambios desde infraestructura, recorriendo todo el camino hacia el despliegue en entornos de producción:

La arquitectura de Application Change Analysis

Es un servicio en versión preliminar, pero que podemos usar para detectar cambios como:

  • Propiedades cambiadas desde Azure Resource Manager, a modo de registro histórico de todos los cambios, como en el control de versiones.
  • Cambios en configuración de entornos de la aplicación, como variables de entorno.
  • Configuración desde Azure Resource Manager, como reglas de configuración de IP, versiones de extensión.
  • Recursos que son dependencias, como otras aplicaciones web, recursos Azure Storage o Azure SQL.

Desde el Portal de Azure, podemos buscar este servicio y visualizar todos los cambios producidos sobre nuestras aplicaciones web:

Lista de cambios detectados por Application Change Analysis

Cambios en App Services

Podemos entrar al detalle de cada uno de los cambios y visualizar qué elementos han cambiado y con qué nuevos valores, filtrando por rangos de tiempo, grupos de recursos…

Application Change Analysis es también accesible la herramienta Diagnose and solve problems, que se encuentra en la Overview de nuestras diferentes App Service. Para ello, tendremos que habilitar este servicio de forma individual manulamente… o bien aprovechar el poder de la automatización, activandolo en todas las App Service de nuestra suscripción a través de scripts en Powershell.

Para activar este servicio de forma manual, accede a una App Service, y en Overview, clica en “Diagnose and solve problems”.

Overview en una App Service, para entrar en la herramienta Diagnose and solve problems

Una vez allí, selecciona el recurso “Availabily and Performance”. En esta sección, en la parte inferior de la vista, selecciona la característica “Application Changes”.

Estando en “Application Changes”, verás una sección donde habilitar el servicio de Change Analysis, con el texto: “Enable Change Analysis to investigate the changes made to your web application”.

Es el momento de habilitar el servicio para tus web apps. Una vez guardados, puedes volver a “Availability and Performance”, para entrar en la característica “Application Crashes”.

Allí podrás ver todos los problemas encontrados durante las últimas 24 horas, como valor por defecto, para visualizar y encontrar los cambios más recientes que puedan estar dando problemas en las situaciones más inmediatas.

Cambios detectados en una aplicación, después de habilitar el servicio en una App Service

Todo el proceso está documentado e ilustrado con especial detalle en la documentación de Microsoft.

Cambios en máquinas virtuales

También es posible visualizar qué cambios se han producido en máquinas virtuales, por si te lo estabas preguntando.

Al entrar en una máquina virtual, dirígete a la sección “Diagnose and solve problems”. En la pestaña “Troubleshooting Tools”, verás las diferentes herramientas que tienes a tu alcance para solucionar diferentes situaciones.

Y entre ellas, verás la herramienta “Analyze recent changes”, para visualizar gracias a Change Analysis los cambios que se han realizado en esa máquina virtual y en otros recursos relacionados con ella.

Herramienta "Analyze recent changes" para habilitar en una máquina virtual

Ayuda a mejorar

Estas herramientas nos ayudan a ganar tiempo, tranquilidad y calidad en el software que entregamos. Esperamos que sea de utilidad y os ayude en vuestro desarrollo.

Como es costumbre, y más en una versión preview, es posible ofrecer feedback sobre la experiencia y así ayudar a mejorar este servicio. ¡No dudes en hacerlo para ayudar a users y a la comunidad!

¡Saludos!