13
Ejemplo práctico con Gatling Pruebas de carga web Las Palmas DevOps Jonathan Araña Cruz

Las palmas devops: Pruebas de carga web

Embed Size (px)

Citation preview

Page 1: Las palmas devops: Pruebas de carga web

Ejemplo práctico con Gatling

Pruebas de carga web

Las Palmas DevOps Jonathan Araña Cruz

Page 2: Las palmas devops: Pruebas de carga web

Jonathan Araña Cruz (aka jonhattan)

Sysadmin en la onda DevOpsDrupal developer

http://atlantic-canary.nethttp://github.com/jonhattan

@_jonhattan_

Page 3: Las palmas devops: Pruebas de carga web

Cuestiones

¿Qué respuesta da una web? Número de visitantes, tiempos de generación, tasa de errores,...

➜ Monitorización, Analytics,...

¿Cómo variará ante cambios…?● En el código● En el volumen de contenido● En la configuración de la infraestructura● En los recursos hardware● En el número de visitantes

➜ Pruebas de carga

Page 4: Las palmas devops: Pruebas de carga web

Pruebas de carga

● Diseñar planes de carga○ Ej: cuantas visitas por segundo quiero simular

● Diseñar escenarios○ Simulación de la interacción de los usuarios en la web

● Medir:○ Tiempos de respuesta, peticiones fallidas,...○ Estrés del servidor: carga máxima/media, ram, swap…

● Interpretar datos, sacar conclusiones

Page 5: Las palmas devops: Pruebas de carga web

Reproducibilidad de los tests

● Condiciones iniciales● Definir pasos necesarios para la reproducibilidad (volver a las condiciones

iniciales)○ Cargar bbdd de referencia○ Reiniciar servidor web / bbdd / memcache / …○ Flushear memoria (cachés, buffers..)○ Esperar a que disminuya la carga del sistema, etc

Page 6: Las palmas devops: Pruebas de carga web

Variabilidad

● Factores fuera de nuestro control○ Servicios externos○ Red (control de congestión, anti flood/dos...)○ Eventos del sistema (origen o destino)○ Complejidad○ Timing

Page 7: Las palmas devops: Pruebas de carga web

● Apache Bench - http://httpd.apache.org/docs/2.2/programs/ab.html● JMeter - http://jmeter.apache.org● Gatling http://gatling.io● …

Herramientas

Page 8: Las palmas devops: Pruebas de carga web

Gatling

● Open-source load testing framework based on Scala, Akka and Netty

● High performance

● Ready-to-present HTML reports

● Scenario recorder and developer-friendly DSL

Page 9: Las palmas devops: Pruebas de carga web

Gatling: Escenarios

● Codificar desde cero● Capturar una sesión real con un navegador● Ajustar escenarios para su reproducción

gatling/bin/recorder.sh &

chromium --proxy-server=http://127.0.0.1:8000 &

Page 10: Las palmas devops: Pruebas de carga web

Gatling: Prueba de carga

● https://gitlab.faita.net/jonhattan/gatling-example/commits/master

ssh s01.surgery.sbit.io -o "ServerAliveInterval=30" sudo tail -f /var/log/apache2/acme.s01.surgery.sbit.io_access.log | logstalgia -x --paddle-mode vhost -

USERS=100 TIME=10 ./bin/gatling.sh

Page 11: Las palmas devops: Pruebas de carga web

Caso real

● Web para preinscripción y reserva de plazas en eventos● Fecha de apertura de inscripción● ~ 2000 inscritos

https://docs.google.com/spreadsheets/d/1YT7WxqCJM5mqZBVoOf9tBp-2s06Uwy95T218KRKQUGg/edit#gid=0

Page 12: Las palmas devops: Pruebas de carga web
Page 13: Las palmas devops: Pruebas de carga web

Bola extra