Análisis del Rendimiento de Aplicaciones
description
Transcript of Análisis del Rendimiento de Aplicaciones
Metodología GRA Gestión del Rendimiento de AplicacionesAPM
Carlos Vargas - EspañaEnero, 2015
© 2015 Carlos Vargas. All rights reserved. Page 2
Índice
• Gestión del Rendimiento de las Aplicaciones (APM)
• Medición del Rendimiento de las Aplicaciones APM
• Metodología APM
• Herramientas de Soporte APM
• Cuadrantes Mágicos
© 2015 Carlos Vargas. All rights reserved.
Gestión del Rendimiento de AplicacionesAPM
Las empresas tienen que conocer: • La perspectiva de los clientes y usuarios debido al rendimiento de las
aplicaciones.
• Cómo se ven impactados los clientes, los usuarios y las empresas por el rendimiento de las aplicaciones.
– Cuáles clientes y usuarios son afectados.– Cuántas y qué transacciones fueron exitosas ó fallaron.– Qué significa “desempeño lento” para los procesos de negocio.
• Cuánto están costando a las empresas las incidencias y el bajo rendimiento de las aplicaciones.
• Por cuánto tiempo se ha mantenido este escenario.
• Las áreas críticas de las empresas que están teniendo el nivel de servicio requerido.
• Cuántos clientes y usuarios continúan ó han dejado de utilizar los servicios.
Page 3
© 2015 Carlos Vargas. All rights reserved.
Gestión del Rendimiento de AplicacionesAPM
Page 4
Diferentes perspectivas del rendimiento
GerentesSe logra el retorno de la inversión sobre tecnología orientada por los servicios públicos y su optimización.
Usuarios/ClientesObtienen satisfacción y logro de sus objetivos con una aplicación que les da respuesta en el tiempo esperado.
DirectoresSe logra la eficiencia de los servicios al usuario y su mejora continua.
Arquitectos de Software/DesarrolladoresSe logra la productividad, y se orienta el desarrollo de aplicaciones por la eficiencia del desempeño.
Responsables de InfraestructuraSe logra la eficiencia en costos través de la optimización de la infraestructura.
© 2015 Carlos Vargas. All rights reserved.
Medición del Rendimiento de Aplicaciones El reto de TI
¿Donde están los problemas?, TI necesita saber qué está fallando
Page 5
Servidor de AutenticaciónSAP
Mainframe
PSFT
Aplicaciones
WebServers
Aplicaciones de Terceros
Base de Datos
WebServices
Base de Datos
¿El servicio de autenticación está lento?
¿Las transacciones están fallando?¿Los clientes/usuarios están siendo afectados?
¿Cuál es el estado de los WebServers?
¿Las aplicaciones de terceros están cumpliendo los SLA’s?
¿Cuál es la respuesta de las BD’s?
¿Están habilitados los WebServices?
¿Cuál es el tiempo de respuesta del Mainframe?
¿Las aplicaciones responden lento?¿Es posible encontrar rápidamente el problema?
¿Se lleva registro de las acciones?
© 2015 Carlos Vargas. All rights reserved.
Medición del Rendimiento de Aplicaciones El reto de TI
Las causas más frecuentes de los problemas de rendimiento en las aplicaciones son:
Page 6
Errores de programación 13.7%Problemas de configuración y ajuste 11.9%Arquitectura 10.4%Conexión a Base de Datos 9.9%Problemas de Diseño 9.0%Lagunas de Memoria 7.1%Cálculos erróneos de las capacidades del Sistema 6.5%Incidentes en la MVJ 5.3%Condiciones de desbordamiento de Memoria 5.1%Ancho de banda atrás del cortafuegos 3.6%Procesos huerfanos 3.3%Problemas de conector (JCA/JDBC) 3.3%Conexión a Mainframes 3.0%Conexión a aplicaciones de terceros 2.7%Fallos de Hardware 2.1%Errores del SO 2.0%Instrusión, Virus, Hackers 1.2%
El código causa errores sólo en una de ocho veces
Las conexiones del sistema y las condiciones del entorno son generalmente las causas de los problemas de rendimiento
© 2015 Carlos Vargas. All rights reserved.
Medición del Rendimiento de Aplicaciones El reto de TI
Gestión del rendimiento, experiencia de usuario Monitorización de Aplicaciones
Page 7
Servidor de AutenticaciónSAP
Mainframe
PSFT
Aplicaciones
WebServers
Aplicaciones de Terceros
Base de Datos
WebServices
Base de Datos
Experiencia del Cliente, Tasas de Transacciones Exitosas, Errores, Fallos, Defectos, SLA’s, Costos, Impacto
Base de Datos, WebServices, Sistemas Back-end, Disponibilidad, Rendimiento, Errores, SLA’s
JEE/.NET, Disponibilidad, Rendimiento, Transacciones Fallidas, Errores, SLA’s, Registro de Transacciones
© 2015 Carlos Vargas. All rights reserved.
Metodología APM
Page 8
Definición de criterios y objetivos de rendimiento
Gestión de escenarios de rendimiento
Selección herramientas para gestión de rendimiento
Desarrollo de modelos de rendimiento
Ejecución del plan de rendimiento
© 2015 Carlos Vargas. All rights reserved.
Metodología APMDefinición de criterios y objetivos de rendimiento
Definir los criterios contra los que se llevará a cabo la medición del rendimiento, y establecer los objetivos esperados
Page 9
Identificación del Alcance de las aplicaciones
Formulación de los Objetivos de Rendimiento
Definición de Criterios de Rendimiento
Definición de Métricas de
Rendimiento contra Objetivos
Definición del Modelo de
Evaluación de Criterios
Objetivo
Proceso
© 2015 Carlos Vargas. All rights reserved.
Responsable de arquitectura, análisis y pruebas.
• Análisis de la Arquitectura Funcional y Técnica de las Aplicaciones
• Identificación del Alcance de las aplicaciones
• Identificación y Definición de Objetivos de Rendimiento
• Identificación y Definición de Criterios de Rendimiento
• Definición de Métricas de Rendimiento contra Objetivos
• Definición del Modelo de Evaluación de Criterios
• Informe de Alcance Objetivos de Rendimiento
• Lista de Criterios de Rendimiento
• Proceso de Medición de Criterios de Rendimientos
Metodología APMDefinición de criterios y objetivos de rendimiento
Page 10
Roles
Actividades
Entregables
© 2015 Carlos Vargas. All rights reserved.
Definición del Modelo de
Escenarios de Rendimiento
Identificación de Riesgos
Potenciales
Definición Detallada de los
Escenarios Identificados
Clasificación de los Escenarios
de Acuerdo a los Criterios Definidos
Generación de Modelos Análisis
de Impacto
Desarrollo de Estrategias de
Mitigación y Contingencia
Metodología APMGestión de escenarios de rendimiento
Identificación, documentación de los escenarios críticos de rendimiento, así como la clasificación y priorización de estos escenarios de acuerdo a los criterios definidos.
Page 11
Objetivo
Proceso
© 2015 Carlos Vargas. All rights reserved.
Responsable de arquitectura, análisis y pruebas.
• Definición del Modelo de Escenarios de Rendimiento
• Identificación de Riesgos Potenciales
• Identificación de escenarios de riesgos de rendimiento
• Clasificación y priorización de los escenarios de riesgos de rendimiento
• Definición Detallada de los Escenarios Identificados
• Generación de Modelos Análisis de Impacto
• Desarrollo de Estrategias de Mitigación y Contingencia
• Modelos de Gestión de Rendimiento e Impacto
Metodología APMGestión de escenarios de rendimiento
Page 12
Roles
Actividades
Entregables
© 2015 Carlos Vargas. All rights reserved.
Metodología APMSelección de herramientas para gestión de rendimiento
Seleccionar las herramientas optimas para la gestión del rendimiento.
Page 13
Generación de criterios preliminares de selección
Obtención de una lista
tentativa de productos
Generación de criterios
detallados de evaluación
Implementación del ambiente de evaluación para
las pruebas
Ejecución de la evaluación conforme los
criterios detallados
Generación del informe
de los resultados obtenidos
Identificación y selección
de las herramientas
finales
Objetivo
Proceso
© 2015 Carlos Vargas. All rights reserved.
Metodología APMSelección de herramientas para gestión de rendimiento
Responsable de arquitectura y pruebas.
• Generación de criterios preliminares de selección de herramientas.
• Obtención de una lista tentativa de productos.
• Generación de criterios detallados de evaluación.
• Implementación del ambiente de evaluación para las pruebas.
• Ejecución de la evaluación conforme los criterios detallados.
• Informe de los resultados obtenidos de los criterios detallados de la evaluación para cada una de las herramientas preliminares.
• Identificación y selección de las herramientas finales.
Page 14
Roles
Actividades
Entregables
© 2015 Carlos Vargas. All rights reserved.
Metodología APMDesarrollo de modelos de rendimiento
Recolectar de forma específica los datos iníciales de una aplicación, para establecer su línea base.
Page 15
Instalación y configuración
herramientas de rendimiento
Categorización de
Componentes por Criterios de
Rendimiento
Definir línea base de las métricas y
propiedades
Ejecución preliminar para testeo de los
modelos
Evaluación dependencias con interfaces
externas
Obtención de valores de línea
base para correlación de
métricas y propiedades.
Objetivo
Proceso
Metodología APMDesarrollo de modelos de rendimiento
© 2015 Carlos Vargas. All rights reserved. Page 16
Roles
Actividades
Responsable de arquitectura y pruebas.
• Monitorizar la actividad del usuario a nivel de negocio
• Agrupación de los datos en objetos, por ejemplo, objetos de un pool de conexiones (tamaño inicial, máximo, sesiones, etc)
• Diferenciar entre métricas y propiedades.– Métrica: series cronológicas de datos.– Propiedad: atributo del sistema que no cambian con frecuencia.
• Controlar los cambios de las propiedades.
• Preservar las relaciones con otros objetos.
• Permitir la correlación de los propiedades con la métrica, de la métrica con los propiedades y de las propiedades con las propiedades.
Metodología APMDesarrollo de modelos de rendimiento
© 2015 Carlos Vargas. All rights reserved. Page 17
Actividades
Entregables
• Correlacionar la experiencia actual del usuario con el rendimiento de las aplicaciones
• Rastreo de los cambios en las propiedades.
• Identificación de las relaciones con otros objetos.
Conjunto de indicadores que permiten la monitorización de diferentes elementos de la aplicación.
© 2015 Carlos Vargas. All rights reserved.
Metodología APMEjecución del plan de rendimiento
Identificar y optimizar los puntos críticos de una aplicación mediante la ejecución repetida de los escenarios claves afinando los elementos de configuración.
Page 18
Ejecución de escenarios de rendimiento
Evaluación de resultados
Afinación de elementos de configuración
Generación de informe de resultados
Evaluación de cumplimiento de criterios de salida
Objetivo
Proceso
Metodología APMEjecución del plan de rendimiento
Responsable de arquitectura y pruebas.
• Crear un entorno de pruebas similar al entorno de producción.
• Crear script de pruebas basados en la experiencia de los usuarios.
• Identificar puntos potencialmente de riesgo:• Plataforma.• Dependencias externas.• Carga.
• Identificar problemas en el código de la aplicación (cuellos de botella).
• Priorizar incidentes basados en el impacto
• Documento de análisis del rendimiento.
© 2015 Carlos Vargas. All rights reserved. Page 19
Roles
Actividades
Entregables
© 2015 Carlos Vargas. All rights reserved.
Metodología APMActores clave y sus acciones
Page 20
Propietarios de las aplicaciones, gerentes de servicios
Operaciones
• Negocia SLA’s con el área usuaria de los servicios
• Mide la satisfacción del usuario y de los procesos de negocio/atención al ciudadano
• Provee Reportes a las gerencias de servicios y operaciones
• Monitorización del rendimiento y disponibilidad de las aplicaciones 24x7
• Monitorización de SLA’s• Detección proactiva de incidentes
Especialistas Java/.NET Soporte de aplicaciones
• Análisis detallado de la infraestructura• Detección de componentes responsables• Aislamiento de causas raíz
• Monitorización consistente de punta a punta• Colección de evidencias basado en datos
duros• Enrutamiento del problema a la persona
indicada para su resolución
© 2015 Carlos Vargas. All rights reserved.
Metodología APMActores clave y sus acciones
Page 21
Propietarios de las aplicaciones, gerentes de servicios
Operaciones
• Negocia SLA’s con el área usuaria de los servicios
• Mide la satisfacción del usuario y de los procesos de negocio/atención al ciudadano
• Provee Reportes a las gerencias de servicios y operaciones
• Monitorización del rendimiento y disponibilidad de las aplicaciones 24x7
• Evalúa con precisión el rendimiento de las aplicaciones, sus características de escalabilidad, y confiabilidad antes del despliegue
Especialistas Java/.NET Soporte de aplicaciones
• Detección de componentes responsables• Aislamiento de causas raíz• Crea escenarios realistas y reproducibles
de prueba de carga para cubrir los casos de uso críticos y los requerimientos
• Monitorización consistente punta a punta• Enrutamiento del problema a la persona
indicada para su resolución
© 2015 Carlos Vargas. All rights reserved.
Herramientas de Soporte APMElementos
Para poder hacer un análisis apropiado del rendimiento en aplicaciones, es conveniente distinguir los diferentes elementos que pueden formar parte de las mismas.
• Aplicaciones cliente.
• Sistemas de redes.
• Servidores de front-end, tales como webservers, firewalls, etc.
• Servidores de back-end y elementos de infraestructura tales como enrutadores, balanceadores, etc.
– Procesamiento de transacciones y JVM.– Clusters, múltiples JVM, conexiones internas y externas, transacciones de
negocio y ciclo de vida de componentes.– Bases de datos , análisis de datos y en almacenamiento.
Page 22
© 2015 Carlos Vargas. All rights reserved.
Herramientas de Soporte APMTipos de herramientas
A continuación se listan las distintas herramientas que se requieren de acuerdo a los diferentes elementos mencionados anteriormente:
1. Herramientas para simulación de actividades de los clientes y medir los tiempos de respuesta (pruebas de carga).
Herramientas que muestran el rendimiento de los sistemas a partir de la perspectiva de cliente (herramientas de gestión del nivel de servicio).
Herramientas de monitoreo de los sistemas cliente.
2. Herramientas de monitorización de la red.
3. Herramientas para la medición de tiempos de solicitud/respuesta de los servicios y la disponibilidad de la máquina.
Page 23
© 2015 Carlos Vargas. All rights reserved.
Herramientas de Soporte APMTipos de herramientas
4. Herramientas de monitorización a nivel de sistema operativo y procesamiento de aplicación.
• Monitorización de una máquina individual con una sola JVM, desde el nivel de procesamiento de bytecode hasta el procesamiento de transacciones, incluyendo la identificación de conflictos.
• Monitorización del cluster: monitorización de la disponibilidad, monitorización de múltiples JVM, monitorización de conexiones internas y externas, monitorización de transacciones de negocio y ciclo de vida de los componentes.
• Monitorización de la base de datos: herramientas de análisis para identificar problemas y habilidades para alterar la configuración y otros valores para resolver los problemas de rendimiento.
Page 24
© 2015 Carlos Vargas. All rights reserved.
Herramientas de Soporte APMHerramientas sugeridas
Las herramientas sugeridas para poder llevar a cabo el análisis del rendimiento de aplicaciones Java, se clasifican en tres grupos:
1. Load testing: Análisis, estimación y medida de la demanda requerida al sistema vs. su respuesta (p.e. numero de usuarios vs. tiempo de respuesta de una página).
2. Analyzer: Análisis del consumo de recursos que afectan al rendimiento de las aplicaciones (p.e. memoria, CPU, IO, threads, interrupciones de hardware, etc.).
3. Profiler: Análisis del consumo de los recursos en relación con la arquitectura de las aplicaciones (p.e. llamadas del stack, heap, sesiones, conexiones a base de datos, etc.).
Page 25
© 2015 Carlos Vargas. All rights reserved.
Herramientas de Soporte APMHerramientas sugeridas
Page 26
Herramientas Load Testing
Analyzer Profiler
LoadRunner X X
Rational Performance Tester X X
WebSphere Studio Application Monitor X X
SilkPerformer X
JProbe X
GroundWork X
IntroScope X
© 2015 Carlos Vargas. All rights reserved.
Cuadrantes MágicosCuadrante mágico de Gartner
Page 27