adaptacion y mejora continua de la performance de las aplicaciones
DESCRIPTION
Adaptacion y mejora continua de la performance de las aplicacionesTRANSCRIPT
#GX24 #GX24
Adaptación y mejora continua de la performance de las aplicaciones
Simon De Uvarow [email protected]
#GX24
En el ambiente de testing no hay
problemas
Los servidores están sobrados de
recursos
La base tá’ tranquilaza
#GX24
Mantenimiento
Mantenimiento y mejora de la performance de aplicaciones basada en:
• Registro / Bitácora de cambios • Conocimiento del funcionamiento interno de los
componentes utilizados • Monitorización
#GX24
Agenda
• Motivación – Problemas que se presentan en producción
• Conociendo el Sistema – Logs e indicadores disponibles en el ambiente
• Interpretando el Sistema – Herramientas
• Proceso – Proceso de mejora continua
#GX24
Problemas que se presentan en producción
Motivación
#GX24
Mantenimiento en producción
Cambios de personal Cambios en el Hardware Actualizaciones de Sistemas Operativos, Servidores de App, versión del framework, drivers, etc. Nuevas funcionalidades o cambios en existentes Aumento volumen de la base de datos Aumenta la carga del sistema (usuarios usando la app.)
Hay que estar preparados para conocer el impacto de los
cambios, sobre todo los que están fuera de nuestro control
#GX24
Mantenimiento en producción Desde el punto de vista del usuario
El sistema no responde El sistema responde, pero mensajes de error El sistema responde, pero muy “lento”
Desde el punto de vista de infraestructura
“La CPU del servidor nunca sobrepasa el 40% de uso, hay gigas de memoria disponible, y tanto el disco como la red tienen recursos más que sobrados para operar correctamente.” ¿Entonces que pasa? ¿Porqué se cae? ¿Porqué está lento?
Testing no encontró ningún problema
Los servidores están sobrados de
recursos
La base tá’
tranquilaza
#GX24
Mantenimiento en producción
Nos falta información para identificar el problema!
#GX24
Logs e indicadores disponibles en el ambiente
Conociendo el Sistema
#GX24
Herramientas de APM Open Source Licenciadas
Helios OpNet – Riverbed
Moskito AppDynamics
Nagios New Relic
… …
#GX24
Diagrama de Infraestructura
Diagrama de infraestructura + Plan de Monitorización inicial
Balanceador
- Recursos de Sistema Operativo - Access logs con tiempo de Resp. - Logs del balanceador
- Recursos de SO - AccessLogs + TdR - Uso de memoria del proceso - Información de aplicación: Exceptions Logs, GX Managment Enable - Pools - …
- Recursos de SO - Locks / seg - SQLs más lentas
Cluster
App. Server 1 App. Server 2
Apps Apps
#GX24
Logs
#GX24
Logs
#GX24
Interpretando el Sistema
Herramientas para extraer la información dentro de los datos
#GX24
Recursos de SO
Balanceador Cluster
App. Server 1 App. Server 2
Apps Apps
Usuarios Usuarios
ü NMon – NMon Analyzer ü Perfmon – Genera logs y gráficas
#GX24
Access Log Analyzer
Balanceador Cluster
App. Server 1 App. Server 2
Apps Apps
Usuarios Usuarios
#GX24
Access Log Analyzer Observaciones: - Balanceador NO distribuye
equitativamente la carga entre los 2 servidores
- El pico es de casi 6000 pedidos / minuto en los 2 servidores
- Se identifican los momentos de menor carga para aplicar cambios en el ambiente
- La carga en el sistema es similar durante el período monitorizado
#GX24
Access Log Analyzer Observaciones: - Hay excepciones en los servidores
(errores de programas) que llegan al usuario como errores HTTP 500.
- Se llegó a un pico de 140 excepciones en 1 minuto.
#GX24
Access Log Analyzer Otros reportes posibles:
• Top 5, 10, URLs más lentas de cada intervalo • Cantidad de HTTP reqs. Recibidos, agrupados por código de
respuesta • Cantidad de respuestas de cada intervalo, agrupadas por
tiempo de respuesta • Todos los tiempos de resp. de una determinada URL • URLs que más aparecen en el Top de todos los intervalos • …
#GX24
Framework memory usage
Balanceador Cluster
App. Server 1 App. Server 2
Apps Apps
Usuarios Usuarios
ü GCViewer ü IBM Support Assistant + Plugins ü JVisualvm
#GX24
Framework memory usage Observaciones: - Ambos servidores tienen suficiente
memoria para operar. - No se observa degradación en el
uso de la memoria. - Tiempo máximo de GC FULL fue
menor a 1 segundo.
#GX24
+ Herramientas
Existen muchas herramientas para cada tipo de log. En abstracta estamos desarrollando algunas que están liberadas a la comunidad. El código está disponible en GitHub. https://github.com/abstracta/
#GX24
Interpretando el Sistema A corregir - Corregir la programación para que
no lleguen errores HTTP 500 a los usuarios.
- Configurar correctamente el balanceador de carga.
#GX24
Proceso
Proceso de Mejora continua
#GX24
Proceso
Objetivos
Reconocimiento de la infraestructura
Plan de monitorización
Aplicar la monitorización
Análisis de los resultados
Cambios / Correcciones
#GX24
Proceso - Objetivos
¿Qué puedo hacer para mejorar los tiempos de respuesta?
¿Qué recurso está saturado?
¿Cuál es el cuello de botella que me va a impedir escalar en el futuro?
¿Cuántos recursos requiere una aplicación dada determinada carga en
el sistema para responder correctamente?
¿Qué puedo hacer para que consuma menos recursos?
¿Qué puedo hacer para que demore menos?
#GX24
DevOp – Nuevo Rol de IT
Development + Operations + Servicios - Énfasis en la comunicación, colaboración e integración entre
desarrolladores y personal de ambientes o tecnología.
- Objetivos - Analizar resultados de monitorización en conjunto con
tecnología y desarrollo para mejorar la salud de los sistemas - Desarrollo incorpora conocimiento de infra. a sus decisiones - Tecnología adquiere conocimiento de las aplicaciones y sus
requerimientos para sus decisiones
#GX24
Resumen Mantenimiento y mejora de la performance de aplicaciones basada en:
• Conocimiento del funcionamiento interno de los componentes utilizados
• Registro / Bitácora de cambios
• Monitorización
#GX24
Temas relacionados
Hacer pruebas de performance para responder algunas preguntas planteadas en los objetivos de monitorización antes de pasar las aplicaciones a producción. Trabajo en equipo. Son muchos sistemas, son complejos y usan muchas tecnologías / frameworks. Es importante apoyarse en el equipo. Desarrolladores + administradores trabajando juntos.
#GX24
¿Preguntas?