Tester la charge d’une appli indépendante : DDoS, accès simultanés, reprise et coût du code avec l’IA

Une IA peut transformer une idée en appli multijoueur fonctionnelle à une vitesse assez ridicule. La salle se crée, les gens entrent, publient et votent.

Utiliser les outils de lecture

Écouter lit l’article à voix haute. La lecture rapide affiche les groupes de mots au rythme choisi. La pratique des langues compare les traductions disponibles. Enregistrer ajoute un favori dans ce navigateur, accessible dans la liste du lecteur.

Partager cet article

Partager cet article

Publicité
Publicité

Avec l’IA, le vrai danger est parfois de croire trop tôt que « c’est fini »

Une IA peut transformer une idée en appli multijoueur fonctionnelle à une vitesse assez ridicule. La salle se crée, les gens entrent, publient et votent. Le cerveau annonce :

Terminé.

Le serveur répond :

Tu as testé avec une seule personne.

Les vraies questions arrivent ensuite. Que se passe-t-il si 100 personnes agissent en même temps ? Si l’écriture en base réussit mais que la réponse de succès disparaît ? Si le dernier vote arrive exactement à l’échéance ? Si une notification de paiement arrive deux fois ? Si tout le monde se reconnecte au même instant après une panne ?

La revue de code d’une petite application multijoueur a fini par produire 324 cas de test. Cela ne veut pas dire 324 bugs trouvés. Les 324 tests étaient encore à exécuter. C’était un plan, pas un certificat.

1. Le DDoS n’est pas le seul moyen de saturer une appli

Cloudflare fournit une mitigation DDoS automatique sur tous les forfaits, mais recommande aussi des protections applicatives comme le rate limiting, car une grosse attaque peut toujours affecter l’application.[1]

Pour un petit projet, le trafic légitime peut suffire à créer le premier problème.

Avec un polling toutes les trois secondes :

Clients simultanés Vérifications par heure
10 12 000
30 36 000
100 120 000
1 000 1 200 000

Ce n’est pas une prévision de capacité réelle. Le backoff et le cache peuvent réduire ces chiffres ; les publications, images, boîtes de réception, onglets multiples et tâches planifiées peuvent les augmenter.

Au 5 octobre 2026, Workers Free indique 100 000 requêtes par jour. D1 Free indique 5 millions de lignes lues par jour, 100 000 lignes écrites, 500 Mo par base et 50 requêtes SQL par invocation Worker.[2][3] Une base D1 traite les requêtes une par une ; trop de concurrence crée une file et peut finir par une erreur de surcharge.[3]

Le scénario inquiétant n’est donc pas forcément « un million d’attaquants ».

Cent vrais utilisateurs qui s’amusent en même temps peuvent déjà constituer un test de charge.

2. Pourquoi la liste est montée à 324 tests

Les 16 domaines couverts étaient : entrées et abus, capacité, concurrence et reprise, tâches planifiées, salles et droits, images, texte, vote, échéances, résultats, salles publiques, connexions persistantes, appareils et reconnexion, intégrations, paiement, déploiement et monitoring.

Tout ne se traite pas avec la même priorité.

3. Les 23 points à attaquer en premier

  1. Une requête rejetée déclenche-t-elle quand même un travail DB coûteux ?
  2. Le compteur interne mesure-t-il vraiment toutes les routes coûteuses ?
  3. La limitation survit-elle aux redémarrages et à plusieurs instances ?
  4. Un polling « aucun changement » lit-il quand même beaucoup de données ?
  5. Une seule place peut-elle ouvrir des connexions persistantes illimitées ?
  6. HTTP et connexion persistante appliquent-ils les mêmes limites ?
  7. Un arrêt d’urgence coupe-t-il aussi les clients déjà connectés ?
  8. Un retard du planificateur laisse-t-il passer une action après l’échéance ?
  9. Un effet peut-il échouer pendant que la salle continue d’avancer ?
  10. Une réparation relancée peut-elle compter deux fois des statistiques ?
  11. Une réservation de départ peut-elle être consommée avant la création réelle de la partie ?
  12. Un retry peut-il transformer une réponse en deux ?
  13. Des variantes visuelles d’un pseudo contournent-elles l’unicité ?
  14. Deux personnes peuvent-elles prendre la dernière place ?
  15. Les tâches planifiées peuvent-elles accumuler plus de travail qu’elles n’en traitent ?
  16. Mesure-t-on toute la base et les index, pas seulement les images ?
  17. Quelqu’un peut-il reprendre l’identité d’un appareil perdu ?
  18. Format, dimensions, métadonnées et géolocalisation des images sont-ils contrôlés ?
  19. Un long historique rend-il chaque affichage de plus en plus cher ?
  20. Les reconnexions synchronisées peuvent-elles créer une deuxième panne ?
  21. Paiements dupliqués, retardés, échoués, annulés et restaurés ont-ils été testés ?
  22. Confond-on réussite locale et garantie en production ?
  23. Si la base tombe, le système de surveillance tombe-t-il avec elle ?

4. Les bugs aiment les combinaisons

Scénario utile :

100 personnes votent → 20 actualisent → 10 perdent la connexion → certaines écritures réussissent mais la réponse disparaît → retry.

On vérifie ensuite les doubles votes, votes tardifs, retours vers un ancien état et opérations exécutées deux fois.

OWASP traite d’ailleurs les sessions concurrentes, les entrées anormales et la gestion des erreurs comme des sujets de test distincts.[4]

5. « Enregistré » et « l’utilisateur a reçu OK » sont deux événements

Le serveur peut enregistrer correctement alors que la réponse réseau disparaît.

L’utilisateur voit un échec et recommence.

Sans identifiant d’opération ou déduplication, on peut obtenir deux réponses, deux salles, deux votes, deux notifications ou deux paiements.

Le retry doit être conçu.

6. Le test de charge se fait par paliers

Dans un environnement contrôlé : 10 → 30 → 100 clients.

Puis on change la forme : une salle très chargée, beaucoup de salles, arrivées simultanées, dernier vote simultané, reconnexion massive, tâches planifiées et panne de stockage simulée.

On n’envoie pas volontairement de trafic massif vers un système tiers ou non autorisé. Budget et conditions d’arrêt sont définis avant le test.

7. « Ça n’a pas planté » n’est pas un critère suffisant

On peut viser 95 % des requêtes ordinaires sous une seconde, 99 % sous trois secondes et moins de 0,1 % de 5xx inattendus.

Mais certaines choses doivent rester à zéro :

  • fuite de données d’un autre utilisateur ;
  • action sans autorisation ;
  • score doublé ;
  • donnée confirmée perdue ;
  • double facturation.

8. Plan de test 9/10, preuve exécutée 0/10

Une liste de 324 cas avec 23 risques prioritaires peut être excellente.

Avant exécution, la preuve reste pourtant à zéro.

Ce n’est pas un échec : le projet est passé de « je ne sais pas quoi tester » à « je sais précisément où essayer de le casser ».

9. Puis une autre limite peut casser : le quota hebdomadaire de l’IA

Une journée entière à faire lire un gros dépôt à une IA, implémenter, corriger, relire puis recommencer peut épuiser le quota IA avant le serveur.

Au 5 octobre 2026, Claude Max 20x coûte 200 $ par mois sur le web. Le « 20x » correspond à la capacité par session par rapport à Pro. La limite de session se réinitialise toutes les cinq heures, mais Max possède aussi une limite hebdomadaire partagée entre les modèles.[5]

20x ne veut donc pas dire illimité.

La consommation dépend du modèle, du contexte et de la tâche ; Settings > Usage reste la référence.

10. « Fable est cher » tient aussi face aux chiffres

Sur Max, Fable 5 et 5.1 sont disponibles, mais Fable peut consommer jusqu’à 50 % de la limite hebdomadaire et Anthropic précise qu’il épuise cette capacité plus vite que les autres modèles Claude.[6]

Modèle Entrée / 1M tokens Sortie / 1M tokens
Sonnet 5.5 2 $ 10 $
Opus 5.5 4 $ 20 $
Fable 5.1 10 $ 50 $

Fable 5.1 coûte 2,5 fois le prix d’Opus 5.5 en entrée comme en sortie. Les lectures de cache moins chères réduisent le coût par rapport à Fable 5, mais le prix absolu reste élevé.[6][7][8]

Le tarif API ne se convertit pas directement en minutes de quota Max, mais la logique reste la même : faire tourner longtemps le modèle le plus lourd coûte cher.

11. Pas besoin d’une grue pour chaque vis

Sonnet 5.5 : corrections courantes, bugs compris, modifications répétitives, tâches bien cadrées.

Opus 5.5 : cause inconnue, architecture, revue multi-fichiers, décision importante avant mise en ligne.

Fable 5.1 : tâches les plus difficiles lorsque le gain de capacité justifie le coût ou la consommation de quota.

Ce n’est pas un classement. C’est de l’ingénierie du coût par tâche.

12. L’IA ne supprime pas le goulot d’étranglement, elle le déplace

Avant : idée → plusieurs semaines de développement → tests.

Maintenant : idée → implémentation rapide → tests, exploitation, quotas serveur et quotas IA arrivent ensemble.

« J’ai fait l’appli en une journée » peut être vrai.

Formulation plus précise :

« En une journée, je suis arrivé au stade où je peux enfin essayer de la casser sérieusement. »

C’est là que la préparation à la production commence.

Références (8)

  1. Cloudflare DDoS developers.cloudflare.com
  2. Cloudflare Workers developers.cloudflare.com
  3. Cloudflare D1 developers.cloudflare.com
  4. OWASP WSTG wstg.owasp.org
  5. Anthropic Max support.claude.com
  6. Anthropic Fable support.claude.com
  7. Opus 5.5 anthropic.com
  8. Sonnet 5.5 anthropic.com

PublicitéLivres sur ce sujet

  • Co-Intelligence (édition anglaise)

    Ethan Mollick / Penguin Publishing Group / 2024

    Un livre sur IA, le sujet de cet article.

  • The Coming Wave (édition anglaise)

    Mustafa Suleyman / Penguin Random House / 2023

    Un livre sur IA, le sujet de cet article.

Cet article contient des liens affiliés (publicité). À propos de la publicité En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises. As an Amazon Associate I earn from qualifying purchases.

À lire aujourd’hui

Chacun répond à une question que se posent souvent les lecteurs de cet article.

Voir tous les articlesPlus sur AI

Partager cet article

Publicité

Encore un ? Un truc sympa ?

Puisque vous avez fini : quelques histoires proches et d'autres complètement différentes, mais amusantes.

  1. Sujet prochePourquoi les pouvoirs trop puissants détruisent l'histoiredu soin programmé à l'agonie automatique
  2. Rien à voir, mais amusantPourquoi tout est-il permis dans « Harem King's Isekai Press Tour » ?
  3. De quoi dépend la compatibilité dans le contact physique?Pourquoi certains câlins semblent si naturels
  4. Monsieur jugement, vous êtes là !?Le sens de la décision par « largeur × force » et « axe de soi × axe d’autrui »
  5. La climatisation affichait 21 °C et pourtant il faisait chaud : 40 minutes d’attente pour un tofu dengaku chez Kikuso, restaurant de Toyohashi vieux d’environ 200 ans où cohabitent Edo, Showa et Reiwa

Trouver d’autres articles

Tous les articles

Mendoi-chan

Qui tient ce site

Mendoi-chan

Elle transforme les frictions du travail et du quotidien en structures claires et en prochaines étapes concrètes.