- WordPress, Drupal : quotidien des CMS en agence
- Notre cadre d'usage : produire du complexe, rapidement et avec maîtrise
- Des prises en main fulgurantes
- Le puissant développement modulaire et ses risques
- Des outils standards manquants à l'appel
- Une exploitation et un support laborieux
- Notre conclusion : des lacunes à leur reconnaître pour maximiser leurs avantages
MISE À JOUR / MAINTENANCE / TRAVAIL COLLABORATIF : HARO SUR LE CADRAGE ET LA SOUPLESSE
WordPress :
- Multi-environnement : Alors ici attention concept : et si on se permettait de stocker en dur dans la base de donnée absolument toutes les références URL du domaine faisant tourner le site ? Et en prime sous un format serialisé PHP hautement intouchable ?
Et ainsi l’hérésie fût totale au commencement… mais plus grave : elle persiste et signe encore de nos jours !
Qu’est-ce qu’il s’est passé messieurs à ce moment de la conception où cet axe fort a été durement ancré dans le marbre ? Comment avec cette ineptie peut-on devenir le système web qui fait tourner 25% des sites d’Internet (parait-il ?). Et ce n’est pas l’utilisation possible de l’initiative annexe wp-cli (pour son search-replace salvateur) qui pardonnera quoi que ce soit. Grave faute de goût à notre sens. - La mode du « maximum de configuration en base de données », va assurément vous faire travailler votre mémoire réflexe puisque vous allez oeuvrer non stop à assurer une synchronisation humaine de clics en tout genre pour essayer tant bien que mal de conserver l’ensemble des changements du site sur l’ensemble des bases existantes sur le projet. Donc à moins de travailler directement en production (de nos jours serait-ce vraiment sérieux ?), dès le moment que vous aurez une deuxième base de données (un collègue, une pré-production), vous prenez le risque d’être plus ou moins en désyncronisation « acceptable ». A moins de réaliser des échanges par écrasement de vos bases dans leur globalité… ce qui ne va pas s’en évidemment causer d’autres types de problèmes.
- Le système de module proposant d’alerter sur les mises à jour, nous aurions pu espérer du pain béni pour opérer nos mises en place de contrat de maintenance. Mais il n’en est malheureusement rien. Les modules se mettent à jour constamment pour un rien (essentiellement des débugs), il n’y a aucun moyen de filtrer clairement les mises à jour pour ce qui nous intéresse concrètement à savoir : la sécurité. Ce qui force ainsi ni vu ni connu à constamment jouer à la roulette russe lors d’une mise à jour à le malheur de corriger à la fois ET une faille de sécurité MAIS qui ajoute aussi plein de superbes nouveautés (ou des bugfix) non recherchées… qui iront 1 fois sur 3 crasher le système entier puisque les incompatibilités sont monnaies courantes entre extensions.. mais aussi entre versions d’extensions.
Ici le casse-tête est ainsi total car cela demande concrètement à chaque mise à jour d’extension d’auditer en profondeur ses tenants et aboutissants…. ainsi que d’aller expliquer pourquoi la maintenance « invisible » coûte finalement plus cher que la phase de réalisation. - Et nous l’avons déjà vu plus haut : les systèmes de licence divers et variés ne vont pas pour arranger le casse-tête qui se met en place gentillement mais sûrement.
Drupal :
- Multi-environnement : bien plus sérieux que WordPress à ce niveau car avec un peu d’attention, il vous est possible d’éradiquer toute trace du domaine dans votre base.
- Drupal 7 gestion des configurations : on en revient ici aux problèmes du tout en base. Des initiatives peuvent nous aider dans ce chemin de croix, mais globalement ça reste très très laborieux dès qu’on dépasse le nombre d’une base de donnée.
- Drupal 8 gestion des configurations : injection du YAML (entendre extraction des configurations en base de données dans des fichiers versionnables / partageables)… et ça fait mal. Donc on notera l’effort pour proposer un processus de cadrage des données structurantes en objectifs de synchronisation. Mais qui en découle sur une verbosité extrême un peu déroutante de prime abord.
- Mises à jour de modules : ici le concept de canal de sécurité est réellement appréciable puisqu’il permet de concentrer l’effort de maintenance sur les mises à jour importantes (et non celles dites évolutives en dehors cadre de votre prestation). La qualité de programmation fournie est globalement plus sérieuse ce qui évite les plus grosses déconvenues vécues sous WordPress.
DOCUMENTATION : ERREMENTS ET QUESTIONNEMENTS
Puisque nous ne sommes pas censés connaître sur le bout des doigts l’absolue documentation d’Internet, les supports de référence sur les langages et systèmes sont un élément important à prendre en considération.
Et encore une fois concernant nos 2 protagonistes il y a à boire et à manger. Certes nous avons bien accès à des documentations listant l’ensemble des références fonctionnelles des librairies des Core, mais nous restons souvent sur notre faim en matière de réponses à nos interrogations. Il manque souvent un exemple ou explication d’un cadre réel d’utilisation. Nous ne parlerons pas des documentations au niveau des modules tiers car elles se montrent plus souvent inexistantes qu’autre chose.
Et nous voila alors partis à la grande aventure de la recherche d’espoir au travers Google (et son compère StackOverflow) ou voire encore des commentaires(/questions)(/échos virtuels) d’utilisateurs en détresse sur les-dites documentations en question. Mais heureusement de temps à autre le Graal pointe le bout de son nez au travers d’un tutoriel extrêmement bien réalisé qu’une âme charitable a pris le temps d’expliciter suite à ses découvertes. Sauf qu’une dernière étape se dressera devant vous : l’espoir que ce tutoriel d’il y a 3 ans corresponde bien à la bonne version de votre module présentement utilisé.
Bref sur ce point on s’arme de patience, de capacité de recherche poussée (et de faire le tri), et d’un constat clair qu’il y aura très souvent absolue nécessité à ouvrir les entrailles des codes d’extensions et librairies utilisées si l’on veut entrevoir la lumière. C’est le détail « main dans le cambouis » qui n’était pas forcement marqué en astérisque à côté des promesses affichées.
Suite à ces divers points que nous avons abordé au travers de notre regard de fidèles pratiquants, nous pouvons maintenant en venir à notre conclusion.