View a markdown version of this page

Aumentar la resiliencia y mejorar la experiencia del cliente mediante el uso de la ingeniería del caos en AWS - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Aumentar la resiliencia y mejorar la experiencia del cliente mediante el uso de la ingeniería del caos en AWS

Laurent Domb, tecnólogo jefe de Finanzas Federales de Amazon Web Services

Abril de 2025 (historial del documento)

La ingeniería del caos es la disciplina que consiste en experimentar con una aplicación para generar confianza en la capacidad de la organización y de la aplicación para soportar condiciones turbulentas de producción. Se trata de un enfoque proactivo de la resiliencia, cuyo objetivo es comprobar si la aplicación y la organización son capaces de absorber las deficiencias del servicio, adaptarse a ellas y, en última instancia, recuperarse de ellas, mediante la introducción de fallos controlados en las personas, los procesos y la tecnología. La intención también es identificar y eliminar las debilidades antes de que puedan provocar cortes u otras interrupciones en la producción.

En Amazon, entendemos que los fallos son inevitables en los sistemas distribuidos, hasta el punto de que funcionar a pesar de la presencia de fallos es un modo de funcionamiento normal. Dado que las interacciones entre los servicios están destinadas a fallar, debe comprender cómo reaccionan sus servicios ante los distintos modos de fallo y crear servicios que sean resistentes a las principales vulnerabilidades, como los fallos de dependencia, las tormentas de reintentos, las zonas de disponibilidad deterioradas y el agotamiento de los recursos del host.

Tomemos el ejemplo de una tormenta de reintentos. Un fallo localizado en un cliente puede afectar significativamente a varios servicios. Esto se conoce comúnmente como efecto mariposa. Una tormenta de reintentos es una manifestación del efecto mariposa, en el que una dependencia fallida hace que los clientes, y los clientes de esos clientes, vuelvan a intentar la operación fallida, lo que se traduce en un crecimiento exponencial del tráfico. Los servicios se sobrecargan porque deben responder al tráfico normal además de volver a intentarlo y, al mismo tiempo, gestionar una degradación del rendimiento.

La ingeniería del caos ha surgido como respuesta a la creciente complejidad de los sistemas distribuidos. Es un enfoque multidisciplinario que combina principios de la teoría del caos, el pensamiento sistémico y la ingeniería para diseñar y administrar sistemas complejos que sean resistentes a eventos y comportamientos inesperados. En esencia, la ingeniería del caos se ocupa de comprender y gestionar el comportamiento de los sistemas complejos en condiciones de incertidumbre e imprevisibilidad. Reconoce que los enfoques tradicionales de la ingeniería, que se basan en la predicción y el control de los resultados, suelen ser insuficientes para hacer frente a la naturaleza compleja y dinámica de los sistemas distribuidos. A medida que estos sistemas crecen, suelen superar el alcance de comprensión de cualquier individuo.

La ingeniería del caos proporciona conceptos, técnicas y herramientas para introducir errores intencionalmente en los sistemas y descubrir las debilidades antes de que se manifiesten en la producción. Este enfoque proactivo permite a las organizaciones generar confianza en que sus sistemas funcionarán en condiciones estresantes. Si bien la ingeniería del caos sigue siendo una práctica en evolución, representa un cambio fundamental hacia el diseño, la gestión y el funcionamiento de los sistemas informáticos modernos para que sean resilientes ante el aumento de la complejidad y la interconexión.

En las siguientes secciones de esta guía se analizan las ventajas de la ingeniería del caos, se explica cómo realizar experimentos de ingeniería del caos y se describen los enfoques que puede adoptar para implementar la ingeniería del caos a escala en su organización. También se incluyen ejemplos de documentos sobre la planificación de los experimentos y los resultados de los experimentos que puede utilizar como plantillas para sus experimentos de ingeniería del caos.

La siguiente sección analiza en qué se diferencian las características de la ingeniería del caos de las pruebas de resiliencia tradicionales, como las pruebas unitarias, de humo o de integración.