Compartir vía


Describir la ingeniería y resistencia del caos

Antes de empezar a usar Azure Chaos Studio, es útil que comprenda los conceptos básicos de ingeniería de confiabilidad de sitios que se aplican.

¿Qué es la resistencia?

Nunca ha sido más fácil crear aplicaciones distribuidas a gran escala. La infraestructura se hospeda en la nube y la compatibilidad con lenguajes de programación es diversa. También hay muchos componentes y servicios hospedados y de código abierto para compilar.

Desafortunadamente, no hay ninguna garantía de confiabilidad para estos componentes y dependencias subyacentes, ni para los sistemas basados en ellos. La infraestructura puede desconectarse y se pueden producir interrupciones del servicio en cualquier momento. Las interrupciones menores de un área se pueden ampliar y tienen efectos secundarios de larga duración en otra.

Las aplicaciones y los servicios deben planear y dar cabida a problemas como:

  • Interrupciones del servicio.
  • Interrupciones en dependencias conocidas y desconocidas.
  • Carga inesperada repentina.
  • Latencias en todo el sistema.

Las aplicaciones y los servicios deben diseñarse para controlar los errores y protegerse contra las interrupciones.

Las aplicaciones y servicios que gestionan correctamente los problemas son resistentes. La confiabilidad de componentes individuales es buena, pero la resistencia es una propiedad de todo el sistema. La resistencia del sistema de un extremo a otro debe validarse en un entorno integrado, de tipo producción, con las condiciones y la carga a las que se enfrentará en producción.

¿Qué son la ingeniería del caos y la inyección de errores?

  • Ingeniería del caos: la práctica de someter aplicaciones y servicios a estrés y errores reales. El objetivo es crear y validar la resistencia a condiciones no confiables y dependencias que faltan.
  • Inyección de errores: es el acto de introducir un error en un sistema. Puede usar errores diferentes, como la latencia de red o la pérdida de acceso al almacenamiento, para dirigir los componentes del sistema. Puede crear escenarios que una aplicación o servicio debe ser capaz de controlar o de los que debe recuperarse.

Un experimento de caos es la aplicación de errores individualmente, en paralelo o secuencialmente en uno o varios recursos o dependencias de suscripción. El objetivo es supervisar el comportamiento y el estado del sistema para poder actuar ante cualquier problema que surja.

Un experimento puede representar un escenario real, como una interrupción de energía del centro de datos o una latencia de red en un servidor DNS. También se puede usar para simular condiciones perimetrales que se producen. Algunos ejemplos son las compras compulsivas del Black Friday o cuando se ponen a la venta entradas para un concierto de un grupo popular.