¿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.1.1</version>
</dependency>

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

java -jar your-app.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

Deja una respuesta

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. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s