Categorías
DevOps Microservicios Negocio Testing

Asegurando la migración de infraestructura con Apache Bench

Apache Bench es una herramienta de línea de comandos que se utiliza para realizar pruebas de carga y rendimiento en servidores web.

¿Qué es Apache Bench?

Apache Bench (ab de aquí en adelante) es una herramienta de línea de comandos desarrollada por la Apache Software Foundation que se utiliza para realizar pruebas de carga y rendimiento en servidores web.

Permite simular múltiples solicitudes de clientes a un servidor en un período de tiempo definido, evaluando así la capacidad del servidor para manejar cargas de trabajo intensas y medir su tiempo de respuesta.

¿Con qué objetivo lo hemos utilizado en Vitaly?

Hemos utilizado Apache Bench para respaldar nuestra migración de infraestructura desde on-premise a Google Cloud Platform (GCP).

Mediante estas pruebas de carga exhaustivas, evaluamos la capacidad de todas las piezas desplegadas en GCP que componen los sistemas para manejar la carga de trabajo de forma fluida, garantizando una transición exitosa y un rendimiento óptimo en nuestra nueva infraestructura en la nube.

¿Cómo se utiliza?

Requisitos previos

Basta con tener Apache Bench instalado en tu sistema. Puedes verificar su disponibilidad en la línea de comandos con el comando:

ab -V
Parámetros principales

Para ejecutar una prueba de ab, basta con indicar los siguientes parámetros:

  • nº de solicitudes (-n)
  • nº de peticiones concurrentes (-c)
  • timeout (-s)
  • cabeceras (-H)
  • formato fichero de entrada (-T)
  • url destino de la prueba
Ejemplos

Un ejemplo de una petición get, utilizando una cookie, sería el siguiente:

ab -n100 -c10 -s1000 -l -H "Cookie: NOMBRE_COOKIE=valorCookie" "https://web.com/endpoint1"

Para una petición post, indicando un fichero con la entrada (formato json) y un token de autenticación de tipo Bearer:

ab -n100 -c5 -s1000 -l -T "application/json" -p entrada.json -H "Authorization: Bearer fifjdopaifjqwij3r2iojr2oidmrh12fy4rd1" https://web.com/endpoint2
Interpretación de resultados

Una vez completada la prueba, se mostrará un resumen  de la misma en la terminal. Un ejemplo de esta salida sería el siguiente:

Hay que prestar atención a métricas clave como:

  • Concurrency level
  • Complete request
  • Failed request
  • Requests per second
  • Time per request
  • Connection Times

Conclusión

Apache Bench es una de esas herramienta esenciales para cualquier equipo de IT.

En nuestro caso, a través de pruebas rigurosas de carga y rendimiento, hemos logrado no solo validar nuestra transición hacia Google Cloud Platform, sino también optimizar ciertos elementos de nuestro sistema para un rendimiento más óptimo.

La capacidad de medir la respuesta de los servicios bajo diferentes condiciones nos ha proporcionado una visión de cómo nuestro sistema resistiría el tráfico real tras la puesta en producción, sabiendo los niveles de peticiones que soportaba antes del cambio.