Présentation de Fault Injection Testing

Fault Injection Testing vous permet d'effectuer des tests d'injection de pannes, une méthode qui consiste à introduire des pannes dans un système pour tester sa résilience avant qu'elles ne provoquent une défaillance réelle et inattendue qui affecte vos clients. Avec Fault Injection Testing, vous pouvez injecter des pannes dans différents composants de votre Google Cloud environnement pour vous assurer que votre application les gère de manière prévisible.

Dans la version initiale de Fault Injection Testing, les pannes sont généralement équivalentes à une défaillance de la ressource cible. Ces défaillances doivent déclencher la redirection du trafic de votre application vers des instances saines si vous avez conçu la tolérance aux pannes dans votre application.

Vous devez observer votre application avant, pendant et après l'injection de la panne pour vérifier qu'elle a géré la panne comme prévu.

Pourquoi utiliser Fault Injection Testing ?

Fault Injection Testing vous permet d'exécuter des tests sur la résilience de vos applications dans Google Cloud un large éventail de scénarios de défaillance. Une partie importante de cet éventail consiste à exécuter des tests pour simuler des défaillances de Google Cloud zones et de régions, ce qui est difficile, voire impossible, à faire vous-même. De plus, Fault Injection Testing est un outil de développement et d'amélioration précieux, car il vous permet d'exécuter des tests sur les mécanismes de résilience que vous avez conçus avant de les introduire dans un environnement de production. En détectant les problèmes avant qu'ils ne surviennent en production, vous pouvez améliorer plus rapidement les conceptions, éviter les temps d'arrêt coûteux et les pertes de réputation, et améliorer votre expérience globale.

Sans produit d'injection de pannes Google Cloudnatif, vous devez effectuer vos propres tests. Cette approche est problématique, car il s'agit d'un environnement partagé et, dans de nombreux cas, vous n'avez peut-être pas d'accès direct aux services et à l'infrastructure sous-jacents.Google Cloud Ce scénario peut entraîner des tests inadéquats et laborieux qui peuvent s'avérer inefficaces pour tester correctement la résilience de votre application. Fault Injection Testing vous aide à réduire l'effort nécessaire pour automatiser ces tests, vous donne accès à des modes de défaillance auxquels vous n'avez pas accès autrement et améliore la fidélité de vos efforts de test.

Pour les clients réglementés, effectuer des tests réguliers est souvent une exigence pour rester en conformité avec les organismes de réglementation du secteur. Dans ce cas, les tests prennent souvent la forme de tests de reprise après sinistre, qui montrent que la défaillance d'une zone ou d'une région n'empêchera pas l'application de continuer à fonctionner efficacement.

Pannes disponibles pour les tests

Les pannes suivantes sont disponibles :

  • Basculement Cloud SQL : basculement d'une base de données de l'état principal à l'état de secours.
  • Dégradation du trafic de l'application : simulation de la dégradation du trafic via un équilibreur de charge de couche 7.

Ces pannes sont conçues pour limiter la portée du test aux ressources d'un seul projet dans une seule région ou une zone plus restreinte. Le test n'affectera pas une portée plus large que prévu. Toutefois, ces pannes entraînent de réelles défaillances des ressources cibles dans leur environnement.

En ciblant des composants d'infrastructure tels qu'une base de données Cloud SQL ou un équilibreur de charge d'application, ainsi que d'autres composants qui seront pris en charge à l'avenir, vous pouvez raisonnablement simuler une défaillance de zone ou de région dans le contexte de votre propre application.

Comment utiliser Fault Injection Testing

Avant d'utiliser Fault Injection Testing, assurez-vous des points suivants :

  • Les environnements à tester disposent d'une certaine redondance. Lorsqu'une panne est injectée, l'application de cet environnement peut continuer à s'exécuter sur l'infrastructure redondante.
  • Pour les administrateurs ou les propriétaires de Google Cloud ressources : réfléchissez bien à qui vous accordez l' autorisation de configurer et d'exécuter des tests Fault Injection Testing. Le fait de provoquer des pannes sur des composants d'infrastructure en cours d'exécution dans votre Google Cloud environnement entraînera des perturbations. Par conséquent, vous devez n'accorder l'autorisation qu'aux opérateurs qui comprennent l'architecture de leur environnement cloud et comment tester en toute sécurité la résilience de cette architecture, afin qu'ils puissent configurer des tests d'une manière qui n'entraîne pas de perturbations involontaires.

L'utilisation de Fault Injection Testing implique la configuration d'un test. Pour configurer un test, vous devez d'abord créer un modèle de test qui définit la panne à injecter et les ressources cibles. Ensuite, vous exécuterez le test à partir du modèle. Un test est l'ensemble des actions définies dans le modèle qui s'exécuteront sur les ressources que vous avez sélectionnées dans le modèle.