Retour sur le Drupalcamp – jour 1
5 mars 2019
Nous nous sommes rendus au Drupalcamp 2019, qui se déroulait cette année à Paris du 15 au 17 février. Le Drupalcamp est un événement organisé par l’association Drupal France et Francophonie, ainsi que par de nombreux bénévoles. C’est avant tout un lieu de rencontre pour la communauté française qui utilise le CMS Drupal : trois jours de conférences, de sprints et de discussions sur Drupal et son environnement.
La Keynote d’introduction sur l’approche composant de Symfony
La première journée a démarré par la keynote d’ouverture, animé par Nicolas Grekas, CTO de Blackfire. Cette keynote était l’occasion de nous accueillir, de nous annoncer le programme, de nous présenter l’approche composant de Symfony, et de la mettre en relation avec Drupal 8. Drupal 8 n’est pas un bundle Symfony, mais il utilise des composants issus de Symfony. Ensuite, le système de release Symfony nous a été expliqué : le système de release Drupal se base comme Symfony sur un cycle de 6 mois. Mais ce cycle est décalé par rapport à Symfony, ce qui induit un retard dans l’implémentation des nouvelles fonctionnalités Symfony dans Drupal. Cependant, le cycle de Drupal devrait se décaler pour coller sur celui de Symfony. Les notions de dépréciation du code et d’automatisation ont également été abordées. La keynote touchant à sa fin, les conférences ont pu commencer.
Migration de Drupal 7 à Drupal 8
Nous avons assisté à la conférence “Migration de Drupal 7 à Drupal 8”. C’est une problématique bien connue du développement, un retour d’expérience sur le sujet est toujours bon à prendre. Il s’agit de la migration du site France TV, un site avec de gros pics de trafic et du temps réel. Cette migration avait pour enjeu d’augmenter fortement le nombre de vidéos / vues, d’augmenter les performances en Back office et en Front office, et de réduire le nombre de technologies différentes utilisées. Il y avait un fort besoin d’industrialisation, notamment pour des événements récurrents. Ce projet avait une forte deadline, Roland Garros au mois de mai, un impératif qui ne pouvait pas être décalé. Pour ce faire, la bascule a été faite progressivement, en réalisant une MVP qui coexistait avec l’ancien site. Progressivement, l’ancien site a été totalement retiré.
Leur bilan sur Drupal 8 est positif grâce à l’ajout de nombreuses fonctionnalités comme la gestion des API, la Cache API, ou encore les services et l’injection de dépendances. Cette migration a été un succès du point de vue de la performance et du trafic.
Retour d’expérience : refonte en Drupal 8 de plus de 80 sites
La seconde conférence de journée allait commencer : “Refonte en Drupal 8 de plus de 80 sites”. Cette conférence est un retour d’expérience sur Campus France. Campus France est un organisme qui a pour but de promouvoir à l’étranger le système d’enseignement français. Le site de Campus France a subi une multitude de refontes et d‘évolutions depuis 2001. Ce n’était à l’origine que du html statique, pour aboutir sur un site en Drupal 8 en 2018. Les enjeux étaient d’avoir une plateforme multisite, utilisant une système de SSO, 32 langues différentes, un système de recherche performant avec facette sur l’espace documentaire, et de pouvoir gérer un trafic 24/7. Le projet a été mené à son terme malgré les challenges techniques qu’ont été la Chine (pas d’utilisation des services Google, infrastructure spécifique…), une gestion des caches poussée, ou encore la gestion du multilingue/multisite. A présent, la plateforme Campus France, c’est 1 portail et 97 sites qui partagent leurs contenus.
Rappel sur la programmation objet
Pour commencer l’après midi, nous sommes allés voir Woprrr, qui nous a parlé de Poo et de design Pattern. La conférence a repris les bases de la programmation objet, en expliquant les différents concepts de base que sont le principe de classe, classe abstraite, ou encore de polymorphisme. Les designs Pattern, ainsi que leur classification, ont ensuite été abordés. Nous n’étions pas vraiment la cible de cette conférence, qui fut relativement basique, bien que ça ne fasse pas mal de revoir les bases de la programmation objet.
Amélioration de l’expérience développeur dans Drupal
Ensuite, nous avons enchaîné sur “l’expérience développeur dans Drupal : améliorez-la !”. L’expérience développeur, ou DX, est l’équivalent de l’UX (expérience utilisateur) pour les développeurs. Le principe DX est d’avoir des outils ou des process facilitant le développement, afin de générer moins de frustration et de gagner en productivité. D’après Thomas Calvet, conférencier, la DX de Drupal 8 n’est pas bonne. Après une installation fraîche, Drupal 8 manque par exemple de debug et de notion d’environnement. Thomas Calvet vient de Symfony, qui diffère de Drupal sur de nombreux points. Mais des solutions existent pour améliorer le DX, comme Drush, Drupal console, ou le module Devel.
Pour répondre à son besoin de DX ainsi qu’au besoin du plus grand nombre, le développement de Drupal-debug a été lancé. C’est une librairie qui ajoute des fonctions de debug et des watchers. Il est possible de désactiver tous les caches par exemple, ou encore de watcher les modules pour vider les caches automatiquement quand on les modifie. Bien que la librairie soit jeune, nous encourageons la démarche et un maximum de monde à l’utiliser pour avoir des retours et la faire vivre. La DX est un sujet qui nous tient à coeur et nous sommes convaincus de l’utilité de cette librairie.
L’implémentation d’une plateforme Drupal 8 multi-sites
Après une petite pause, la conférence “Implémentation d’une plateforme Drupal 8 multi-sites – multi-marques” commence. Il s’agit d’un retour d’expérience sur l’usine à sites Bostik, qui regroupe plusieurs marques comme Sader. La plateforme s’articule en deux parties : la première, une plateforme multisite avec un site spécifique par marque pour rechercher les revendeurs associés, et une seconde plateforme multisite pour créer des sites spécifiques aux marques afin de leur offrir de la lisibilité.
Drupal 8 a été choisi pour cette plateforme, car Drupal est nativement multisite, industrialisable via Drush, Composer ou Drupal Console, et peut évoluer vers du e-commerce via des modules spécifiques. Drupal offre plusieurs possibilités pour répondre à la problématique d’usine à sites / multisite. Toutes ces possibilités sont adaptables en fonction du besoin : s’il y a un besoin fort d’identité graphique visuelle et de gouvernance entre les différents sites, ou si l’on souhaite une gouvernance et une uniformisation des sites. Tout est question de besoin initial.
Pour finir la journée, nous avons vu la forge logiciel en Drupal 8 de Reussir Agra. Il s’agit d’une usine à sites regroupant différents sites sur leurs différents univers. Il y a eu différents choix de conception pour l’usine, comme le faire en Drupal, utiliser Domains, ou alors faire du développement custom. Le choix du developpement custom a été retenu pour la forge, afin de répondre aux différents besoins fonctionnels et d’industrialisation. En résumé, grâce à cette forge, Reussir Agra a comblé ses nombreuses années de retard qu’avait son site en termes d’industrialisation et de fonctionnel.
Pour conclure cette première journée, cette année, l’un des principaux sujets Drupalcamp étaient les usines à sites / multisite. Il est intéressant de voir les différentes approches de la communauté, ce qui nous a conforté sur nos choix techniques sur le sujet.
A suivre, la suite de l’événement dans un second article consacré à la seconde journée.
Pour aller plus loin
Usines à sites : comment faire les bons choix ?
Visionner le webinarDéveloppeur Backend