Module 5 — Diagnostic Mémoire et CPU
Optimisez la stabilité et la rapidité de vos systèmes logiciels : détectez et éliminez les fuites de mémoire (Memory Leaks) grâce aux snapshots de tas (Heap Profiling). Identifiez les goulots d'étranglement CPU, auditez les requêtes de base de données lentes avec EXPLAIN et renforcez la résilience globale de vos applications.
1 Comprendre les performances d'une application
Facteurs de ralentissement, distinction Frontend vs Backend vs Base de données, métriques clés (TTFB, Throughput, P50/P95/P99) et Chrome DevTools.
2 Détecter les fuites mémoire (Memory Leaks)
Fonctionnement du Heap V8 et du Garbage Collector, détection des variables globales, timers non nettoyés, Heap Snapshots et process.memoryUsage().
3 Analyser la consommation CPU et mémoire
Diagnostic des surcharges CPU, blocage de l'Event Loop avec monitorEventLoopDelay, CPU profiling (.cpuprofile) et déport vers Worker Threads.
4 Identifier les requêtes lentes
Décomposition du temps HTTP (TTFB), middleware de mesure Express, requêtes SQL lentes, analyse EXPLAIN et Slow Query Log MySQL.
5 Détecter les problèmes de concurrence
Race conditions sur stocks et soldes, deadlocks de transactions, UPDATE atomique conditionnel, SELECT FOR UPDATE et verrouillage optimiste.
6 Comprendre les problèmes de charge et de saturation serveur
Limites de capacité serveur, saturation CPU/RAM/connexions, tests de charge avec Autocannon, Load Balancing, Scaling et files de messages BullMQ.
7 Déboguer les problèmes de connexion à la base de données
Résolution des erreurs ECONNREFUSED, ER_ACCESS_DENIED, ETIMEDOUT, gestion du pool de connexions mysql2, détection de fuites de connexions et health checks.
8 Identifier les vulnérabilités liées aux erreurs de programmation
Référentiel OWASP Top 10, failles IDOR/BOLA, validation stricte avec Zod, sécurité des sessions JWT, prévention XSS, CSRF et SSRF.
9 Détecter les problèmes d'injection SQL
Mécanisme des injections SQL par concaténation, sécurisation systématique via requêtes préparées (Prepared Statements) et listes blanches pour tris dynamiques.
10 Diagnostiquer les problèmes de permissions et d'accès aux fichiers
Permissions Windows (ACL) et Linux (chmod/chown), codes d'erreur EACCES/ENOENT/EPERM, prévention du Path Traversal et streaming de fichiers.
11 Analyser les logs de sécurité
Journalisation structurée JSON avec Winston, détection des attaques par force brute, corrélation d'événements, rotation des logs et masquage des secrets.
12 Mettre en place une stratégie de surveillance et de prévention
Trois piliers de l'observabilité (Metrics, Logs, Traces), Prometheus prom-client, Grafana, endpoints Liveness/Readiness, Rate Limiting et Helmet.
13 TP Final — Audit et diagnostic d'une application e-commerce (ShopDebug)
Projet d'audit complet : investigation de fuite mémoire, déblocage Event Loop, optimisation SQL, correction de race condition, IDOR, injection SQL et monitoring.