Netflix Monkey Army

El ejército de simios de Netflix

In Data Center, Televisión by José Luis MartínezLeave a Comment

Tiempo de Lectura: 4 minutos

Corría aproximadamente el año 2009 cuando se supo de la existencia de un oscuro ejército de monos que campaba a sus anchas por los sistemas de Netflix: la Simian Army.

¿Pero esto qué es? ¿Un ejército de monos?

Pues el nombre no puede ser más descriptivo. El ejército de simios es un conjunto de herramientas o «monos» desarrollado por el equipo técnico del gigante de streaming para comprobar la salud y las medidas contra fallos de sus sistemas informáticos. Todo empezó con un único mono, pero hoy en día le acompañan muchos más, por eso lo de «ejército». Pero, empecemos por el principio.

Simian Army

¿Por qué se creó la Simian Army?

Ningún componente individual puede garantizar al 100% el no fallar. Aún invirtiendo en el hardware más costoso, nada nos asegura que un determinado momento este falle y tengamos un problema en un sistema. En Netflix lo sabían, y desarrollaron su arquitectura para que componentes individuales pudieran fallar sin afectar a la disponibilidad de todo el sistema.

Pero, diseñar una arquitectura tolerante a fallos no es suficiente, es necesario evaluar constantemente la capacidad del sistema para sobrevivir. Esta es una de las premisas en la construcción de un sistema robusto y con capacidad para sobreponerse a imprevistos.

Con este objetivo nació el primer «mono» del ejército simio de Netflix: el Chaos Monkey.

El primer soldado

Siempre hay un primer recluta, y ese fue Chaos Monkey, una herramienta que inhabilitaba de forma aleatoria servidores de producción para garantizar que el servicio se mantiene y no hay impacto para el cliente. Para bautizarlo se inspiraron en la idea de liberar a un mono con un arma en su centro de datos, disparando y masticando cables sin parar.

Comenzaron a hacer ensayos monitorizados con Chaos Monkey, donde un grupo de ingenieros estaban atentos a ver por dónde fallaba el sistema y de esta forma, idearon mecanismos de recuperación automática para evitar interrupciones del servicio.

Netflix Chaos Monkey simian army

El resto del ejército

A este simio le siguieron muchos más:

  • Latency Monkey: induce retrasos artificiales en la capa de comunicación cliente-servidor para simular la degradación del servicio y mide si los servicios responden adecuadamente.
  • Conformity Monkey: encuentra servidores que no se adhieren a las mejores prácticas y los apaga.
  • Doctor Monkey: aprovecha los controles de estado que se ejecutan en cada servidor y supervisa otros signos externos de salud (por ejemplo, la carga de la CPU) para detectar estados no saludables.
  • Janitor Monkey: asegura que el entorno se está ejecutando libre de basura y desperdicio. Busca los recursos no utilizados y los descarta.
  • Security Monkey: encuentra violaciones de seguridad o vulnerabilidades y finaliza las instancias ofensivas. También revisa los certificados SSL y DRM.
  • 10-18 Monkey: detecta problemas de configuración y tiempo de ejecución en instancias que atienden a clientes en múltiples regiones geográficas, utilizando diferentes idiomas y conjuntos de caracteres.
  • Chaos Gorilla: es similar a Chaos Monkey, pero simula una interrupción de toda una zona de disponibilidad.

Con este creciente ejército de simios, Netflix prueba constantemente su capacidad de resistencia a todo tipo de fallos, para minimizar o eliminar su impacto y no perjudicar a sus abonados.

Haz como Netflix: provoca el fallo

En todos los planes de contingencias o de copias de seguridad, llega el punto donde se recomienda provocar un fallo y probar a restaurar el sistema. ¿Qué es lo que sucede en la mayoría de casos? Que ya sea por pereza o falta de tiempo, este punto se pasa por alto, adoptando una falsa sensación de seguridad, como si nada fuera a provocar una caída de nuestro sistema porque tenemos componentes redundantes, sistemas de alimentación ininterrumpida o grupos de generación de energía.

Nada más lejos de la realidad. Hay que poner a prueba nuestros planes, desenchufar el SAI, cortar el suministro, desconectar un servidor, para ver si de verdad estamos preparados.

¿Soportaría tu sistema el ataque del ejército simio?

Escrito por

José Luis Martínez

LinkedIN

Basado en el artículo original: https://medium.com/netflix-techblog/the-netflix-simian-army-16e57fbab116