# Bedrock et Trellis contre une installation classique pour trois environnements

> Comparatif de workflow de déploiement entre développement, préproduction et production pour un site institutionnel multilingue, avec ou sans Bedrock et Trellis.

- Auteur : WordPress Développement
- Publié le : 2023-01-01
- Mis à jour le : 2023-01-01
- Catégorie : Multilingue
- URL : https://www.wpmoderne.fr/multilingue/bedrock-trellis-installation-classique-trois-environnements/

## L’essentiel

- Bedrock structure la configuration par environnement via des variables
- Trellis automatise le provisionnement mais demande un socle serveur adapté
- Une installation classique reste viable avec de la rigueur manuelle

Depuis 2015, Roots propose Bedrock et Trellis comme alternative structurée à l'installation classique de WordPress, mais leur intérêt réel se révèle surtout sur des projets à plusieurs environnements, comme ce site institutionnel multilingue en français et en néerlandais, géré en développement, en préproduction et en production par une équipe de trois développeurs.

Ce comparatif ne traite pas d'un outil de templating particulier : il se concentre uniquement sur le workflow de déploiement et la gestion de la configuration selon l'environnement, un point souvent négligé sur les sites multilingues où les réglages de langue diffèrent parfois d'un environnement à l'autre par erreur.

## L'installation classique : simple à démarrer, fragile à l'échelle

Sur une installation WordPress classique, la configuration de Polylang et des langues actives vit dans la base de données, comme le reste du contenu. Répliquer un environnement de préproduction identique à la production suppose alors d'exporter puis d'importer la base de données dans son intégralité, ce qui inclut la configuration linguistique mais aussi tout le contenu réel, avec les risques de fuite de données que cela comporte pour un site institutionnel.

- Configuration linguistique stockée en base, donc dupliquée avec le contenu à chaque synchronisation
- Aucune séparation nette entre ce qui relève du code et ce qui relève des données
- Risque de divergence de configuration entre développement et production si un réglage est modifié directement en production

## Bedrock : la configuration sort de la base de données

Bedrock réorganise la structure de projet WordPress autour de fichiers d'environnement (`.env`), avec des constantes comme `WP_ENV` qui permettent de charger des réglages différents selon que le code s'exécute en développement, en préproduction ou en production. Pour un site multilingue, cela permet par exemple de forcer une langue de secours différente en environnement de test, sans toucher à la base de données de production.

> L'essentiel à retenir : Bedrock structure la configuration par environnement via des variables ; Trellis automatise le provisionnement mais demande un socle serveur adapté ; Une installation classique reste viable avec de la rigueur manuelle

```
# .env de préproduction
WP_ENV=staging
WP_HOME=https://preprod.exemple-institution.fr
WP_SITEURL=${WP_HOME}/wp
DB_NAME=site_preprod
```

La composition des dépendances via Composer, propre à Bedrock, facilite également la mise à jour coordonnée de Polylang et de ses extensions complémentaires sur les trois environnements, avec un fichier `composer.lock` garantissant des versions strictement identiques partout.

### Trellis : le provisionnement serveur automatisé

Trellis complète Bedrock en automatisant le provisionnement des serveurs via Ansible, avec des playbooks séparés pour chaque environnement. Sur ce projet, Trellis a permis de créer un environnement de préproduction strictement identique à la production en une seule commande, réduisant fortement les écarts de configuration serveur qui provoquaient auparavant des bugs d'affichage propres à un seul environnement.

## Comparatif synthétique des trois approches

| Critère | Installation classique | Bedrock seul | Bedrock + Trellis |
| --- | --- | --- | --- |
| Courbe d'apprentissage | Faible | Modérée | Élevée |
| Séparation configuration/contenu | Aucune | Complète | Complète |
| Provisionnement serveur | Manuel | Manuel | Automatisé |
| Adapté à une petite équipe | Oui | Oui | Nécessite de la maintenance Ansible |

## Ce que cela change concrètement pour la gestion multilingue

Le bénéfice le plus concret observé sur ce projet a été la possibilité de tester une mise à jour de Polylang en préproduction avec exactement les mêmes versions de PHP, de plugins et de configuration serveur qu'en production, grâce au verrouillage des dépendances par Composer et à l'homogénéité serveur apportée par Trellis. Auparavant, une mise à jour testée avec succès en préproduction provoquait parfois un comportement différent en production, à cause d'une version de PHP ou d'une extension serveur légèrement différente.

> Un environnement de test qui ne reproduit pas fidèlement la production ne teste rien : il rassure, ce qui est pire que de ne pas tester du tout.

## Notre verdict

Pour une équipe de développeurs expérimentés gérant plusieurs environnements et plusieurs projets similaires, Bedrock associé à Trellis représente un investissement initial justifié, en particulier pour un site multilingue où la cohérence de configuration entre environnements évite des bugs difficiles à diagnostiquer. Pour un site unique, géré par une seule personne sans besoin de réplication fréquente d'environnements, une installation classique bien documentée reste parfaitement défendable, à condition d'une discipline manuelle rigoureuse sur la configuration.
