Mejorando la resistencia de Microsoft Azure con Chaos Studio


"En un post anterior en el blog En esta serie, hemos discutido el uso de técnicas de ingeniería del caos y de inyección de fallas para validar la resiliencia de sus aplicaciones en la nube. Las pruebas de caos son útiles para fortalecer la confianza en sus aplicaciones al identificar y resolver problemas de resiliencia antes de que afecten a los clientes, agilizando así su capacidad de respuesta a incidentes al minimizar o prevenir el tiempo de inactividad, la pérdida de datos y la insatisfacción del cliente. Para facilitar esto, hemos lanzado una nueva plataforma para la validación de la resiliencia a través de pruebas de caos: Azure Chaos Studio. A partir del 1 de noviembre de 2023, Chaos Studio está disponible de forma general y listo para usar en 17 regiones de producción. Le pedí a Chris Ashton, director principal de programas del equipo de ingeniería de Chaos Studio, que compartiera más información sobre cuándo es mejor implementar las funciones clave que respaldan la confiabilidad de sus aplicaciones".—Mark Russinovich, director de tecnología de Azure.


Diseño e implementación, validación y medición

Diseñar para la resistencia. El primer paso para desarrollar una aplicación resistente es comenzar con el Marco de buenas prácticas de arquitectura de Microsoft Azure y seguir la guía para diseñar una aplicación que pueda hacer frente a fallos. Construya resiliencia en su aplicación utilizando zonas de disponibilidad, emparejamiento de regiones, copias de seguridad y otras prácticas recomendadas. Incorpore Azure Monitor para supervisar el estado de su aplicación. Establezca métricas de rendimiento para su aplicación y realice un seguimiento de indicadores clave como el objetivo de nivel de servicio (SLO), el tiempo objetivo de recuperación (RTO), el punto objetivo de recuperación (RPO) y otros datos relevantes para su aplicación y su negocio. Antes de implementar su aplicación en producción para su uso por parte de los clientes, es crucial verificar que realmente pueda manejar situaciones disruptivas de la forma esperada y que sea genuinamente resistente. Aquí es donde entran en juego la ingeniería del caos y Microsoft Azure Chaos Studio.

un hombre de pie frente a una pantalla de computadora

Azure Chaos Studio

Mejore la resiliencia de las aplicaciones con ingeniería y pruebas del caos

Ingeniería del caos es la práctica de introducir fallos en una aplicación para comprobar su resistencia ante situaciones de interrupción del mundo real que puedan surgir en producción. La ingeniería del caos va más allá de las pruebas: le permite validar opciones de arquitectura, configuración, calidad de código y componentes de monitoreo, así como su enfoque de respuesta a incidentes. La ingeniería del caos se lleva a cabo de manera más efectiva siguiendo el método científico:

  • Formular una hipótesis
  • Realizar experimentos de inyección de fallas para validarla
  • Analizar los resultados
  • Hacer ajustes
  • Repetir el proceso

Validación del caos puede integrarse en la validación automatizada del proceso de despliegue o puede llevarse a cabo manualmente como una sesión de práctica, a menudo conocida como "día de juego". Agregar el caos a su proceso de Integración Continua (CI), Entrega Continua (CD) y Validación Continua (CV) le permite controlar el flujo de código según los resultados, brindándole confianza en su capacidad para gestionar situaciones normales y evaluando constantemente la resiliencia del nuevo código en un entorno de nube en constante evolución. El caos también puede combinarse con pruebas de carga, end-to-end y otras pruebas para ampliar su cobertura. Los ejercicios de caos y los días de juego se pueden realizar con menos frecuencia para validar escenarios disruptivos más raros y extremos, y para demostrar las capacidades de recuperación ante desastres (DR).

Pruebas de caos se utilizan de diversas maneras en muchas organizaciones. Algunos equipos realizan ejercicios de caos mensuales, otros han implementado el Caos automatizado para liberar la automatización de pipelines y algunos llevan a cabo ambas prácticas. Por lo general, el objetivo de los ejercicios de caos es validar la resiliencia ante un escenario específico del mundo real, como la caída de AAD o del Sistema de Nombres de Dominio (DNS), o demostrar el cumplimiento de la continuidad del negocio y la recuperación ante desastres (BCDR). Algunos aspectos de estos ejercicios se pueden automatizar, pero requieren la supervisión y el análisis por parte de personas para evaluar la resiliencia del sistema bajo prueba.

En la automatización del proceso de despliegue de CI/CD, el objetivo es automatizar completamente la validación de resiliencia y detectar defectos de manera temprana. Según los resultados, muchos equipos detienen el despliegue en producción si falla la validación del caos. Algunos equipos tienen métricas de éxito en las pruebas de caos que monitorean para detectar "regresiones de resiliencia detectadas" e "incidentes evitados". En el equipo de Chaos Studio, llevamos a cabo ejercicios enfocados en escenarios contra los diferentes microservicios que componen el producto. También utilizamos las pruebas de caos como una forma de entrenar a nuevos ingenieros en guardia. De esta manera, los ingenieros pueden observar el impacto de un problema real y aprender los pasos para monitorear, analizar e implementar una solución en un entorno seguro, sin la presión de tener que solucionar un problema que afecte a un cliente durante una interrupción real. De esa forma, cuando surja un problema real, estarán mejor preparados para resolverlo con confianza.

Dentro de Microsoft Azure Chaos Studio

Azure Chaos Studio es la soluciónMicrosoft ha lanzado Chaos Studio para ayudar a medir, comprender, mejorar y mantener la resiliencia de las aplicaciones a través de experimentos de caos basados en hipótesis. Este servicio está integrado con Azure para ofrecer una validación segura del caos a gran escala.

Diagrama de los microservicios de Chaos Studio y cómo interactúan con una aplicación de cliente, servicios de Azure, Azure Monitor y Azure Load Testing.

Chaos Studio ofrece las siguientes características:

– Un servicio completamente administrado para validar la resiliencia de las aplicaciones y servicios de Microsoft Azure.

– Integración profunda con Azure, que incluye una interfaz de usuario en Azure Portal, API REST compatibles con Azure Resource Manager e integración con [Monitor de Azure](https://learn.microsoft.com/en-us/azure/azure-monitor/overview) y [Pruebas de carga de Azure](https://learn.microsoft.com/en-us/azure/load-testing/overview-what-is-azure-load-testing), lo que permite la creación, el aprovisionamiento y la ejecución manual y automatizada de experimentos de inyección de fallas.

– Una biblioteca en constante crecimiento de acciones y fallas comunes relacionadas con la interrupción de dependencias y la presión de recursos, que funcionan con los recursos de infraestructura como servicio (IaaS) y plataforma como servicio (PaaS) de Azure.

– Orquestación avanzada del flujo de trabajo de acciones de fallas paralelas y secuenciales que permite simular escenarios de interrupción del mundo real.

– Salvaguardias que reducen el impacto y permiten controlar quién realiza experimentos y en qué entornos se llevan a cabo.

Un **experimento de caos** es fundamental para poner a prueba la resiliencia de una aplicación. Algunos componentes clave de un experimento de caos son:

– Validación de su solicitud en un entorno de prueba que refleje idealmente su entorno de producción.

– Establecimiento de objetivos para los recursos de Azure que serán el objetivo de los errores.

– Implementación de acciones de falla coordinadas por Chaos Studio, que pueden ser desde simples fallas de presión de recursos hasta acciones más destructivas.

– Uso de tráfico que imita la carga de trabajo real para poner a prueba la aplicación.

– Supervisión del estado y comportamiento de la aplicación durante el experimento.

Los **escenarios del mundo real** pueden ser validados mediante la creación de experimentos que combinen múltiples fallas a la vez. Esto permite simular situaciones reales como interrupciones en zonas de disponibilidad o eventos de gran carga, para probar la resiliencia en situaciones extremas.

### Mejores prácticas y consejos de Chaos Studio

Chaos Studio brinda la oportunidad de monitorear y mejorar aplicaciones gracias a su integración con Azure Monitor y las canalizaciones de CI/CD. Asimismo, al introducir Chaos Studio en sus procesos de construcción e implementación, podrá validar continuamente la resiliencia de su sistema.

Algunas recomendaciones para comenzar con Chaos Studio incluyen:

– Iniciar con un piloto en un entorno de prueba antes de pasar a la producción.
– Formular hipótesis de resiliencia basadas en la arquitectura de su aplicación.
– Practicar simulacros de inyección de fallas y automatizar la validación de la resiliencia en su ciclo de vida de desarrollo de software.

Con Chaos Studio, podrá mejorar y preservar la resiliencia de sus aplicaciones, lo que le permitirá implementar con confianza en producción.

### Descubre los beneficios de Chaos Studio

Para comenzar con Chaos Studio y explorar sus beneficios, consulta la [documentación](https://docs.microsoft.com/en-us/azure/chaos-studio/) para obtener una descripción detallada de conceptos y guías prácticas. Integra Chaos Studio en tu canal de lanzamiento para validar la resistencia de tus aplicaciones de forma continua.

¿Nos apoyarás hoy?

Creemos que todos merecen entender el mundo en el que viven. Este conocimiento ayuda a crear mejores ciudadanos, vecinos, amigos y custodios de nuestro planeta. Producir periodismo explicativo y profundamente investigado requiere recursos. Puedes apoyar esta misión haciendo una donación económica a Gelipsis hoy. ¿Te sumarás a nosotros?

Suscríbete para recibir nuestro boletín:

Recent Articles

Related Stories

DEJA UN COMENTARIO

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí