📋

Hechos Clave

  • Netflix creó el Ejército Simio para probar la resiliencia de la infraestructura en la nube
  • Chaos Monkey termina aleatoriamente instancias de producción para asegurar tolerancia a fallos
  • Las herramientas obligan a los ingenieros a diseñar sistemas que puedan sobrevivir fallos de componentes
  • Herramientas adicionales incluyen Janitor Monkey para limpieza de recursos y Chaos Gorilla para fallos a nivel de zona

Resumen Rápido

Netflix ha desarrollado un conjunto de herramientas automatizadas conocidas como el Ejército Simio para probar la resiliencia de su infraestructura en la nube. La herramienta principal, Chaos Monkey, termina aleatoriamente instancias de máquinas virtuales y servicios dentro del entorno de producción para asegurar que el sistema pueda soportar fallos inesperados sin afectar a los usuarios.

Este enfoque obliga a los ingenieros a diseñar sistemas tolerantes a fallos desde cero. El Ejército Simio incluye otras herramientas como Janitor Monkey, que limpia recursos no utilizados, y Chaos Gorilla, que simula interrupciones de zonas de disponibilidad. Al adoptar el fallo como algo constante, Netflix busca construir una plataforma de streaming más robusta y confiable que pueda sobrevivir a los fallos inevitables que ocurren en entornos de nube complejos.

El Génesis del Ejército Simio

El cambio a Amazon Web Services (AWS) presentó a Netflix tanto oportunidades como desafíos. Si bien la nube ofrecía una escalabilidad sin precedentes, también introdujo una nueva clase de fallos que los centros de datos tradicionales no enfrentaban. Las fallas de hardware, las particiones de red y las interrupciones de zonas de disponibilidad se convirtieron en parte de las operaciones diarias.

Para abordar esto, los ingenieros de Netflix se dieron cuenta de que necesitaban probar sus sistemas de manera proactiva contra estos fallos. En lugar de esperar a que las cosas se rompieran, decidieron romperlas a propósito. Esta filosofía llevó a la creación del Ejército Simio, una colección de herramientas diseñadas para simular varios escenarios de fallos.

El objetivo no era crear caos por sí mismo, sino construir confianza en la capacidad del sistema para sobrevivir a interrupciones del mundo real. Al probar constantemente en producción, Netflix podía identificar debilidades antes de que causaran interrupciones para los clientes.

Chaos Monkey: La Herramienta Principal

Chaos Monkey es el miembro más conocido del Ejército Simio. Su trabajo es simple pero aterrador: selecciona aleatoriamente una máquina virtual o servicio en el entorno de producción y lo termina. Esto ocurre durante las horas hábiles normales cuando los ingenieros están disponibles para responder.

La presencia de Chaos Monkey obliga a cada servicio a ser resiliente. Si un servicio no puede manejar la pérdida repentina de una de sus instancias, se considera roto y debe repararse inmediatamente. Esto asegura que la pérdida de cualquier componente individual no se convierta en una interrupción más grande.

Los principios clave detrás de Chaos Monkey incluyen:

  • Aleatoriedad: El tiempo y el objetivo de los fallos son impredecibles
  • Automatización: La herramienta se ejecuta continuamente sin intervención manual
  • Entorno de Producción: Las pruebas ocurren en el entorno real donde importa
  • No disruptivo: Los fallos deben manejarse con gracia sin impacto en el cliente

Más Allá de Chaos Monkey

El Ejército Simio se ha expandido para incluir herramientas especializadas para diferentes tipos de escenarios de fallos. Chaos Gorilla extiende el concepto de instancias individuales a zonas de disponibilidad completas, simulando lo que sucede cuando un centro de datos completo se desconecta.

Janitor Monkey adopta un enfoque diferente al enfocarse en la gestión de recursos. Identifica y limpia recursos no utilizados, ayudando a prevenir la acumulación de deuda técnica y reduciendo costos. Esto asegura que la infraestructura permanezca ágil y eficiente.

Otras herramientas en el ejército abordan preocupaciones específicas:

  • Conformity Monkey: Verifica el cumplimiento de las mejores prácticas
  • Doctor Monkey: Monitorea chequeos de salud y síntomas
  • Lawyer Monkey: Asegura que se cumplan los requisitos legales y regulatorios

Cada herramienta sirve un propósito específico en el mantenimiento de la salud general y la resiliencia del ecosistema de Netflix.

Cultura de Resiliencia

El Ejército Simio representa más que solo herramientas; encarna un cambio cultural en Netflix hacia la adopción del fallo. La empresa opera bajo la suposición de que los fallos son inevitables y deben ser diseñados, no evitados.

Esta mentalidad de ingeniería del caos requiere que los equipos construyan sistemas que puedan autorrepararse. Los servicios deben ser capaces de detectar fallos, redirigirse alrededor de ellos y recuperarse automáticamente. El monitoreo y las alertas se convierten en componentes críticos de esta arquitectura.

El enfoque ha demostrado ser exitoso. Netflix ha sobrevivido a numerosas interrupciones reales de AWS con un impacto mínimo en los clientes. Las pruebas constantes aseguran que cuando ocurran fallos reales, el sistema ya haya sido fortalecido contra ellos.

Al convertir el fallo en una práctica diaria, Netflix ha creado una de las plataformas de streaming más resilientes del mundo, capaz de servir a millones de usuarios simultáneamente incluso cuando partes de su infraestructura están bajo estrés.