Fault Injection Testing vous permet d'expérimenter l'injection de défaillances, une méthode qui consiste à introduire des défaillances dans un système pour tester sa résilience avant qu'elles ne provoquent une véritable défaillance inattendue qui affecte vos clients. Avec Fault Injection Testing, vous pouvez injecter des défaillances dans différents composants de votre environnement Google Cloud pour vous assurer que votre application les gère de manière prévisible.
Pour la version initiale de Fault Injection Testing, les pannes sont généralement équivalentes à une défaillance de la ressource cible. Ces échecs doivent déclencher la redirection du trafic de votre application vers des instances opérationnelles 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 défaillance pour vérifier qu'elle l'a gérée comme prévu.
Pourquoi utiliser Fault Injection Testing ?
Le Fault Injection Testing vous permet d'exécuter des tests sur la résilience de vos applications dans Google Cloud pour un large éventail de scénarios de défaillance. Une partie essentielle de ce spectre consiste à exécuter des tests pour simuler l'échec des zones et des régions, ce qui est difficile, voire impossible, à faire vous-même. Google Cloud De plus, les tests d'injection de pannes constituent un outil de développement et d'amélioration précieux. Ils vous permettent 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. Identifier les problèmes avant qu'ils ne surviennent en production permet d'améliorer plus rapidement les conceptions, d'éviter les temps d'arrêt coûteux et la perte de réputation, et d'améliorer votre expérience globale.
Sans produit d'injection de pannes natif à Google Cloud, vous devez effectuer vos propres tests. Il est problématique de réaliser vos propres expérimentations, carGoogle Cloud est un environnement partagé et, dans de nombreux cas, vous n'avez pas accès directement aux services et à l'infrastructure sous-jacents. Ce scénario peut entraîner une expérimentation inadéquate et laborieuse, qui peut finalement être inefficace pour atteindre son objectif d'expérimenter correctement la résilience de votre application. Fault Injection Testing vous aide à réduire l'effort nécessaire pour automatiser ces expériences, 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 d'expérimentation.
Pour les clients soumis à des réglementations, il est souvent nécessaire de réaliser des tests réguliers pour rester en conformité avec les organismes régissant le secteur. Dans ce cas, l'expérimentation prend souvent la forme de tests de reprise après sinistre, montrant que la défaillance d'une zone ou d'une région n'empêchera pas l'application de continuer à fonctionner efficacement.
Utiliser Fault Injection Testing
Avant d'utiliser Fault Injection Testing, assurez-vous de disposer des éléments suivants :
- Les environnements à tester comportent une certaine redondance. Lorsqu'une défaillance est injectée, l'application de cet environnement peut continuer à s'exécuter sur l'infrastructure redondante.
- Si vous êtes administrateur ou propriétaire de ressources Google Cloud , réfléchissez bien aux utilisateurs auxquels vous accordez l'autorisation de configurer et d'exécuter des expériences de Fault Injection Testing. Le fait de provoquer des défaillances sur les composants d'infrastructure en cours d'exécution dans votre environnement Google Cloud 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 qui savent comment tester la résilience de cette architecture de manière sécurisée, afin qu'ils puissent configurer des tests qui ne provoquent pas d'interruptions involontaires.
Pour utiliser Fault Injection Testing, vous devez configurer un test. Pour configurer un test, vous devez d'abord créer un modèle de test qui définit la défaillance à injecter et les ressources cibles. Vous allez ensuite exécuter le test à partir du modèle. Une expérience est l'ensemble des actions définies dans le modèle qui seront exécutées sur les ressources que vous avez sélectionnées dans le modèle.