Aller au contenu principal
Julien Dubois

Usine à sites : la solution pour automatiser la gestion en masse de vos sites web ?

Ce billet a été produit dans le contexte d'Happyculture, il a pu être écrit en collaboration.

Vous êtes très fréquemment amenés à lancer puis gérer beaucoup de sites web ? Le pilotage d’une usine à sites peut être une réponse à vos besoins. Passons en revue ce qu’englobe le concept d’usine à sites et les solutions à disposition.

Définition

Commençons par nous pencher sur la définition de ce que peut être une usine à sites. On parlera d’usine à sites, de ferme à sites ou de site factory chez les anglo saxons.

L’usine à sites englobe l’initialisation de la base de code du projet, la personnalisation, l’administration (d’un point de vue système), le déploiement des mises à jour, le suivi et l’extinction d’un ensemble de sites. Elle s’appuiera sur un ensemble d’actions automatisées, potentiellement lancées en masse.

Le concept de ferme à sites est souvent associé à l’idée d’avoir des sites avec une base fonctionnelle commune. Exemples : déclinaison de sites pour des magazines d’un éditeur, sites d’agences immobilières pour un réseau, antennes locales d’une association nationale.

Les outils qui composent la ferme à sites ont vocation à simplifier l’exécution des tâches répétitives. Selon la maturité des équipes, tout ou partie des actions pourra être rendue utilisable par n’importe qui.

Création d’un nouveau site

La principale difficulté d’une usine à sites réside dans le fait de devoir standardiser les étapes ou actions de la vie d’un projet, la nature protéiforme des outils qui propulsent les sites n’y aidant pas (lire notre article sur la sélection d’un framework, d’un CMS ou d’un service SaaS pour propulser son site).

Une solution ne pouvant pas convenir à tous les problèmes, l’initialisation des projets se fera souvent à partir de modèles de sites. Certaines applications de panneaux d’administration de serveur (comme Plesk, cPanel) peuvent d’ailleurs proposer ce genre de fonctionnalité “initialiser un site Drupal”, “lancer un gabarit d’application Ruby”. Vous pourrez évidemment construire les mêmes mécaniques à partir de couches d’applications maison.

Deux options se dessinent à partir de ce point : le site est un point de départ pour des développements supplémentaires ou bien il est prêt à l’usage et n’a plus qu’à être personnalisé par l’équipe qui en administrera le contenu. Si des développements supplémentaires doivent avoir lieu, cette partie se déroulera en dehors du périmètre de la ferme.

Suivi et administration du site

Une fois le site prêt, c’est le moment où il revient souvent dans le giron de l’équipe système pour en assurer le suivi. Pour des raisons de concision nous ne parlerons pas d’automatisation de création des noms de domaines, boites mails, etc. L’usine à sites devra permettre le suivi de l’état de chaque site :  disponibilité, charge serveur, espace disque occupé…
Les actions les plus courantes devront également être accessibles : déploiement d’une mise à jour, génération d’une sauvegarde des données, restauration d’une copie antérieure, accès à la base de données, duplication d’un site, dépublication…
Vous vous doutez bien que l’utilité de votre ferme dépendra de la simplicité de mise en œuvre des actions récurrentes à faire et qui pourront être spécifiques à chaque projet ou techno. Exemple pour des projets Drupal : vérifier si des mises à jour de sécurité sont disponibles et non appliquées, dernière indexation des données, remonter si le projet est sous Drupal 8, 9, 10…

Drupal est-il adapté à ce genre de besoins ?

Drupal est un CMS capable de convenir à de nombreux scénarii, les fermes à sites en sont un. La configuration des sites est exportée dans des fichiers, cela simplifie le déploiement ou l’installation des sites à partir de leur configuration. L’architecture de Drupal offre plusieurs possibilités pour se connecter à plusieurs sites. Une même base de code peut être utilisée pour plusieurs sites, chacun avec ses modules ou thèmes propres. Chaque base de code peut être reliée à une seule ou plusieurs bases de données.
De plus, Drupal comporte dans ses fonctionnalités la gestion de profils d’installation aussi connus sous le nom de distributions. C’est le mécanisme qui peut être utilisé pour répondre au besoin de répliquer des sites à partir d’un modèle, qu’ils partagent ou non la même base de données. Dans la même veine, vous pourrez construire un thème qui pourra être étendu ou spécialisé pour refléter l’identité propre de chaque site à partir d’une base commune (on pourrait parler de Design system).
Chez Happyculture, nous avons développé des profils réutilisables pour l’Université d’Aix Marseille, des sites intranet et internet de l’Apard ou encore des sites pour l’université de Rennes 1 en utilisant les distributions et les capacités multisites de Drupal.

Quels outils à ma disposition pour assembler mon usine ?

C’est là que le bât blesse. Il est difficile d’avoir un seul outil pour piloter tout le cycle de vie des projets. Pour l’administration d’un parc de sites Drupal, la communauté avait développé il y a plusieurs années une distribution dénommée Aegir. Son principal avantage est de proposer un tableau de bord spécialisé pour Drupal. Son principal inconvénient est que cette distribution commence à être datée et n’est pas vraiment maintenue (et toujours sur Drupal 7). Ce choix pourrait être intéressant mais pas vraiment recommandable de notre point de vue à moins que votre équipe ne soit experte Drupal. Fin février 2023, une équipe a annoncé la reprise des développements pour Aegir 5, c’est intéressant à suivre.

Il semblerait que le marché soit un peu creux de ce côté. Les panneaux d’administration type Plesk ou cPanel pourront vous aider à centraliser des informations mais ces solutions étant propriétaires vous ne pourrez pas facilement les adapter à des besoins sur mesure.

Vous aurez nécessairement du travail d’assemblage pour construire votre tableau de bord d’administration et de pilotage des sites. Nous vous suggérons de dresser la liste des fonctionnalités attendues pour votre typologie de sites et de développer pour chaque technologie des connecteurs qui se chargeront d’agréger les données à faire remonter dans le tableau de bord ou de traduire les actions d’administration éventuelles.

Les services cloud comme Platform.sh, Acquia Site Factory ou Pantheon Upstreams sont proches de proposer ce genre de solutions dont nous parlons mais cela n’existe pas encore à notre connaissance.
Gardez cependant à l’esprit qu’une solution propriétaire resterait une contrainte pour votre souveraineté en vous liant à un fournisseur tiers et perdant la main sur l’ensemble de la chaîne de production. 

Conclusion

On en vient donc à s’interroger sur le point d’équilibre où la mise en œuvre d’une ferme à sites devient rentable compte tenu du travail d’assemblage nécessaire à réaliser en amont.

Si votre parc compte plusieurs dizaines de sites sous la même technologie alors il devient intéressant de considérer la mise en œuvre de l’usine. Elle n’est pas obligée de couvrir toutes les étapes et remontées d’informations que comporterait la version idéale. Commencer à centraliser des données à fin de suivi peut être un bon point de départ.
En deçà, le coût de mise en œuvre risque de limiter votre retour sur investissement.

Pour rebondir