Crash test de AXA - cortesía de Pixabay |
Como símil al crash test Netflix ha desarrollado la Simian Army, el ejército de simios que resulta en un conjunto de servicios o "monos" para comprobar la salud de sus sistemas y hacer ensayos de crisis provocando fallos en su software.
La construcción de software es un ingeniería compleja que implica bugs, no se puede garantizar al 100% que alguna parte no pueda fallar. Aún invirtiendo en el hardware más costoso y en las herramientas de software más modernas nada garantiza que en una situación crítica haya un fallo y tengamos un problema en el sistema. En Netflix son conscientes de ello y desarrollaron su arquitectura para que los componentes individuales puedan fallar sin afectar a la disponibilidad del resto del sistema.
Es necesario evaluar constantemente la capacidad del sistema para sobrevivir a todo tipo de fallos. Hemos de poner a prueba nuestro sistema, desenchufar el SAI, cortar el suministro, desconectar un servidor, para ver si de verdad el software está preparados para desplegarlo en producción. Esta es una de las premisas de un sistema resilente con capacidad para sobreponerse a imprevistos para minimizar o eliminar su impacto y no perjudicar a nuestros clientes.
José Luis Martínez nos habla en su post "El ejército de simios de Netflix" de los 8 monos:
Imagen de Wikipedia |
- 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.
- 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.
Actualización de Netflix
"Todo el software tiene un ciclo de vida y llegó el momento de desarrollar las ideas centrales de Simian Army para satisfacer las necesidades cambiantes del entorno de Netflix. El primer paso más obvio fue separar los servicios para que pudieran evolucionar de forma independiente. Al separarlos, también permitió que cada uno utilizara diferentes tecnologías y modelos de implementación, por ejemplo, integrar la funcionalidad de Conformity Monkey directamente en Spinnaker proporciona a los equipos comentarios en la misma interfaz de usuario que realizan las implementaciones, lo que aumenta la visibilidad de las violaciones y permite la capacidad de mostrar acciones correctivas".
- Chaos Monkey ahora es standalone
- Janitor Monkey ha sido reemplazado por Swabbie
- Conformity Monkey y los servicios de auditoria se han movido a Spinnaker
No hay comentarios:
Publicar un comentario