Guía de contratación de Chaos Monkey

¡Asegure la resiliencia del sistema! Navegue por el mundo de la contratación con nuestra Guía de contratación de Chaos Monkey, donde encontrará expertos para probar, desafiar y fortalecer sus sistemas de TI.

Desenvolvedores do Chaos Monkey

En la mayoría de las industrias, el caos es algo negativo. Sin embargo, en el mundo de la ingeniería del caos, la noción de caos es una herramienta útil, práctica y esclarecedora. La ingeniería del caos ayuda a los desarrolladores a diseñar sistemas informáticos que sean más resistentes y tengan menos debilidades que las pruebas y la ingeniería tradicionales. Chaos Monkey es la herramienta más utilizada para crear este "caos".

El equipo de ingeniería de Netflix desarrolló Chaos Monkey después de migrar sus sistemas a la nube en 2010. Este nuevo entorno basado en la nube significaba que los hosts podían cerrarse y reemplazarse en cualquier momento aleatorio, lo que generó la necesidad de prepararse para tales limitaciones. Luego, al equipo de ingeniería se le ocurrió la idea de realizar pruebas reiniciando aleatoriamente sus propios hosts. Esto permitió a Netflix encontrar posibles debilidades y, al mismo tiempo, validar que su propia automatización de remediación funcionaba correctamente.

Guia de contratação do Macaco do Caos 7

Guía de contratación

Netflix diseñó Chaos Monkey como su propia versión de ingeniería del caos para probar la estabilidad del sistema imponiendo fallas en una ejecución pseudoaleatoria de servicios e instancias dentro de su arquitectura de nube. A través de este caos creado intencionalmente y el poder de la ingeniería del caos, los desarrolladores e ingenieros tienen la capacidad de ver cómo responden los sistemas cuando se desactivan componentes críticos de su infraestructura.

En esencia, la ingeniería del caos y el propio Chaos Monkey les dicen a los desarrolladores qué tan bien un sistema cambia sus recursos cuando se enfrenta a una interrupción. Esto es especialmente útil en instancias de computación en la nube en servidores de Amazon Web Services. Chaos Monkey finaliza aleatoriamente instancias dentro de una máquina virtual y contenedores que se ejecutan dentro de un entorno de producción para exponer fallas con mayor frecuencia y ayudar a crear servicios resistentes.

Un cronograma configurable permite que ocurran fallas simuladas en momentos específicos para que los desarrolladores tengan la capacidad de monitorearlas de cerca. Esto le ayuda a prepararse para errores graves e inesperados, en lugar de simplemente esperar una catástrofe y reaccionar después del hecho. Normalmente, la ingeniería del caos suele seguir 4 pasos de prueba:

  1. Los ingenieros y desarrolladores definen el "estado estable" como un resultado medible de un sistema para establecerlo como base para el comportamiento normal.
  2. Luego, los equipos formulan hipótesis sobre cómo continuará y reaccionará este estado estable tanto en el grupo de control como en el experimental durante la simulación de falla.
  3. Los ingenieros introducen variables para reflejar problemas y eventos del mundo real que podrían causar fallas catastróficas, como fallas, mal funcionamiento del disco duro, conexiones de red cortadas, etc.
  4. Después de presenciar las reacciones del sistema, el equipo intenta refutar la hipótesis buscando diferencias entre los grupos de control y experimentales.

Generalmente, cuanto más difícil sea alterar el estado estable del sistema, más confianza tendrán las empresas y los equipos de desarrollo en el sistema en términos de tiempo de actividad y experiencia del usuario. El campo de la ingeniería del caos, y específicamente Chaos Monkey, es todavía relativamente nuevo, pero este tipo de sistemas y probadores de software son buscados por empresas más grandes que necesitan saber que sus sistemas están en pleno funcionamiento, independientemente de la situación o los factores externos asociados. a la computación en la nube. .

Preguntas de entrevista

¿Cómo construye un ingeniero una hipótesis para probar con Chaos Monkey sobre el comportamiento en estado estacionario?

Concéntrese en el resultado medible del sistema con fines de prueba en lugar de en los atributos internos. Las tasas generales de error del sistema, los percentiles de latencia, el rendimiento, etc., pueden ser posibles métricas de interés para determinar el comportamiento en estado estable.

Medir la producción durante un período de tiempo relativamente corto también es un indicador del estado estable del sistema. Al funcionar de esta manera, el "caos" verificará que el sistema funciona centrándose en patrones de comportamiento sistémicos durante los experimentos, en lugar de validar cómo funciona.

¿Es recomendable realizar experimentos de forma manual o automática en Chaos Monkey y en ingeniería del caos?

Si bien ejecutar experimentos manualmente ayuda a los desarrolladores a crear y presenciar reacciones del sistema, requiere mucha mano de obra y, en última instancia, no es escalable ni sostenible para un equipo. Una mejor práctica en ingeniería del caos es automatizar experimentos y ejecutarlos continuamente. La ingeniería del caos normalmente incorpora la automatización en el sistema para impulsar tanto la creación de experimentos como el análisis de los resultados.

¿Cuáles son algunas de las desventajas de usar Chaos Monkey?

Chaos Monkey es increíblemente beneficioso, pero tiene algunos inconvenientes. Requiere el uso de MySQL 5.X y no admite implementaciones administradas en ningún otro dispositivo que no sea Spinnaker. Ofrece solo un alcance limitado de prueba, ya que inyecta un tipo de falla a la vez para producir una instancia de falla aleatoria como las fallas de "cola larga" experimentadas durante el ciclo de vida del software o programa.

Chaos Monkey también carece de una interfaz de usuario real y requiere ejecución a través de la línea de comandos, scripts y archivos de configuración. Podría decirse que su mayor desventaja es el hecho de que no ofrece capacidades de recuperación. La ingeniería del caos fomenta la realización de los experimentos más pequeños posibles desde el principio para contener las repercusiones y que los equipos de ingeniería trabajen desde allí para evitar una falla total del sistema.

Descripción del trabajo

Buscamos un ingeniero experimentado responsable de la ingeniería del caos mediante el uso de Chaos Monkey. Este puesto incluye el diseño y la ejecución de pruebas de caos y carga para probar sistemas, software y aplicaciones de alto rendimiento.

El candidato adecuado utilizará su conocimiento de marcos de aplicaciones y tecnologías de contenedorización para diseñar, gestionar y mantener programas diseñados para enfatizar y determinar la sostenibilidad y confiabilidad de los sistemas críticos. Debe ser una persona altamente motivada, lista para realizar pruebas rápidas mientras trabaja de manera ágil para ofrecer soluciones confiables que satisfagan las necesidades comerciales.

Responsabilidades laborales

  • Mantener y mejorar las pruebas de confiabilidad y caos de las plataformas tecnológicas en toda la empresa.
  • Ejecute pruebas de ruta crítica a escala en todas las plataformas
  • Cree planes y modelos de rendimiento para sistemas de infraestructura y aplicaciones altamente escalables, de baja latencia y alta disponibilidad.
  • Contribuir activamente a la planificación de capacidades y a los ejercicios de preparación para la recuperación ante desastres.
  • Supervise el rendimiento de las aplicaciones, optimice los cuellos de botella en el rendimiento y administre el uso para crear modelos de capacidad.
  • Asóciese con equipos de desarrollo para identificar y crear planes alternativos para escenarios críticos.

Cualificaciones laborales

  • Licenciatura en Ciencias de la Computación
  • Más de 5 años de experiencia en ingeniería de software, MySQL, Golang y lenguajes de programación relevantes.
  • Más de 4 años de experiencia profesional relevante en ingeniería del caos.
  • Conocimiento profundo de las mejores prácticas de Chaos Monkey en múltiples dominios, incluidas aplicaciones, redes y bases de datos.
  • Experiencia en estrategias de monitoreo, incluidos usuarios reales, sintéticos, conexiones de red, etc.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.