On va s'intéresser ici aux solutions open source permettant de mettre en place un CMS complètement focntionnel. Dans ces solutions il y a de grandes tendances, puis pour chaque produit des spécificités. Au moment de choisir une solution, on verra alors quels sont les points essentiels à confronter entre son projet et les produits disponibles. Bien sûr ici, je ne peux faire part que de ma maigre expérience, ou de celle que d'autres ont bien voulu partager avec moi.

Les différentes solutions

Jeudi 25 octobre 2018

Trois grandes catégories

Il y a trois types de CMS qui se distinguent d'abord par leur manière de stocker le contenu, et la méthode de mise en ligne :

  1. les CMS utilisant une base de donnée
  2. les "flat file CMS " dits aussi "file based CMS"
  3. les "Static site generators" ou générateurs de site statique

Malheureusement je n'ai pas trouvé d'équivalent français élégant pour les deuxième type. Ce n'est pas trop grave, car avec quelques explications on va vitre saisir à quoi on a affaire. Il y a une autre manière de classer les CMS qui est leur destination : photothèques, base documentaire, site de commerce, site vitrine, blog, magazine… Une bonne partie de ces destinations pourrait être couverte avec au choix l'une des trois catégories dont on parle plus haut, mais pas forcément avec la même efficacité.

Les CMS utilisant une base de données stockent les contenus dans une base de données SQL le plus souvent, ce qui semble a priori tout indiqué pour stocker des infos. Les pages que l'internaute consulte sur un tel site sont fabriquées à la volée. L'exemple le plus parlant est un moteur de recherche. Quand nous lançons une recherche, la page retournée par le serveur est une réponse spécifique à notre demande. Ce genre de site est qualifié de site "dynamique", pas forcément pour sa promptitude à répondre d'ailleurs.

Les flat file CMS stockent les contenus dans des fichiers texte sur le serveur. Comme pour la catégorie précédente les pages consultées par les internautes sont créées à la volée. Le système étant moins évolué en termes de recherches que celui qui s'appuie sur une base de données, ça ne permet pas de réaliser les mêmes projets. Pour autant on peut quand même parler de site dynamique.

A la différence des deux précédents avec les static site generator les pages ne sont pas créées à la volée sur le serveur, elles sont créées (on dit ici compilées) sur un ordinateur, avant d'être copiées vers le serveur web pour mettre à jour le contenu du site. Les pages consultées sont donc déjà présentes sur le site. Ce qui fait de cette solution la plus réactive pour l'internaute, pour des sites volumineux et à fort trafic. C'est une solution qui n'en est pas moins applicable à des projets modestes.

Les points communs

Puisque ce sont tous des CMS il y en a bien sûr !

  • le rédacteur peut se concentrer sur la saisie, il n'a pas d'autres tâches à accomplir
  • on peut avec ces solutions parvenir très rapidement à une solution fonctionnelle,
  • mettre en place le système et en personnaliser les modèles demandent du travail et des connaissances dans les langages du web. Il y a de grandes différences de compétences entre le rédacteur et l'administrateur du système.

Les spécificités de chacune de ces catégories.

Les CMS avec base de données sont particulièrement performants quand il s'agit d'indexer des contenus et de proposer à l'internaute des techniques de recherche avancées. Ce sont donc des systèmes adaptés à la gestion de fonds documentaires et aussi pour des sites de commerce volumineux. Cependant, le fait que chaque clic d'un internaute mobilise les ressources de la base de données rend le site moins réactif quand augmente le trafic. Cette solution nécessite alors une configuration (très) musclée pour satisfaire le client. Par ailleurs on sait que les bases de données sont sur le web un maillon faible de la sécurité vis-à-vis des hackers. Sur ce point on verra que le choix du CMS et celui de l'hébergement sont très significatifs, et surtout pas à prendre à la légère. Un hébergement gratuit est tout à fait déconseillé ! Sauvegarde et restauration peuvent être complexes car il s'agit de prendre en charge à la fois le contenu de la base de données, les modèles, les extensions éventuelles et aussi les fichiers (images). Cet aspect est un critère primordial quand il s'agit de choisr un CMS plutôt qu'un autre. Enfin, ils peuvent toujours être administrés en ligne et l'ajout de contenu est donc aisé et rapide pour le rédacteur, il suffit qu'il dispose d'un accès à Internet.

Les flat file CMS ne posent pas de problême de sécurité particulier, guère plus qu'un site statique et nettement moins qu'un site avec base de données, tout en offrant au rédacteur le confort d'un CMS administré en ligne, dans la très grande majorité des cas. Des possibilités de recherche existent, en général moins sophistiquées qu'avec la solution précédente. Quand il est doté d'un système de cache, un flat file CMS est pratiquement aussi réactif qu'un site statique y compris soumis à un fort trafic. La sauvegarde et la restauration sont simplissimes ici, puisqu'il s'agit de copier des fichiers. La migration vers une base de données n'est pas évidente, c'est une affaire d'expert. L'hébergement par contre est simple et peu coûteux puiqu'il suffit que soit supporté le langage de script utilisé par le CMS (PHP le plus souvent).

Les deux solutions précédentes offrent au rédacteur la même méthode de travail, il peut donc être autonome quand il s'agit d'ajouter ou de corriger du contenu sans intervenir sur la mise en forme du site. Avec les générateurs de site statique les choses se passent différemment. Le CMS est installé sur un ordinateur qui n'est pas en ligne, donc pas sur un serveur web (a priori). Le ou les rédacteurs fournissent leurs contenus à une personne chargée de les placer dans le dossier de travail du site, sur cet ordinateur. Ce dossier de travail est structuré en général à l'image de l'arborescence du site tel qu'il apparaitra en ligne. En utilisant une ou plusieurs commandes, cette personne va créer l'ensemble des pages du site dans les langages du Web. Comme pour tout CMS ça se fait bien sûr par le biais de modèles adaptés. Cette génération de pages est très rapide, c'est une histoire de micro-secondes. Il reste ensuite à mettre en ligne la nouvelle version du site, qui vient d'être fabriquée. L'hébergement est des plus simples, la sécurité excellente, les performances élevées même pour un gros volume et un fort trafic. La sauvegarde et le déploiement sont une évidence puiqu'ils font partie obligatoirement du processus. Les points faibles sont l'impossibilité de lancer une recherche pour l'internaute, la difficulté pour le rédacteur à être autonome, et l'absence d'administration en ligne.

Cela étant, si on souhaite profiter des différentes technologies, rien n'interdit de monter un site internet mixte, avec une partie dynamique et une autre statique, pour trouver le meilleur compromis performances-fonctionnalités.

Comment choisir la meilleure solution pour moi ?

C'est souvent en répondant à quelques questions qu'on trouve la solution :

  • est-ce que le rédacteur doit absolument être autonome quant à la mise en ligne ? Si c'est le cas et qu'il n'a pas de compétences Web alors le générateur de site statique n'est pas pour moi.
  • est-ce qu'il est important que l'internaute puisse faire des recherches en ligne élaborées sur mon site ? Si oui alors un CMS à base de données est sans doute indiqué, encore faut-il que le CMS choisi comporte des outils de recherche de bon niveau. Paradoxalement ce n'est pas forcément le cas.
  • la sauvegarde doit-elle être réalisée par une personne dont les connaissances informatiques sont simplement celles d'un utilisateur ? En ce cas le flat file CMS semble le plus indiqué sauf si on a trouvé un CMS avec base de donnée bien équipé sur ce point.
  • l'interface permettant au rédacteur d'alimenter le site est-elle suffisamment simple et claire pour qu'il puisse mettre en ligne sa contribution sans devoir crier au secours ? Le mieux est parfois l'ennemi du bien et la il s'agira plus d'évaluer un produit pris parmi les deux dernières catégories, que de se fixer sur une catégorie en particulier.

Dans un autre article je donnerai mes impressions personnelles (argumentées quand même) sur les produits que j'ai pu tester, potasser ou dont on m'a parlé.