Conteneurs
Pourquoi j'ai choisi LXC plutôt que Docker pour héberger 500 sites WordPress
Quand on me demande d’héberger des centaines de sites WordPress, la première réponse qui vient en tête c’est Docker. Pourtant, après analyse, j’ai choisi une approche différente.
Le contexte
Un client avait besoin d’héberger 500 sites WordPress sur une infrastructure qu’il maîtrise. Les contraintes :
- Isolation entre les sites
- Performance constante
- Facilité de maintenance
- Coût maîtrisé
Pourquoi pas Docker ?
Docker est excellent pour les microservices, mais pour WordPress il pose plusieurs problèmes :
L’overhead réseau
Chaque conteneur Docker utilise un bridge network. Avec 500 conteneurs, la table de routage devient conséquente :
# Vérifier les interfaces réseau Docker
docker network ls
ip addr show | grep docker | wc -l
La gestion des volumes
WordPress a besoin de persistance pour wp-content. Avec Docker, chaque site nécessite des volumes montés :
# docker-compose.yml - multiplié par 500...
services:
wordpress:
image: wordpress:latest
volumes:
- ./wp-content:/var/www/html/wp-content
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
La solution : LXC
LXC offre une virtualisation légère au niveau OS, parfaite pour ce cas d’usage :
# Créer un conteneur LXC
lxc launch ubuntu:22.04 wordpress-site-001
# Configurer les limites de ressources
lxc config set wordpress-site-001 limits.cpu 2
lxc config set wordpress-site-001 limits.memory 512MB
Avantages constatés
- Isolation complète : chaque site a son propre filesystem
- Performance native : pas d’overhead réseau artificiel
- Snapshots : sauvegarde instantanée d’un site complet
- Migration : déplacer un site = déplacer un conteneur
Résultats
Après 6 mois en production :
| Métrique | Docker | LXC |
|---|---|---|
| RAM par site | ~180MB | ~120MB |
| Temps de réponse moyen | 340ms | 220ms |
| Temps de démarrage | 2s | 1.5s |
Conclusion
Docker reste mon choix par défaut pour les applications cloud-native. Mais pour un cas d’usage spécifique comme l’hébergement WordPress massif, LXC offre un meilleur rapport performance/complexité.
L’important c’est de choisir le bon outil pour le bon problème, pas de suivre les tendances.