Toxiproxy, un framework para simular las condiciones de la red en entornos de prueba

Shopify, que desarrolla una de las plataformas de comercio electrónico más grandes y populares en la red, dio a conocer hace poco que ha lanzado la nueva versión del servidor proxy «Toxiproxy 2.3» el cual está diseñado para simular fallas y anomalías en la red y el sistema para probar el estado de las aplicaciones cuando ocurren tales condiciones.

El programa se destaca por proporcionar una API para cambiar dinámicamente las características del canal de comunicación, que puede utilizarse para poder integrar Toxiproxy con sistemas de pruebas unitarias, ademas de que tambien cuenta con el soporte para plataformas de integración continua y entornos de desarrollo.

Sobre Toxiproxy

Este framework está diseñado específicamente para funcionar en entornos de prueba, CI y desarrollo, y admite la manipulación determinista de las conexiones, pero con soporte para el caos aleatorio y la personalización.

Básicamente, Toxiproxy se posiciona como una herramienta que necesitan todos aquellos que requieran realizar pruebas de demostración en aplicaciones que no tiene puntos únicos de falla. Toxiproxy se ha estado usando con éxito en todos los entornos de desarrollo y prueba en Shopify desde octubre de 2014.

El uso de toxiproxy consta de dos partes. Un proxy TCP escrito en Go (lo que contiene este repositorio) y un cliente que se comunica con el proxy a través de HTTP. Con ello se configura la aplicación para que todas las conexiones de prueba pasen por Toxiproxy y luego pueda manipular su estado a través de HTTP.

En otras palabras, el proxy se lanza entre la aplicación que se está probando y el servicio de red con el que interactúa esta aplicación, después de lo cual puede simular la ocurrencia de un cierto retraso al recibir una respuesta del servidor o enviar una solicitud, cambiar el ancho de banda, simular una negativa a aceptar conexiones, interrumpir el curso normal de establecimiento o cierre de conexiones, restablecer conexiones establecidas, distorsionar el contenido de los paquetes.

Para controlar el funcionamiento del servidor proxy desde las aplicaciones, se proporcionan bibliotecas cliente para Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust y Elixir, que permiten cambiar las condiciones de interacción de la red sobre la marcha e inmediatamente evaluar el resultado.

Para cambiar las características del canal de comunicación sin realizar cambios en el código, se puede usar una utilidad especial toxiproxy-cli (se supone que la API de Toxiproxy se usa en pruebas unitarias y la utilidad puede ser útil para realizar experimentos interactivos).

¿Que hay de nuevo en Toxiproxy 2.3?

En cuanto a los cambios que se incluyen en la nueva versión lanzada, se menciona que está la inclusión de un controlador de punto final de cliente para HTTPS.

Asi como tambien la separación de los controladores de prueba típicos en archivos separados, la implementación de la API client.Populate.

Ademas de ello tambien se destaca el soporte para plataformas armv7 y armv6 y la capacidad de cambiar el nivel de registro para el servidor.

Instalar Toxiproxy en Linux

Para aquellos que estén interesados en poder instalar este framework para poder realizar sus pruebas, pueden realizar esto siguiendo los pasos que les compartimos a continuación.

Si eres usuario de Debian, Ubuntu o cualquier otra distribucion basada en estas, puedes realizar la instalación abriendo una terminal (puedes usar el atajo de teclado Ctrl + Alt + T) y en ella vas a teclear:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.deb

Y procedemos a realizar la instalación con:
sudo apt install ./toxiproxy_2.3.0_linux_amd64.deb

En el caso de los que son usuarios de distribuciones con soporte para paquetes RPM, tales como Fedora, openSuse, RHEL, entre otros, el paquete que deben descargar es el siguiente:
wget https://github.com/Shopify/toxiproxy/releases/download/v2.3.0/toxiproxy_2.3.0_linux_amd64.rpm

E instalas el paquete tecleando:
sudo rpm -i toxiproxy_2.3.0_linux_amd64.rpm

Hecha la instalacion pueden iniciar el servicio ejecutando el siguiente comando en la terminal:
sudo service toxiproxy start

Finalmente si estás interesado en poder conocer más al respecto, debes saber que el código de Toxiproxy está escrito en Go y tiene la licencia MIT y puedes consultar el manual de uso de este framework en el siguiente enlace.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.