Chez VOID, nous maintenons une centaine de projets Drupal etNext.js pour nos clients (banques, institutions, e-commerce). Les mises à jour régulières (core, modules, dépendances) sont critiques pour la sécurité et laperformance, mais elles comportent des risques : incompatibilités, régressions, bugs cachés.
Pour résoudre ce problème, nous avons développé en interne VOID DevOps Platform, une plateforme managée basée sur DDEV et Docker qui automatise la création d'environnements de test, l'analyse qualité, et les tests fonctionnels. Cet article détaille l'architecture, les technologies utilisées, et les bénéfices concrets.
Pourquoi DDEV ?
DDEV (ddev.com) est un outil open source qui simplifie la création d'environnements de développement PHP locaux basés sur Docker. Il supporte nativement Drupal, WordPress, Laravel, Magento, et autres CMS/frameworks PHP.
- Configuration YAML simple :
.ddev/config.yaml
définit PHP version, base de données, services additionnels - Reproductible : même stack sur dev, staging, prod (évite les « ça marche chez moi »)
- Extensible : ajout facile de services (Redis, Elasticsearch, Varnish, Solr)
- Commandes CLI intuitives :
ddev start
,ddev ssh
,ddev import-db
- Multi-projets : gérer plusieurs sites simultanément sur la même machine
Architecture de la plateforme
VOID DevOps Platform repose sur une architecture containerisée orchestrée par une interface web custom (Next.js + Node.js backend) :
Stack technique
- DDEV 1.23+ : gestion des environnements Drupal/Next.js
- Docker + Docker Compose : orchestration des containers
- Interface web (Next.js) : dashboard pour créer/gérer environnements
- Backend Node.js : API REST pour piloter DDEV, Git, SonarQube, Playwright
- PostgreSQL : base de données pour logs, historique, configurations
- SonarQube : analyse qualité code (bugs, vulnérabilités, code smells)
- Playwright : tests end-to-end automatisés avec captures d'écran
- Code-server (VS Code web) : édition de code depuis le navigateur
- Traefik : reverse proxy pour routing dynamique des URLs de test
Fonctionnalités principales
1. Création d'environnements à la demande
Depuis l'interface web, un utilisateur sélectionne un projet Drupal (repo Git), choisit une branche (feature, hotfix, etc.), et clique sur « Créer environnement ». La plateforme :
- Clone le repo Git
- Initialise DDEV (
ddev config --project-type=drupal10
) - Démarre les containers (PHP, MySQL, Nginx)
- Importe un dump de base de données de référence (
ddev import-db
) - Lance
composer install
etdrush cr
- Génère une URL unique via Traefik (ex :
projet-abc123.void-staging.ma
)
Temps moyen : 3-5 minutes selon la taille du projet.
2. Terminal intégré (xterm.js)
Via xterm.js, la plateforme expose un terminal web qui se connecte au container DDEV via SSH. L'utilisateur peut exécuter n'importe quelle commande Drush, Composer, Git, etc. Les logs sont capturés en temps réel et stockés pour audit.
3. Intégration SonarQube
SonarQube (sonarqube.org) est un outil open source d'analyse qualité de code. La plateforme lance automatiquement un scan SonarQube après chaque création d'environnement ou mise à jour :
- Bugs : erreurs logiques, null pointer exceptions, etc.
- Vulnerabilities : failles de sécurité (XSS, SQL injection, CSRF)
- Code smells : mauvaises pratiques, complexité cyclomatique, duplication
- Coverage : pourcentage de code couvert par les tests unitaires
Les résultats sont affichés dans le dashboard avec un quality gate (passed/failed) basé sur des seuils configurables.
4. Tests automatisés Playwright
Playwright (playwright.dev) est un framework de tests end-to-end pour applications web. VOID DevOps Platform permet de :
- Créer des scénarios de tests (login, création de contenu, parcours e-commerce, etc.)
- Exécuter les tests sur plusieurs navigateurs (Chromium, Firefox, WebKit) en parallèle
- Capturer des screenshots et vidéos en cas d'échec
- Générer un rapport HTML (
playwright-report
) consultable depuis la plateforme
Exemple : un test vérifie que le formulaire de contact fonctionne après une mise à jour de module Drupal. Si le test échoue, une capture d'écran de l'erreur est sauvegardée et alertée.
5. Gestion des branches Git
L'interface web permet de switcher de branche (git checkout feature/new-module
), desynchroniser avec le remote (git pull origin main
), et decomparer les versions (diff entre main et feature).
6. VS Code distant (code-server)
code-server (github.com/coder/code-server) est une version web de VS Code. La plateforme l'intègre pour permettre d'éditer du code directement depuis le navigateur, sans cloner en local. Utile pour des hotfixes rapides ou du pair programming à distance.
7. Logs temps réel
Via WebSockets, les logs PHP, Apache/Nginx, MySQL sont streamés en temps réel dans l'interface. Filtrage par niveau (error, warning, info), recherche full-text, export en fichier.
Cas d'usage concret
Contexte : une banque marocaine utilise Drupal 10 pour son portail institutionnel. Une mise à jour de sécurité critique (Drupal core 10.1.5 → 10.1.6) doit être déployée.
Sans la plateforme :
- Créer manuellement un environnement de staging sur un serveur dédié (1h)
- Cloner le repo, importer la base de données, configurer Apache/PHP (30 min)
- Lancer
composer update drupal/core
etdrush updb
(15 min) - Tester manuellement 20-30 pages, formulaires, parcours (2h)
- Si bug détecté : rollback, debug, recommencer (1h+)
- Total : 4-5 heures minimum
Avec VOID DevOps Platform :
- Créer environnement (3 min) → URL
banque-test-abc.void-staging.ma
- Appliquer mise à jour via terminal intégré (
composer update drupal/core
) (5 min) - Lancer SonarQube (10 min) → Quality gate: passed ✅
- Exécuter scénarios Playwright (20 tests en parallèle) (5 min) → Tous verts ✅
- Valider checklist (perf, sécu, UX) (10 min)
- Merger la branche, déclencher déploiement prod (2 min)
- Total : 35 minutes
Gain de temps : -87%. Réduction drastique du risque grâce aux tests automatisés.
Bénéfices pour les agences et DSI
- Réduction du temps de test : automatisation des tâches répétitives, environnements prêts en minutes
- Qualité accrue : SonarQube + Playwright détectent les régressions invisibles à l'œil
- Traçabilité complète : historique de chaque test, logs, captures d'écran, conformité audit
- Moins de bugs en prod : validation multi-niveaux avant déploiement
- Rentabilité : facturez moins d'heures de maintenance, investissez le temps gagné dans l'innovation
- Satisfaction client : déploiements sereins, moins d'incidents, SLA respectés
Roadmap et évolutions
VOID DevOps Platform est en amélioration continue. Prochaines fonctionnalités prévues :
- Intégration CI/CD native : déclenchement automatique des tests sur merge request (GitHub Actions, GitLab CI)
- Multi-régions : créer des environnements sur des serveurs Maroc/France/US selon la latence
- Tests de performance : intégration Lighthouse, WebPageTest, Artillery pour load testing
- API publique : permettre aux clients d'intégrer la plateforme dans leurs propres workflows
- Support multi-frameworks : Symfony, Laravel, Magento, WordPress (déjà partiellement supporté)
Intéressé par VOID DevOps Platform ?
Cette plateforme est proposée en service managé (nous hébergeons et maintenons l'infrastructure). Si vous êtes agence web, DSI, ou équipe DevOps gérant des projets Drupal/Next.js, discutons de votre contexte et voyons comment la plateforme peut vous faire gagner du temps et de la sérénité.
Découvrir la solutionRessources complémentaires
- Expertise DevOps : conseil, intégration CI/CD, automatisation
- Expertise Drupal : développement, maintenance, migrations
- Toutes nos publications : guides et actualités tech
- DDEV documentation : guides officiels (ddev.readthedocs.io)
- SonarQube : analyse qualité code (sonarqube.org)
- Playwright : tests end-to-end (playwright.dev)
Note : VOID DevOps Platform est une solution propriétaire développée par VOID. DDEV, Docker, SonarQube et Playwright sont des outils open source tiers. Cet article présente l'architecture et les fonctionnalités en 2025.