validando la escalabilidad de la arquitectura
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
MVP Visual Studio ALM
@lfraile
Luis Fraile
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
¿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
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
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
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