análisis del rendimiento de aplicaciones

27
Metodología GRA Gestión del Rendimiento de Aplicaciones APM Carlos Vargas - España Enero, 2015

Upload: jcvargast

Post on 24-Dec-2015

14 views

Category:

Documents


0 download

DESCRIPTION

Análisis del Rendimiento de Aplicaciones

TRANSCRIPT

Page 1: Análisis del Rendimiento de Aplicaciones

Metodología GRA Gestión del Rendimiento de AplicacionesAPM

Carlos Vargas - EspañaEnero, 2015

Page 2: Análisis del Rendimiento de Aplicaciones

© 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

Page 3: Análisis del Rendimiento de Aplicaciones

© 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

Page 4: Análisis del Rendimiento de Aplicaciones

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

Page 5: Análisis del Rendimiento de Aplicaciones

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

Page 6: Análisis del Rendimiento de Aplicaciones

© 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

Page 7: Análisis del Rendimiento de Aplicaciones

© 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

Page 8: Análisis del Rendimiento de Aplicaciones

© 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

Page 9: Análisis del Rendimiento de Aplicaciones

© 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

Page 10: Análisis del Rendimiento de Aplicaciones

© 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

Page 11: Análisis del Rendimiento de Aplicaciones

© 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

Page 12: Análisis del Rendimiento de Aplicaciones

© 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

Page 13: Análisis del Rendimiento de Aplicaciones

© 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

Page 14: Análisis del Rendimiento de Aplicaciones

© 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

Page 15: Análisis del Rendimiento de Aplicaciones

© 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

Page 16: Análisis del Rendimiento de Aplicaciones

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.

Page 17: Análisis del Rendimiento de Aplicaciones

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.

Page 18: Análisis del Rendimiento de Aplicaciones

© 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

Page 19: Análisis del Rendimiento de Aplicaciones

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

Page 20: Análisis del Rendimiento de Aplicaciones

© 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

Page 21: Análisis del Rendimiento de Aplicaciones

© 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

Page 22: Análisis del Rendimiento de Aplicaciones

© 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

Page 23: Análisis del Rendimiento de Aplicaciones

© 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

Page 24: Análisis del Rendimiento de Aplicaciones

© 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

Page 25: Análisis del Rendimiento de Aplicaciones

© 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

Page 26: Análisis del Rendimiento de Aplicaciones

© 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

Page 27: Análisis del Rendimiento de Aplicaciones

© 2015 Carlos Vargas. All rights reserved.

Cuadrantes MágicosCuadrante mágico de Gartner

Page 27