• No se han encontrado resultados

Observabilidad

In document Ahorranza (página 146-153)

7. Arquitectura y diseño

7.4. Atributos de calidad

7.4.6. Observabilidad

Dado que el sistema se encuentra en fase de producción en el marco del proyecto, se ha conferido la debida importancia a las actividades de monitoreo y soporte. Una vez que un producto se encuentra en producción, resulta difícil conocer su nivel de utilización, detectar errores o garantizar su disponibilidad. Por tal motivo, se han empleado diversas herramientas destinadas a monitorear la situación del sistema y detectar posibles defectos. De no haberse utilizado estas herramientas, el equipo se encontraría dependiendo exclusivamente de los reportes de fallas suministrados por los usuarios.

● Herramientas de monitoreo

Monitoring Fly.io: conjunto de herramientas y servicios proporcionados por la plataforma Fly.io, diseñados para monitorear y analizar el rendimiento de las aplicaciones y servicios alojados en su infraestructura [143]. Este conjunto de herramientas es utilizado por el equipo para visualizar los registros generados durante el uso de la aplicación, así como para detectar y resolver cualquier problema de monitoreo que pueda surgir. Además, estas herramientas permiten supervisar la disponibilidad, el rendimiento y la estabilidad de las instancias que se han desplegado. Este monitoreo se realiza mediante el seguimiento de diversas métricas, tales como la memoria utilizada por la instancia del backend, los tiempos de respuesta, la concurrencia de usuarios, la utilización de laCPU, entre otras.

Ilustración 56 - Consola delogsen la herramientaMonitoringde Fly.io.

En la ilustración anterior es posible observar tanto los registros del sistema como las instancias actualmente en ejecución. La presencia de esta información resulta de gran utilidad para el equipo, ya que permite la identificación de datos relevantes en caso de presentarse algún tipo de error en el sistema, detectado en alguna de las otras herramientas. De esta manera se satisface el RNF16 - Monitoreo deperformancey el RNF17 - Centralización delogs.

Datadog Real User Monitoring:es una herramienta que nos proporciona visibilidad y contexto en tiempo real de la actividad y experiencia que tienen los usuarios al usar las aplicaciones (web app y mobile app). Cada actividad se correlaciona perfectamente con métricas de backend, registros y datos de rendimiento de la red, de manera que esto permite al equipo detectar rápidamente una mala experiencia de usuario [144]. En particular esta herramienta es utilizada por los siguientes motivos:

1. Rendimiento: Permite monitorear el rendimiento de las aplicaciones.

2. Analítica/uso: Permite comprender quién está usando las aplicaciones (datos sobre el usuario como país, dispositivo, etc), analizar individualmente a los usuarios y cómo estos interactúan con las aplicaciones (secciones más visitadas, clicks, interacciones, etc).

3. Soporte: Permite recuperar toda la información relacionada con la sesión de un usuario para solucionar un problema.

En particular, la funcionalidad más utilizada fue la sección de sesiones y repeticiones. La misma permite visualizar para cada sesión: las secciones visitadas, las acciones realizadas, la duración, la sección en la que comenzó y en la que finalizó. De esta manera se satisface el RNF18 - Monitoreo de comportamiento.

Además permite visualizar cuando ocurrió cada sesión, indicando los periodos en los que el sistema es más utilizado.

Ilustración 58 - Visualización de sesiones.

Finalmente, se tiene la posibilidad de observar la grabación de las sesiones (actualmente no disponible para aplicaciones móviles). Dicha información se presenta como una herramienta valiosa para detectar errores reportados por los usuarios e identificar posibilidades de mejora en la experiencia de usuario.

Sentry: es una herramienta de monitoreo de errores y rendimiento en productos de software [145]. En particular está diseñada para ayudar a los desarrolladores a encontrar y solucionar problemas en sus aplicaciones. La misma captura información sobre los errores que ocurren en una aplicación, incluyendo detalles sobre el contexto en el que se produjeron y proporciona informes para ayudar a los desarrolladores a comprenderlos y solucionarlos. En particular el equipo utiliza esta herramienta para ver los errores controlados o no controlados que ocurren en elbackend.

Tal como se observa en la siguiente ilustración, la herramienta brinda la capacidad de visualizar los errores en su contexto, lo cual resulta sumamente beneficioso para el proceso de solución de problemas. En caso de surgir un nuevo error en Sentry, el equipo es notificado mediante correo electrónico. De esta manera, se cumple con el RNF15 - Monitoreo de fallas, el cual posibilita la supervisión de fallos en el sistema en tiempo real y alerta al equipo en caso de detectarse nuevas ocurrencias.

Ilustración 60 - Error capturado por Sentry.

Además, el equipo emplea Sentry con el fin de visualizar las métricas de performance correspondientes al backend. Para ello, se realizan distinciones mediante etiquetas entre los ambientes de pruebas y producción.

Ilustración 61 - Métricas deperformanceen Sentry.

Firebase Crashlytics: es una herramienta que informa fallas en tiempo real, lo que permite hacer un seguimiento de los problemas de estabilidad que afectan la calidad de la aplicación [146]. El equipo utiliza esta herramienta para visualizar los fallos que Crashlytics agrupa de forma inteligente. Se pueden observar las circunstancias en las que se produjeron, además de proporcionar información detallada como el número de veces que se ha producido, la frecuencia y el impacto en los usuarios. Estos datos permiten al equipo ahorrar tiempo en la solución de problemas, ya que los mismos se encuentran categorizados en base a la cantidad de ocurrencias o severidad.

En las siguientes ilustraciones, se visualiza el dashboard de Firebase Crashlytics en el cual se presentan las fallas que han ocurrido y el detalle de cada una de ellas.

Ilustración 62 -Dashboardde Firebase Crashlytics.

Ilustración 63 - Detalle de una falla.

In document Ahorranza (página 146-153)