Outils & qualité · 4 mondes · 12 étapes

Tests & déploiement

Des tests qui attrapent les bugs, une chaîne qui vérifie tout, une mise en production sans frayeur.

Progression

0 %

0/12 étapes terminées

Avancé · 12 min de lecture

La fiabilité en production

Observer, alerter, réparer vite

1Définition

Une fois en ligne, une application se surveille : journaux structurés, métriques (taux d'erreurs, temps de réponse), alertes sur des seuils, et un tableau de bord partagé. L'objectif n'est pas zéro panne, mais une panne détectée vite et réparée vite.

2Principes fondamentaux

01

Des journaux structurés

Du JSON avec un niveau, un message et un contexte, plutôt que des phrases libres.

02

Des métriques utiles

Taux d'erreurs, latence, saturation : ce qui dit si les joueurs souffrent.

03

Des alertes actionnables

Chaque alerte correspond à une action ; une alerte ignorée est une alerte à supprimer.

04

Apprendre des pannes

Un compte rendu sans reproche après chaque incident : ce qui s'est passé, ce qu'on change.

3Exemples pratiques

Un journal structuré

Exemple
1console.log(JSON.stringify({2  niveau: "erreur",3  message: "Échec de l'enregistrement de la partie",4  joueur: "awa",5  duree_ms: 1840,6}));

Un outil de journaux peut ensuite filtrer, compter et alerter sur n'importe quel champ.

Un point de santé

Exemple
1export async function GET() {2  const baseOk = await base.ping().then(() => true, () => false);3  return Response.json({ ok: baseOk, version: process.env.VERSION }, { status: baseOk ? 200 : 503 });4}

La plateforme et les outils de surveillance l'interrogent en continu ; c'est aussi la mesure d'un déploiement canari.

4Erreurs courantes

Des alertes partout

À éviter

// 200 alertes par jour, toutes ignorées

À faire

Quelques alertes, chacune actionnable

Pourquoi : La vraie alerte se perd dans le bruit.

Des données personnelles dans les journaux

À éviter

log({ motDePasse, email })

À faire

log({ joueur: id })

Pourquoi : Les journaux sont copiés, conservés et lus par beaucoup de monde.

5Subtilités à connaître

  • ◆Un objectif de fiabilité (99,9 % par exemple) laisse un « budget d'erreurs » : tant qu'il reste du budget, on peut livrer vite.
  • ◆Les traces distribuées suivent une requête à travers plusieurs services, et montrent où le temps est perdu.
  • ◆Le meilleur retour arrière est celui qu'on a déjà répété un jour calme.

6Techniques d'expert

Des tests de bout en bout

Playwright pilote un vrai navigateur sur l'application déployée en préproduction : l'inscription, une leçon, un achat en boutique.

Les déploiements de prévisualisation

Vercel crée une adresse par demande de fusion : on relit la fonctionnalité en vrai avant de fusionner.

Les drapeaux de fonctionnalités

Livrer le code désactivé, l'activer pour l'équipe, puis pour 10 % des joueurs, sans redéployer.

if (drapeaux.estActif("duels-a-trois", joueur)) afficherDuelsATrois();

7Sur le terrain

  • Sys-Code se déploie aujourd'hui sur Vercel, où chaque déploiement est figé et la production pointe vers l'un d'eux ; demain sur son propre serveur, où Coolify reconstruit l'appli à chaque push sur main.
  • La page /dev/verif de Sys-Code est un test de contenu : chaque solution doit passer, chaque code de départ doit échouer.
  • Les grandes plateformes déploient des centaines de fois par jour, justement parce que chaque déploiement est petit, testé et réversible.

8Vérifie ta compréhension

Question 1/3

Score 0

Un bon journal est…

Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.