mantenimiento y mejora continua de la performance de las aplicaciones

30
#GX24 #GX24 Adaptación y mejora continua de la performance de las aplicaciones Simon De Uvarow [email protected] .uy

Upload: abstracta

Post on 19-Jun-2015

149 views

Category:

Software


0 download

DESCRIPTION

¿Cómo se puede garantizar que la performance de los sistemas no empeore con el transcurso del tiempo? Si un sistema hoy responde rápidamente, ¿eso garantiza que seguirá siendo así en el futuro? De la misma forma que los sistemas, sus funcionalidades, el hardware, drivers, y sistemas operativos que les dan soporte van cambiando, también lo hace la carga sobre el sistema. La carga, entendida como la cantidad de usuarios que accede al sistema, la forma en que los usuarios ejecutan las funcionalidades, y el volumen de datos que debe ser procesado por las solicitudes del negocio son todos ejemplos de elementos que van cambiando durante la vida de una aplicación informática. A medida que el contexto va cambiando, el sistema debe adaptarse para mantener la calidad de la performance en las respuestas a sus usuarios. Luego que un sistema es puesto en producción comienza la etapa de mantenimiento. Para que el mantenimiento sea menor, se pueden realizar pruebas funcionales y no funcionales, con el objetivo de anticiparse a situaciones que ocurrirán en producción. La etapa de mantenimiento se caracteriza por ser tan larga cómo la vida del sistema. En esta etapa es donde ocurren todas esas situaciones inesperadas y todos los cambios en el ambiente a los que debemos adaptarnos. Es importante entonces mantener una permanente monitorización sobre los componentes del sistema con el objetivo de detectar problemas rápidamente y adaptar lo que sea necesario para solucionarlos. Monitorización y revisión de los tiempos de respuesta en los access logs de los servidores web y servidores de aplicaciones. Uso de los recursos (CPU, memoria, acceso a disco). Crecimiento de las tablas en la base de datos. Estos son algunos pocos ejemplos de indicadores que pueden ser monitorizados para conocer el sistema e identificar problemas. En esta charla veremos metodología, buenas prácticas, herramientas útiles y ejemplos para mantener y mejorar la performance durante la vida de los sistemas informáticos. Esta charla fue expuesta por Simon de Uvarow en el marco del Encuentro Internacional GeneXus 2014, #GX24

TRANSCRIPT

Page 1: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24#GX24

Adaptación y mejora continua de la performance de las aplicaciones

Simon De [email protected]

Page 2: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

¿Qué está pasando?

En el ambiente de testing

no hay problemas

Los servidores están sobrados

de recursos

La base tá’

tranquilaza

Grá f i c o ed

QUE J AS

Page 3: Mantenimiento y mejora continua de la performance de las aplicaciones

#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

Page 4: Mantenimiento y mejora continua de la performance de las aplicaciones

#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

Page 5: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Problemas que se presentan en producción

Motivación

Page 6: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Mantenimiento en producción

Cambios de personalCambios en el HardwareActualizaciones de Sistemas Operativos, Servidores de App, versión del framework, drivers, etc.Nuevas funcionalidades o cambios en existentesAumento volumen de la base de datosAumenta 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

Page 7: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Mantenimiento en producción

Desde el punto de vista del usuarioEl sistema no responde El sistema responde, pero mensajes de errorEl 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?

¿Qué está pasando?

Testing no encontró ningún

problema

Los servidores están sobrados

de recursos

La base tá’

tranquilaza

Gr á f i c oed

QUE J AS

Page 8: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Mantenimiento en producción

Nos falta información para identificar el problema!

Page 9: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Logs e indicadores disponibles en el ambiente

Conociendo el Sistema

Page 10: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Herramientas de APM

Open Source Licenciadas

Helios OpNet – Riverbed

Moskito AppDynamics

Nagios New Relic

… …

Page 11: Mantenimiento y mejora continua de la performance de las aplicaciones

#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

Page 12: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Logs

Page 13: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Logs

Page 14: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Interpretando el Sistema

Herramientas para extraer la información dentro de los datos

Page 15: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Recursos de SO

BalanceadorCluster

App. Server 1 App. Server 2

Apps Apps

UsuariosUsuarios

NMon – NMon Analyzer Perfmon – Genera logs y

gráficas

Page 16: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Access Log Analyzer

BalanceadorCluster

App. Server 1 App. Server 2

Apps Apps

UsuariosUsuarios

Page 17: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Access Log AnalyzerObservaciones:

- 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

Page 18: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Access Log AnalyzerObservaciones:

- 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.

Page 19: Mantenimiento y mejora continua de la performance de las aplicaciones

#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• …

Page 20: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Framework memory usage

BalanceadorCluster

App. Server 1 App. Server 2

Apps Apps

UsuariosUsuarios

GCViewer IBM Support Assistant + Plugins JVisualvm

Page 21: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Framework memory usageObservaciones:

- 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.

Page 22: Mantenimiento y mejora continua de la performance de las aplicaciones

#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/

Page 23: Mantenimiento y mejora continua de la performance de las aplicaciones

#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.

Page 24: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Proceso

Proceso de Mejora continua

Page 25: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

Proceso

Objetivos

Reconocimiento de la

infraestructura

Plan de monitorización

Aplicar la monitorizaci

ón

Análisis de los resultados

Cambios / Correcciones

Bitácora de cambios

Capacitación del

personal

Page 26: Mantenimiento y mejora continua de la performance de las aplicaciones

#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?

Page 27: Mantenimiento y mejora continua de la performance de las aplicaciones

#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

Page 28: Mantenimiento y mejora continua de la performance de las aplicaciones

#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

Page 29: Mantenimiento y mejora continua de la performance de las aplicaciones

#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.

Page 30: Mantenimiento y mejora continua de la performance de las aplicaciones

#GX24

¿Preguntas?