Descripción general de Fault Injection Testing

Fault Injection Testing te permite experimentar con la inyección de errores, un método para introducir errores en un sistema y probar su resiliencia antes de que causen una falla real e inesperada que afecte a tus clientes. Con Fault Injection Testing, puedes inyectar fallas en varios componentes de tu entorno de Google Cloud para asegurarte de que tu aplicación las controle de manera predecible.

En la versión inicial de Fault Injection Testing, las fallas suelen ser equivalentes a una falla del recurso objetivo. Estas fallas deberían activar tu aplicación para que redireccione el tráfico a instancias en buen estado si diseñaste la tolerancia a fallas en tu aplicación.

Se espera que observes tu aplicación antes, durante y después de inyectar la falla para verificar que la aplicación la haya controlado según lo previsto.

¿Por qué usar Fault Injection Testing?

Fault Injection Testing te permite ejecutar experimentos sobre la resiliencia de tus aplicaciones en Google Cloud en un espectro completo de situaciones de falla. Una parte fundamental de este espectro es ejecutar experimentos para aproximar las zonas y regiones con fallas, que son difíciles o imposibles de ejecutar por completo por tu cuenta. Google Cloud Además, Fault Injection Testing es una herramienta valiosa de desarrollo y mejora, ya que te permite ejecutar experimentos en los mecanismos de resiliencia diseñados antes de introducirlos en un entorno de producción. Detectar los problemas antes de que surjan en la producción permite mejorar los diseños con mayor rapidez, evitar costosos tiempos de inactividad y pérdidas de reputación, y mejorar tu experiencia general.

Sin un producto de inyección de fallas nativo de Google Cloud, debes realizar tus propios experimentos. Realizar tus propios experimentos es problemático, ya queGoogle Cloud es un entorno compartido y, en muchos casos, es posible que no tengas acceso directo a los servicios y la infraestructura subyacentes. Esta situación puede generar una experimentación inadecuada y laboriosa que, en última instancia, puede ser ineficaz para lograr el objetivo de experimentar correctamente con la resiliencia de tu aplicación. Fault Injection Testing te ayuda a reducir el esfuerzo necesario para automatizar estos experimentos, te brinda acceso a modos de falla que de otro modo no tendrías y mejora la fidelidad de tus esfuerzos de experimentación.

En el caso de los clientes regulados, realizar experimentos con regularidad suele ser un requisito para seguir cumpliendo con los organismos que rigen la industria. En estos casos, el experimento suele tomar la forma de una prueba de recuperación ante desastres, que demuestra que la falla de una zona o región no impedirá que la aplicación siga funcionando de manera eficaz.

Fallas disponibles para experimentos

Están disponibles las siguientes fallas:

  • Conmutación por error de Cloud SQL: Falla una base de datos de principal a en espera.
  • Degrada el tráfico de la aplicación: Simula la degradación del tráfico a través de un balanceador de cargas de capa 7

Estas fallas están diseñadas para restringir el alcance del experimento a los recursos de un solo proyecto en una sola región o en un área más pequeña. El experimento no afectará un alcance más amplio de lo previsto. Sin embargo, estos errores provocan fallas reales en los recursos objetivo de su entorno.

Si segmentas los componentes de infraestructura, como una base de datos de Cloud SQL o un balanceador de cargas de aplicaciones, así como otros componentes que se admitirán en el futuro, puedes aproximar de manera razonable una falla de zona o región en el contexto de tu propia aplicación.

Cómo usar Fault Injection Testing

Antes de usar Fault Injection Testing, asegúrate de lo siguiente:

  • Los entornos en los que se realizarán los experimentos tienen cierta redundancia. Cuando se inserta una falla, la aplicación de este entorno puede seguir ejecutándose en la infraestructura redundante.
  • Para los administradores o propietarios de recursos de Google Cloud : Ten en cuenta quién obtiene permisos para configurar y ejecutar experimentos de Fault Injection Testing. Causar fallas en los componentes de infraestructura en ejecución en tu entorno de Google Cloud provocará interrupciones. Por lo tanto, debes otorgar permiso solo a los operadores que comprendan cómo se diseñó su entorno de nube y cómo experimentar de forma segura con la capacidad de recuperación de esa arquitectura, de modo que puedan configurar experimentos de una manera que no cause interrupciones no deseadas.

Para usar Fault Injection Testing, debes configurar un experimento. Para configurar un experimento nuevo, primero crearás una plantilla de experimento, que define la falla que se insertará y los recursos de destino. A continuación, ejecutarás el experimento desde la plantilla. Un experimento es el conjunto de acciones definidas en la plantilla que se ejecutarán en los recursos que seleccionaste en la plantilla.