Le déploiement logiciel est l'ensemble des activités et processus qui rendent une application web, un site ou une API disponible, fonctionnel et exécutable sur un environnement de production accessible aux utilisateurs finaux. C'est le pont indispensable entre le code source écrit en local et le produit utilisable mondialement sur Internet.
Passage du code source local vers une infrastructure distante accessible publiquement via une adresse IP ou un nom de domaine.
Automatisation du processus pour publier les nouvelles fonctionnalités rapidement, fréquemment et sans régression technique.
Garantir que le service reste disponible 24h/24 pendant le remplacement atomique de l'ancienne version par la nouvelle.
Assurer qu'un même commit Git produit toujours exactement le même artefact de production quel que soit le serveur cible.
Visualisez en direct les 5 étapes successives traversées par votre code lors d'un déploiement moderne. Cliquez sur le bouton pour lancer la chaîne d'intégration et de livraison continue :
#!/usr/bin/env bash
# ==============================================================================
# SCRIPT DE DÉPLOIEMENT STANDARD DE PRODUCTION (deploy.sh)
# Utilise le principe d'arrêt immédiat en cas d'erreur (set -e)
# ==============================================================================
set -eo pipefail # Arrêt immédiat si une commande ou un pipe échoue
echo "🚀 [1/5] Récupération du code source le plus récent..."
git fetch origin main
git reset --hard origin/main
echo "📦 [2/5] Installation déterministe des dépendances..."
npm ci --only=production --silent
echo "🧪 [3/5] Exécution des tests de non-régression..."
npm run test:ci
echo "⚙️ [4/5] Compilation du livrable de production..."
npm run build
echo "🔄 [5/5] Rechargement gracieux du serveur d'application..."
pm2 reload api-production --update-env
echo "✅ Déploiement terminé avec succès en $(SECONDS) secondes !"
curl -fsS https://127.0.0.1:3000/api/health > /dev/null && echo "🩺 Healthcheck: 200 OK"Automatisation GitPendant longtemps, déployer consistait à glisser-déposer des fichiers modifiés via un client FTP (comme FileZilla). Cette méthode manuelle était source de catastrophes majeures : oubli d'un fichier, écrasement par mégarde d'un fichier de configuration, coupure réseau en plein transfert et impossibilité de revenir en arrière facilement. Aujourd'hui, tout déploiement moderne s'appuie sur le gestionnaire de versions Git et sur des plateformes d'automatisation.
Atomic Release Un déploiement est dit atomique quand la mise en ligne s'effectue en une fraction de seconde par permutation d'un lien symbolique (symlink). L'ancienne version reste intacte dans un dossier (ex: releases/v1/) tandis que la nouvelle version est compilée dans releases/v2/. Ce n'est qu'une fois le build 100% réussi que le serveur web pointe vers v2. Les utilisateurs ne voient aucun écran blanc et si un problème survient, le retour vers v1 prend 1 seconde.
DevOps StandardsÉtablies par l'équipe DevOps Research and Assessment (Google Cloud), ces 4 métriques mesurent l'efficacité de vos déploiements :
Twelve-Factor AppL'étape de compilation (Build) transforme le code source en un livrable immuable (artefacts minifiés, images optimisées). L'étape d'exécution (Run) lance ce livrable dans un environnement doté de ses propres variables de configuration. Le serveur de production ne doit jamais recompiler le code à chaud : il se contente d'exécuter un artefact déjà prêt et testé.
| Méthode | Processus | Risque d'Erreur | Rollback (Retour Arrière) | Temps d'Arrêt |
|---|---|---|---|---|
| FTP Manuel | Transfert de fichiers modifiés à la main | Très Élevé (oubli, écrasement) | Presque impossible ou très lent | Fréquent pendant l'envoi |
| SSH / Script Shell | Connexion au serveur et exécution d'un script bash | Moyen (dépend du serveur) | Possible via symlinks ou git checkout | Faible (quelques secondes) |
| CI/CD Git Automatisé | Déclenchement automatique dès le git push | Très Faible (tests bloquants) | Instantané (1 clic ou revert Git) | 0 seconde (Déploiement atomique) |
| PaaS Cloud (Vercel/Render) | Hébergement managé avec Edge CDN mondial | Nul (bureaucratique & vérifié) | Instantané (historique d'URLs d'accès) | 0 seconde (Bascule DNS/Edge) |