¿Qué es Chaos Monkey para Spring Boot?

Chaos Monkey for Spring Boot es una herramienta que introduce los principios de Chaos Engineering en nuestras aplicaciones Spring Boot, en esencia añadiendo latencias a nuestro endpoints REST, lanzando errores, matando apps,….para ver cómo se comporta nuestro sistema completo…como podéis ver algo muy importante en la era de los microservicios 😉

Como vamos a ver, usarlo en una aplicación Spring Boot es muy sencillo

Cómo configurarlo

Primero añadimos la dependencia:

<dependency>

<groupId>de.codecentric</groupId>

<artifactId>chaos-monkey-spring-boot</artifactId>

<version>2.0.0</version>

</dependency>

Luego habilitamos el profile chaos-monkey (o sobre mi profile pongo chaos.monkey.enabled=true)

java -jar myapp.jar –spring.profiles.active=chaos-monkey

Chaos Monkey tiene 2 conceptos: Watchers y Assaults.

Watchers:

Un Watcher es un componente Sprign Boot que vía AOP comprueba los métodos públicos de los Beans de tipo Componente, Controller, RestController, Service y Repository y en función de la configuración de la librería me permite:

  • Latency Assault: añade una latencia aleatoria a la petición
  • Exception Assault lanza RuntimeExceptions aleatorias
  • AppKiller Assault –mata la app

Assaults:

Los Assaults son escenarios en los que queremos testar mi aplicación sobre alguno de los escenarios de test de arriba, así que en función de lo que quiero probar:

Se configuran así:

chaos:

monkey:

assaults:

level: 8

latencyRangeStart: 1000

latencyRangeEnd: 10000

exceptionsActive: true

killApplicationActive: true

watcher:

repository: true

restController: true

Y para que funcionen con Spring Boot Actuator:

management:
 endpoint:
 chaosmonkey:
 enabled: true
 endpoints:
 web:
 exposure:
 include: health,info,chaosmonkey

¿Entonces qué? ¿Lo probamos? 😊

Leer más

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s