« Ça marche sur ma machine. » Mais votre script bash fonctionne-t-il lorsque l'API tiers prend 15 secondes pour répondre?Votre service de back-end gère-t-il gracieusement une montée soudaine d'erreurs 503 d'un fournisseur de paiement? Écrire un serveur de simulation complet juste pour tester une logique de retrait simple dans un script est souvent overkill. Dans ce tutoriel, je vais vous montrer un moyen plus rapide: . Chaos Engineering directly in the terminal Nous utiliserons et un proxy Chaos basé sur le cloud pour injecter des défaillances dans des requêtes réseau réelles sans changer une seule ligne de code de votre application. curl Le problème : Localhost est trop parfait Lors du développement local, la latence du réseau est proche de zéro. Les API fonctionnent (200 OK) ou ne le font pas (Connexion refusée). Le serveur est occupé. 5 % des demandes sont en baisse. Vous avez atteint la limite de taux. High Latency Intermittent Failures Throttling Simuler cela dans un terminal implique généralement complexe des règles ou des outils locaux tels que (Contrôle de la circulation) Il existe un moyen plus simple. iptables tc La solution : Cloud Chaos Proxy Au lieu de configurer votre système d’exploitation, nous routerons des demandes spécifiques via un proxy qui «brise» le trafic selon les règles que nous définissons. Je vais utiliser chaos-proxy.debuggo.app pour cela, mais le concept s'applique à tout proxy programmable. Guide de vidéos (1:27) Voici le flux de travail de 90 secondes : https://www.youtube.com/watch?v=x_S-guPwPEk&embedable=true Step-by-Step Tutorial 1 Définir l’échec Tout d'abord, nous devons dire au proxy ce qu'il faut casser. Cible : httpbin.org (ou votre domaine API) Retard : 7 secondes (délai de simulation) Taux d’échec : 1 (100% des demandes échouent) Code d'erreur : 503 Service indisponible. Confiez le certificat (la configuration « une fois ») Puisque nous interceptons le trafic HTTPS, nous devons faire confiance au certificat CA du proxy. Télécharger le à partir du dashboard. mitmproxy-ca-cert.pem Ajoutez-le à Keychain Access -> Système et définissez « Toujours faire confiance ». MacOS: Copier à /usr/local/share/ca-certificates/ et mettre à jour. Linux: 3 - Le commandement magique Maintenant, nous utilisons Avec le Le drapeau proxy. curl -x curl -v -x http://user:pass@chaos-proxy.debuggo.app:13979 https://httpbin.org/get Comprendre le résultat Lorsque vous exécutez cette commande plusieurs fois : Scénario A (Le Chaos): Vous remarquerez que le terminal « suspend » pendant 7 secondes (notre retard). < HTTP/1.1 500 Internal Server Error < content-length: 56 < content-type: text/plain ... Debuggo Chaos Injection: 500 Error L'autre 50% du temps, la demande passe au serveur réel : Scenario B (Success) < HTTP/1.1 200 OK ... { "args": {}, "headers": { ... } } Real World Use Cases Tester les pipelines CI: Vérifiez que vos scripts de déploiement ne s'effondrent pas si une dépendance est lente. Cron Jobs: Assurez-vous que vos retours de synchronisation de données nocturnes soient correctement effectués en cas d'échec. Vérification rapide de la santé : Avant de pousser le code, vérifiez comment le client API traite une erreur 503. Conclusion Vous n'avez pas besoin d'une infrastructure lourde pour tester la résilience du réseau. Une configuration simple de proxy vous permet d'injecter du chaos dans n'importe quel client HTTP, que ce soit , à , ou vos scripts Python/Node.js. curl wget Happy Breaking! 🔨