Aller au contenu

PerfShop — Plateforme de Chaos Engineering Pédagogique

  • Architecture


    Stack technique, Docker Compose, réseau et domaines

    Architecture

  • Développement


    Backend Spring Boot, Frontend React, Monitoring Node.js

    Développement

  • Chaos Engineering


    Anomalies backend, frontend, scripting, métier et sécurité

    Chaos

  • Monitoring


    Dashboard HTML, Grafana, Prometheus

    Monitoring

  • Licence


    Plans, activation, révocation, fonctionnement offline-first

    Système de licence

Qu'est-ce que PerfShop ?

PerfShop est une application e-commerce volontairement dégradable conçue pour les formations, hackathons et démos autour des tests de performance et du chaos engineering.

Elle permet d'injecter des anomalies en temps réel et d'observer leur impact sur les métriques système et applicatives via un monitoring dédié et des dashboards Grafana.

🌐 Services disponibles

Stack principale

Service Local Production
🛒 Application localhost:9091 perfshop.perfshop.io
📊 Monitoring localhost:3001 perfshop-monitoring.perfshop.io
📈 Grafana localhost:3002 perfshop-grafana.perfshop.io
💥 Chaos Admin localhost:3003 perfshop-chaos.perfshop.io
🔧 Admin localhost:3004 perfshop-admin.perfshop.io
📚 Documentation localhost:9087 perfshop-docs.perfshop.io
🔌 API Backend localhost:9080 perfshop-api.perfshop.io

Stack JMeter

Service Local Production
⚡ JMeter UI localhost:3005 perfshop-jmeter.perfshop.io

Stack QA pédagogique (Phase 9 & 10)

Service Local Production Login
🧪 Squash TM localhost:9086/squash perfshop-squash.perfshop.io/squash admin / perfshop
🔬 Selenium VNC localhost:7900 perfshop-selenium.perfshop.io
🦊 Forgejo Git localhost:3009 perfshop-git.perfshop.io forgejo-admin / PerfShop2026!
📝 Scripts UI localhost:3008 perfshop-scripts.perfshop.io admin@perfshop.fr / perfshop

Anomalies disponibles

🔧 Chaos Backend (sliders 0–100%)

Anomalie Impact observable
CPU Burn CPU container monte, temps de réponse augmente
Memory Leak Heap JVM monte continûment, GC s'emballe
Thread Pool Threads Tomcat saturés, requêtes en attente
DB Pool Connexions HikariCP épuisées, timeouts BDD
Slow Query Latence p99 explose sur /api/products
Deadlock Erreurs 503, threads bloqués indéfiniment
Network Delay Temps de réponse HTTP augmente uniformément

🖥️ Chaos Frontend (sliders 0–100%)

Anomalie Impact observable
CPU Burn FPS chute, Long Tasks/s monte, navigateur freeze
Memory Leak Heap JS monte continûment (plafond 1.2 Go)
DOM Flood Noeuds DOM oscillent, reflows synchrones
Fetch Flood Jusqu'à 200 req/s, réseau OUT container monte

🔐 Chaos Scripting (niveaux 0–4)

Niveau Nom Difficulté
0 Désactivé
1 Junior X-Session-Token + X-Request-ID
2 Confirmé + X-Action-Token (expire 30s)
3 Expert + HMAC-SHA256 rotatif, séquence step1→4
4 Maestro Clé HMAC dérivée du sessionToken

💼 Chaos Métier (niveaux 0–3)

Niveau Nom Anomalies actives
0 Désactivé 0
1 Junior 3 (A1 TVA, A2 Arrondi, A3 Stock)
2 Confirmé 7 (+ A4 Email, A5 Double commande, A6 Promo, A7 Délai)
3 Expert 11 (+ A8 Race condition, A9 Injection logs, A10 Historique, A11 Token logout)

🔒 Chaos Sécurité (niveaux 0–4)

Niveau Nom Failles actives
0 Désactivé 0
1 Junior 3 (S1 SQL Injection, S2 IDOR, S3 Hash exposé)
2 Confirmé 6 (+ S4 XSS stocké, S5 Prix falsifié, S6 Timing Attack)
3 Expert 9 (+ S7 Token HMAC faible, S8 Path Traversal, S9 Mass Assignment)
4 Master 12 (+ S10 Stats portail sans auth, S11 SQLi portail, S12 Privesc IDOR)

Règle d'or

Avec les bonnes données de test, une commande doit toujours pouvoir aboutir, quel que soit le niveau de chaos actif. Les anomalies sont pédagogiques — elles ne bloquent pas le parcours.