Le déploiement manuel : un risque que trop de PME acceptent encore

Selon le DORA Report 2024 (DevOps Research and Assessment), les équipes qui pratiquent le déploiement continu (CI/CD) connaissent 60 % moins d'incidents de production et restaurent le service 4 fois plus rapidement après un incident. Pourtant, une enquête récente révèle que 43 % des PME déploient encore leurs applications manuellement — via FTP, copie de fichiers ou scripts non vérifiés.

Le déploiement manuel, c'est :

GitHub Actions : le standard du déploiement automatisé

GitHub Actions est utilisé par 70 % des projets open source actifs sur GitHub. Cette plateforme d'intégration et de déploiement continu s'est imposée comme le standard de l'industrie grâce à sa simplicité de configuration (fichiers YAML), son intégration native avec Git et ses milliers d'actions communautaires réutilisables.

Un pipeline CI/CD typique comprend :

  1. Tests automatisés — PHPUnit, tests d'intégration, linting
  2. Build — compilation des assets (Tailwind, JS)
  3. Déploiement staging — validation sur environnement de pré-production
  4. Déploiement production — après validation manuelle ou automatique
  5. Smoke tests — vérification rapide que la production fonctionne après déploiement

Notre pipeline ADRD : 70 scripts PowerShell, deploy HTTP sécurisé

Chez ADRD Consulting, nous avons construit un pipeline de déploiement éprouvé sur l'ensemble de nos projets (ADRD Expert, RecruteX, MailGuard, Stoubook, Nexora, TDS Services, XXL Event, QualiTrack...). Voici son architecture :

Le deploy HTTP sécurisé

Nous utilisons un endpoint de déploiement sécurisé hébergé sur nos serveurs Hostinger. Chaque déploiement est authentifié par un token unique transmis dans un header HTTP, avec le contenu des fichiers encodé en base64. Ce mécanisme évite l'exposition de credentials FTP et permet un audit complet de chaque déploiement.

POST /workspace/deploy.php?action=write
Header: X-Deploy-Token: [token]
Body: { "path": "relative/path.php", "content": "base64_encoded" }

Les scripts PowerShell

Notre bibliothèque de 70 scripts PowerShell couvre l'intégralité du cycle de déploiement :

Le rollback en 8 secondes

Chaque déploiement conserve la version précédente dans un répertoire de backup horodaté. En cas de problème détecté (monitoring, alerte utilisateur), le rollback s'exécute en réenvoyant les fichiers de backup via le même endpoint. Temps moyen mesuré : 8 secondes pour un rollback complet sur un projet de taille standard.

Zéro downtime : comment l'obtenir en PHP

Le déploiement sans coupure de service (zero downtime) est possible en PHP avec quelques techniques :

Déploiement atomique

Plutôt que de remplacer les fichiers un par un, on prépare le nouveau code dans un répertoire temporaire, puis on effectue un rename() atomique au niveau du serveur. Le service ne voit jamais un état intermédiaire incohérent.

Migrations BDD compatibles

Les modifications de schéma doivent être rétrocompatibles : on ajoute des colonnes avant de les utiliser dans le code, on supprime les anciennes colonnes dans un second déploiement. Jamais de renommage direct qui casserait la version précédente encore en cours d'exécution.

Cache invalidation contrôlée

Le déploiement déclenche automatiquement l'invalidation des caches applicatifs (OPcache PHP, caches applicatifs) pour éviter que l'ancienne version du code continue à s'exécuter.

Métriques DORA : comment vous situez-vous ?

Le DORA Report classe les équipes en 4 niveaux selon leurs métriques de déploiement :

La plupart des PME qui déploient manuellement se situent en niveau Medium ou Low. Passer à un pipeline automatisé, même simple, fait généralement sauter au niveau High en quelques semaines.

Par où commencer ?

Si vous n'avez aucun pipeline CI/CD, voici les étapes pragmatiques :

  1. Versionner votre code dans Git si ce n'est pas encore fait (c'est la fondation de tout)
  2. Créer un script de déploiement simple (même un script bash) pour reproduire ce que vous faites manuellement
  3. Automatiser ce script avec GitHub Actions sur le push vers la branche principale
  4. Ajouter un test de fumée post-déploiement
  5. Itérer vers plus de sophistication (tests, environnements multiples, rollback)

Votre processus de déploiement vous fait perdre du temps et génère des incidents ? ADRD Consulting peut auditer votre pipeline actuel et mettre en place une solution adaptée à votre stack PHP. Contactez-nous pour un devis.