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é · 10 min de lecture

Mettre en production

Configurer, versionner, déployer prudemment

1Définition

Un même code tourne partout ; ce qui change vit dans les variables d'environnement, validées au démarrage. Chaque version porte un numéro sémantique (majeure, mineure, correctif) et se déploie par paliers — le déploiement canari — avec un retour arrière automatique si les mesures se dégradent.

2Principes fondamentaux

01

La configuration hors du code

Adresses et secrets dans l'environnement, jamais dans le dépôt.

02

Échouer au démarrage

Une configuration incomplète empêche le démarrage, avec la liste de tout ce qui manque.

03

Des numéros qui ont un sens

Correctif, mineure, majeure : chaque numéro promet un niveau de compatibilité.

04

Des paliers et une mesure

10 %, 50 %, 100 %, et un retour automatique au-delà du seuil.

3Exemples pratiques

Valider la configuration avec zod

Exemple
1import { z } from "zod";2 3const Config = z.object({4  DATABASE_URL: z.string().url(),5  JETON_SECRET: z.string().min(32),6  PORT: z.coerce.number().int().default(3000),7});8export const config = Config.parse(process.env);   // lève une erreur détaillée

La même idée que lireConfig, avec des règles plus riches et un message qui liste tous les problèmes.

Revenir en arrière sur Vercel

Exemple
1vercel rollback            # revient au déploiement de production précédent2vercel promote <url>       # promeut un déploiement existant en production

Chaque déploiement est un artefact figé : revenir en arrière ne reconstruit rien, cela change seulement la version servie.

4Erreurs courantes

Un secret dans le code

À éviter

const secret = "s3cr3t";

À faire

const secret = process.env.JETON_SECRET;

Pourquoi : L'historique Git le garde pour toujours.

Comparer des versions comme du texte

À éviter

"1.10.0" > "1.9.3"   // false

À faire

comparer("1.10.0", "1.9.3")   // 1

Pourquoi : L'ordre alphabétique n'est pas l'ordre des versions.

Tout déployer d'un coup

À éviter

// 100 % des joueurs dès la mise en ligne

À faire

10 %, puis 50 %, puis 100 %

Pourquoi : Un bug touche alors tout le monde avant d'être détecté.

5Subtilités à connaître

  • ◆Un retour arrière suppose que la base reste compatible : on ajoute une colonne avant de s'en servir, et on attend la version suivante pour supprimer l'ancienne.
  • ◆Les drapeaux de fonctionnalités séparent le déploiement du code de l'activation de la fonctionnalité.
  • ◆Les versions 0.x ne promettent rien : toute mineure peut casser la compatibilité.

6Vérifie ta compréhension

Question 1/3

Score 0

Une correction de bug fait passer 2.3.1 à…

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