Ingeniería del Caos

Últimamente se habla mucho de la "Ingeniería del Caos" (Chaos Engineering). Un ejemplo de ingeniería del caos lo llevó a cabo Netflix en el 2014 y partió del interrogante: ¿Podemos tolerar la caída del servicio sin generar traumas ni llevar a cabo complejos planes de recuperación de desastres? La respuesta se resumen en la siguiente figura, llamada por ellos mismos Netflix Chaos Monkey.

De tal forma que, situaciones que pueden salirse de control, en la realidad fueron probadas previamente y son conocidas para el equipo técnico que soporta a la operación pudiendo estar tranquilos de que el sistema no caerá ante un escenario catastrófico.

La Ingeniería del Caos, que vendría a ser “la disciplina de experimentar en un sistema distribuido con el fin de fomentar la confianza en la capacidad del sistema para soportar condiciones turbulentas en producción”. Vamos, es la necesidad de encontrar puntos débiles en un sistema de producción antes de que se manifiesten de manera no deseada, observando el comportamiento del sistema en experimentos controlados. En Principios del caos, se puede encontrar más información en inglés, para ayudarte a entender mejor este tema.
Desde hace un par de años, Netflix, según ellos mismos cuentan, lleva usando el popular  “Chaos Monkey”, que no es más que un software de creación propia, de uso interno que selecciona al azar instancias de máquinas virtuales en Amazon, donde están sus servicios en producción… y hace que se caigan. Por cierto, el código del Chaos Monkey es libre y te lo puedes bajar aquí y más información del mismo la puedes encontrar en el Tech Blog de Netflix.


El Chaos Monkey (la traducción vendría a ser algo así como el Mono del Caos, pero suena raro) tiene como objetivo motivar a los ingenieros de Netflix a diseñar servicios que puedan soportar fallos en instancias. Lo activan sólo durante horario laboral, para que los equipos puedan responder rápidamente si un servicio falla debido a la anulación de una instancia.

El uso del Chaos Monkey ha demostrado su eficacia y ha hecho que todos los equipos de Netflix diseñen sus servicios pensando en la recuperación ante fallos en instancias, de manera rutinaria.
Romper cosas en producción, lo cual no tiene nada de novedoso… salvo que lo hagas aposta. Chaos Engineering es el nombre que se le está dando a esta disciplina.
La idea del Chaos Engineering suena muy ágil, como no puedo prever, especificar y controlarlo todo, pongamos en producción rápido y experimentemos.

Bibliografía

Comentarios