Conceptos

Ingeniería del Caos

Disciplina de experimentar en sistemas de producción para descubrir debilidades antes de que causen incidentes, inyectando fallos controlados.

seed#chaos-engineering#resilience#fault-injection#testing#reliability

¿Qué es?

Chaos Engineering es la práctica de inyectar fallos controlados en sistemas para descubrir debilidades antes de que causen incidentes reales. Popularizada por Netflix con Chaos Monkey.

Principios

  1. Definir el estado estable del sistema
  2. Hipotetizar que el estado se mantiene ante perturbaciones
  3. Introducir variables del mundo real (fallos de red, latencia, crashes)
  4. Buscar diferencias entre hipótesis y realidad

Tipos de experimentos

TipoQué simulaQué valida
Terminar instanciasFallo de servidorAuto-healing, redundancia
Inyectar latenciaRed degradadaTimeouts, circuit breakers
Fallo de dependenciasServicio externo caídoFallbacks, graceful degradation
Agotar recursosCPU/memoria/disco al límiteAutoscaling, alertas
Corrupción de datosDatos inconsistentesValidación, reconciliación

Herramientas

HerramientaEnfoque
Chaos MonkeyTerminar instancias (Netflix)
GremlinPlataforma SaaS completa
LitmusKubernetes-native (CNCF)
AWS FISFault Injection Simulator

Precauciones

  • Empezar en ambientes no productivos
  • Tener rollback automático
  • Comunicar experimentos al equipo
  • Minimizar blast radius

¿Por qué importa?

Los sistemas distribuidos fallan de formas impredecibles. Chaos engineering convierte esas fallas en eventos planificados y controlados, revelando debilidades antes de que se conviertan en incidentes en producción. Es la práctica que construye confianza real en la resiliencia del sistema.

Referencias

Conceptos