¿Cómo resolver los problemas de los microservicios y la arquitectura de sistemas distribuidos?
Con el auge de los microservicios y las arquitecturas de nube distribuida, la Web se está volviendo cada vez más compleja, los fallos "aleatorios" son cada vez más difíciles de predecir y nuestra dependencia de estos sistemas es cada vez mayor. grande.
Estos fallos provocaron grandes pérdidas a la empresa y causaron grandes problemas a los usuarios, afectando sus compras online, transacciones o interrumpiendo su trabajo. Incluso las fallas simples pueden afectar los resultados de una empresa, por lo que el tiempo de inactividad se ha convertido en un KPI para muchos equipos de ingeniería. En 2017, el 98 % de las empresas dijeron que una hora de inactividad les costó más de 65 438 millones de dólares. Las interrupciones del servicio pueden costar a las empresas millones de dólares. Recientemente, el CEO de British Airways reveló que en mayo de 2017 se produjo un fallo técnico que provocó que miles de pasajeros quedaran varados en el aeropuerto, provocando que la compañía perdiera 80 millones de libras.
Las empresas necesitan encontrar formas de resolver estos problemas, porque cuando ocurra el siguiente incidente, ya será demasiado tarde. Así nació la ingeniería del caos.
La ingeniería del caos tiene como objetivo cortar los fallos de raíz, es decir, identificarlos antes de que causen perturbaciones. Al crear fallas de manera proactiva, podemos probar el comportamiento del sistema bajo diversas tensiones, identificar y solucionar problemas de fallas y evitar consecuencias graves.
La ingeniería del caos compara lo esperado con lo que realmente ocurre para mejorar la flexibilidad del sistema mediante la "destrucción consciente".
Una breve historia de la ingeniería del caos
La ingeniería del caos apareció por primera vez en las empresas gigantes de Internet, que cuentan con sistemas distribuidos a gran escala. Debido a que estos sistemas son tan complejos, requieren nuevos medios para probarlos.
En 2010
El equipo de NetflixEngTools desarrolló ChaosMonkey. En ese momento, Netflix estaba migrando de la infraestructura física a AWS. Para garantizar que la falla de la instancia de AWS no afecte la experiencia del usuario de Netflix, desarrollaron esta herramienta para probar el sistema.
En 2011
Nació SimianArmy, agregando un modo de inyección de fallas basado en ChaosMonkey para probar más escenarios de fallas. Netflix cree que las características de la nube son la redundancia y la tolerancia a fallos, pero ningún componente puede garantizar el 100% de disponibilidad, por lo que deben diseñar una arquitectura de nube en la que el fallo de un solo componente no afecte a todo el sistema.
2012
Netflix hizo público ChaosMonkey en GitHub y afirmó que "han encontrado una solución para lidiar con fallas inesperadas importantes. Al crear fallas constantemente, nuestro servicio se vuelve más flexible". /p>
2014
El equipo de Netflix creó un nuevo rol llamado Ingeniero del Caos. Bruce Wong inventó el personaje y Dan Woods lo popularizó entre la comunidad de ingenieros en Twitter. DanWoods explica: "Aprendí más sobre ingeniería del caos de Kolton Andrus, quien lo llamó prueba de inyección de fallas".
2014 10 Cuando el cofundador de Gremlin, Kolton Andrus, todavía estaba en Netflix, propusieron el concepto de prueba de inyección de fallas (FIT) basado en Simian Army, lo que permite a los desarrolladores controlar la inyección de manera más flexible. El "rango fatal" de fracasos. Debido a que SimianArmy a veces puede causar fallas muy graves, los desarrolladores de Netflix están preocupados al respecto y FIT puede controlar mejor la granularidad de las fallas, por lo que se les ocurrió el concepto de ingeniería del caos.