validando la escalabilidad de la arquitectura

26
VSANYWHERE.COM @VS_ANYWHERE Validando la escalabilidad y rendimiento de la arquitectura Luis Fraile – MVP Visual Studio ALM

Upload: luis-fraile

Post on 21-Jul-2015

159 views

Category:

Software


0 download

TRANSCRIPT

VSANYWHERE.COM @VS_ANYWHERE

Validando la escalabilidad y rendimiento de la arquitectura

Luis Fraile – MVP Visual Studio ALM

VSANYWHERE.COM @VS_ANYWHEREVSANYWHERE.COM @VS_ANYWHERE

[email protected]

MVP Visual Studio ALM

@lfraile

Luis Fraile

VSANYWHERE.COM @VS_ANYWHERE

Hoy hemos visto

VSANYWHERE.COM @VS_ANYWHERE

¿pero va a funcionar?

VSANYWHERE.COM @VS_ANYWHERE

Volvemos al principio

VSANYWHERE.COM @VS_ANYWHERE

Que vamos a necesitar

VSANYWHERE.COM @VS_ANYWHERE

VSANYWHERE.COM @VS_ANYWHERE

Un experimento

Microsoft y Google experimentaron a introducir delaysartificialmente

Cambios:

Menor satisfacción de

usuario (1% aprox.)

Menor volumen de uso de servicios

Cuando volvieron al rendimiento

habitual:

El volumen de uso de servicios

no volvió al anterior

VSANYWHERE.COM @VS_ANYWHERE

¿Qué son las pruebas de carga?

Carga:

¿como responderá mi aplicación ante la cargaesperada?

Rendimiento:

¿cómo de rápidafuncionará mi aplicación?

Stress :

¿cuál es el punto de rotura de mi aplicaciónen carga de usuarios?

Capacidad:

¿podremos escalar hasta la carga futura?

VSANYWHERE.COM @VS_ANYWHERE

Pruebas de rendimiento Visual Studio

Web Test // Test unitarios

Load TestEntorno de

pruebas

VSANYWHERE.COM @VS_ANYWHERE

Web Test y Load Test

Web Test

Capa HTTP

Lista de las solicitudes y recopilación de datos de tiempo

No ejecuta script

Generación de carga en un servidor

No se interacciona con navegador

Load Tests

Tests a ejecutar

Patrón carga de usuarios

Mezcla de usuarios y tests

Simulación de red

Simulación user-agents

Configuración de ejecución

Contadores rendimiento

VSANYWHERE.COM @VS_ANYWHERE

Planificación

Preparación

Ejecución

Estrategia Pruebas

Instalación Herramientas

Entorno Pruebas + Datos

Diseño Casos de Prueba

Estrategia PruebasConfiguración

MonitoresScripting

Smoke Test

Línea Base

Soak Test Pruebas Carga Otros

Stress

Informe Final

Pruebas de Rendimiento

An

álisis + Cam

bio

s + In

form

es

•Establecer expectativas•Planificación del proyecto•Descripción del entorno•Identificación responsables•Descripción de los escenarios de pruebas•Descripción de los casos de prueba•Descripción de los monitores•Documento “vivo”

Entorno Pruebas + Datos

•Configuración Entono de pruebas (pre-prod)•Carga de datos

Instalación Herramientas

•Herramientas de pruebas de carga•Herramientas de monitorización de sistemas•Otras herramientas (reporting...)

Diseño Casos de Prueba

•Transacciones•Validaciones de imágenes y texto•Juegos de datos

Configuración Monitores

•Selección de las métricas “potencialmente interesantes”•Selección de métricas avanzadas

Scripting

•Convertir los casos de prueba en scripts automatizados•La complejidad varia en función de la herramienta seleccionada

Smoke Test

•Verificar las fases anteriores•No aporta valor al proyecto continuar si esta fase no se completa correctamente

Línea Base

•Establecer un estándar de comparación inicial•Si el rendimiento no es bueno, no se debe continuar con otros tipos de pruebas

Pruebas de Rendimiento

•Proceso iterativo•Mínimo 2 iteraciones

SOAK Test

Pruebas Carga

Otros

Stress

•Prueba opcional•Solo si todas las pruebas anteriores son satisfactorias

Informe Final

•Sumario de las pruebas ejecutadas, problemas encontrados y soluciones aportadas•Detallar en exceso cada escenario de pruebas ejecutado no aporta valor•Se mantienen y ejecutan durante toda la vida de la aplicación

VSANYWHERE.COM @VS_ANYWHERE

Despliegue de agentes

Instalación hardware

Aprovisionamiento de equipos

Si bien puede ser:

Infraestructura de load testing on-premises

En muchas ocasiones es lo que necesitamos …

VSANYWHERE.COM @VS_ANYWHERE

Sólo pagamos por la infraestructuracuando la usamos(recursos)

No necesitamosinfraestructurapropia

Los proyectos de Load Testing On-Prem son compatibles

Mucha mayor escalabilidad

Beneficios Cloud Load Testing

VSANYWHERE.COM @VS_ANYWHERE

Load Testing +Cloud

DEMO

VSANYWHERE.COM @VS_ANYWHERE

¿Qué necesito?

Visual Studio Ultimate y cuenta en Visual Studio Online

Aplicación accesible desde internet

Se puede usar IP Range para aplicaciones detrás de firewall

15,000 minutos-usuario por mes

http://blogs.msdn.com/b/vsoservice/

VSANYWHERE.COM @VS_ANYWHERE

Monitorizar

Define

Desarrolla MonitorizarImplementarCiclos acortados

VSANYWHERE.COM @VS_ANYWHERE

La importancia de monitorizar

Validar el entorno ante los cambiosFuncionales

Carga de usuarios

Responder a problemas

Anticipar problemas

No sólo problemasInvestigar tendencias de usuarios

Toma de decisiones en inversión en aplicaciones

VSANYWHERE.COM @VS_ANYWHERE

Application insights

Paneles de estado

Personalizables con la información que necesitamos

Usage Dashboards

Patrones de uso de los usuarios de las aplicaciones

Notifications

Alertas vía email

VSANYWHERE.COM @VS_ANYWHERE

Integración con pruebas de carga

VSANYWHERE.COM @VS_ANYWHERE

Dificultades con Application Insights

Dos versionesVisual Studio Online

Azure (Ibiza)

Aún en preview

Diferencias de funcionalidades entre las dos

No disponible para todos los servicios con toda las funcionalidades

VSANYWHERE.COM @VS_ANYWHERE

New Relic

Totalmente integrada en Azure

Disponibilidad para casi todo tipo de servicios

Es de pago

PeroCarece de integraciones como Load Testing

Sin integración en Visual Studio

Más compleja (y más completa eso sí)

VSANYWHERE.COM @VS_ANYWHERE

Application Insights + Load Testing

DEMO

VSANYWHERE.COM @VS_ANYWHERE

Conclusiones

La arquitectura es la base de la evolución del software, pero hay que validarla en:

Capacidad

Escalabilidad

Punto de rotura

Las pruebas de carga se ejecutan durante toda la vida del software

Hay que evolucionarlas y hacerlas robustas

Tanto en su ejecución como en la vida: monitorización

VSANYWHERE.COM @VS_ANYWHERE

Preguntas

!!! Gracias !!!

[email protected]

TWITTER

@lfraile

https://www.desarrollaconmicrosoft.com/dotnetspain2015