Retour sur la Drupal Europe 2018

Cet événement n'est pas une Drupal Con, mais un paliatif à la pause forcée des Drupal Con en Europe causée par une perte financière, une baisse de fréquentation et le besoin de prendre un temps de réflexion pour trouver une nouvelle formule qui fonctionnerait mieux en Europe (voir l'article de l'association à ce sujet ).


La Drupal Europe a été initiée et soutenue par la communauté européenne ainsi que la Drupal eV (l'association de Drupal d'Allemagne) et la Drupal Europe Foundation. Leur objectif est de conserver un événement Drupal en Europe pour se rencontrer, échanger et partager. Pour cela ils ont donc repris ce qui a fait les succès des Drupal Con, et revoir ce qui ne fonctionnait plus.

Et bonne nouvelle, le pari est réussi ! Un événement sans accrocs, des comptes sains, et de très bons souvenirs.

En route pour la Drupal Europe

Tout commence par un voyage, nous nous retrouvons donc à l'aéroport de Nantes Atlantique, direction l'est de la France, vers cette petite ville nommée Darmstadt en Allemagne.

L'Équipe.tech dans les airs

Premier jour, alors que nous arrivons au Darmstadtium pour prendre notre badge, nous avons tout de suite la surprise de nous retrouver côte à côte avec Dries Buytaert, le fondateur de Drupal et co-fondateur de Acquia. Nous découvrons alors les lieux au grès des premières conférences, et on peut dire que non seuleument les lieux s'y prêtent très bien, mais que l'organisation y est sans failles.

Pre-note

Un des moments phares des Drupal Con est la pre-note. Cette année, la pre-note a un format complètement différent. À la place du traditionnel spectacle, Jeffrey A. Mc Guire nous présente en compagnie de représentants de 5 pays d'Europe ce que chacun, avec la culture de son pays, apporte à la communauté de Drupal. Cela reste une pre-note, il est donc bien entendu important de passer cet événement au second degré.

Dries note

Il y aurait beaucoup, beaucoup, beaucoup à dire. Le plus simple reste de jeter un oeil à l'enregistrement. S'il y a quelquechose à voir de l'événement, c'est bien cette présentation de Dries !


Pour ceux qui voudraient tout de même un résumé, en voilà un succint:

  • Tout d'abord, Dries nous rappelle la stratégie actuelle pour Drupal avec 4 axes:
    • Promouvoir Drupal
    • Améliorer Drupal pour les éditeurs de contenu
    • Améliorer Drupal pour les responsables
    • Améliorer Drupal pour les développeurs
  • Cette stratégie est ensuite divisée en différentes initiatives, chacunes aillant sa roadmap.
  • Dries nous montre alors le nouveau profil de démonstration disponible avec Drupal 8.6.x: Umuami. Celui-ci embarque les derniers modules experimentaux qui améliorent l'expérience d'édition et montre ce vers quoi temps Drupal :
    • Une nouvelle expérience de construction de page
    • Une librairie média avec le support de la vidéo à distance
    • La publication du contenu selon différents environnements
    • Une prévisiualisation complète du site
    • Un nouveau profil de démonstration
  • Nous abordons ensuite les améliorations sur le plan Javascript, mais également l'objectif de passer Drupal en API-First, notamment avec une refonte de l'administration basée sur React.
  • Il compare ensuite les progrès réalisés pour proposer une installation simplifiée et rapide de son premier site Drupal. On passe ainsi de plus de 15 minutes (avec abandon) pour un non initié à 1 minute et 27 secondes maintenant.
  • Un des points important, Dries nous parles du rythme de mise à jour. Là où l'on avait au préalable 1 mois pour se mettre à jour avant d'avoir un Drupal en version non maintenue, nous disposons désormais de 6 mois entre deux versions mineures, et les versions mineures recevront des correctifs de sécurité pendant 12 mois.
  • La grosse annonce de cette note est bien entendu la date de la sortie de Drupal 9.x. Drupal 8.x s'appuie sur les composants Symfony 3 qui ne sera plus maintenu en novembre 2021, ce qui annonce également la fin de vie de Drupal 8. Pour laisser le temps aux entreprises de ce mettre à jour, Drupal 9 sera donc publié 1 an avant cette date limite.
  • Une autre suprise durant l'annonce de la sortie de Drupal 9 et de la date de fin de Drupal 8 est le repoussement de la date de fin de vie de Drupal 7 qui coincidera finalement avec la fin de celle de Drupal 8 et non dès la sortie de Drupal 9: soit en novembre 2021.
  • Pour la contribution, Gitlab est officiellement annoncé comme étant la future plateforme utilisée, ceux-ci développant actuellement des composants permettant à la communauté Drupal de continuer à développer la solution avec leur workflow habituel. Nous avons hâte de pouvoir tester cela !
  • Il termine finalement par l'annonce du prochain Drupal Con à Amsterdam du 28 octobre au 1er novembre 2019.
Annonce Drupal Con Amsterdam 2019

L'Équipe.tech à la Drupal Europe


L'Équipe.tech a eu le plaisir de présenter 2 conférences à cet événement.

Durant 1 an, Fabien CLÉMENT a accompagné une équipe de Niji sur la réalisation d'un projet Drupal Commerce métier.
L'objectif de ce site est de pouvoir présenter à la fois la partie éditorial/corporate de la société, mais également de pouvoir porter son métier sur internet: la réservation de places de parking.

Conférence Commerce 2.x pour les besoins métiers - Fabien Clément

Ce retour d'expérience a rassuré les personnes présentes sur la solution Commerce de Drupal par sa flexibilité et son potentiel.


Open Source e-commerce solutions: Arrêtons de comparer et analysons par Mathieu le Cain

Régulièrement, des articles sont publiés pour comparer des solutions. Parfois impartial, souvent orienté, il s'agit généralement de comparaisons, de chiffres, d'avis personnels ou marketings qui visent à orienter sa décision sur telle ou telle solution.
Mathieu Le Cain nous présente donc ces solutions sous un angle différent et nous pousse à nous poser les bonnes questions au moment du choix de notre outil, au delà de tous les chiffres que l'on peut trouver.

Open Source e-commerce solutions: Arrêtons de comparer et analysons par Mathieu le Cain

L'assistance a salué cette présentation pour son originalité et sa pertinence, sujet rarement abordé lors des événements et qui aura réussi a interpeller son auditoire.


Conférences

Les conférences étaient sur un format de 40 ou 20 minutes, avec 10 sessions parallèles. Autant vous dire que nous n'avons pu assister qu'à une infime partie de celles-ci, dont voici quelques restitutions.

Professional Drupal hosting with Kubernetes and Helm

Docker est un sujet récurrent. Florian Lorétan nous présente comment Wunder orchestre ses containers dockers pour de la production avec l'aide de Kubernetes et Helm.

Kubernetes est un outil open-source soutenu par Google qui permet d'automatiser ses déploiements, la mise à l'échelle et la gestion des applications conteneurisées.
Helm est un outil open-source qui aide à gérer les applications Kubernetes.

Peu de chose à restituer par écrit sur cette présentation, Florian nous a avant tout montré comment fonctionnait cette solution et donné quelques exemples de configuration qu'il avait fait, pourquoi, et le résultat obtenu. Ces solutions, couplées à Gitlab semblent être de bonnes solutions pour passer du développement à la production de manière automatisée en passant par des tests et jalons, le tout dans un environnement maitrisé et réplicable.

Remarque non négligeable, il a signalé que les développeurs n'utilisaient pas Kubernetes sur leur environnement local (Kubernetes n'étant pas fait pour ça), mais un outil nommé Lando, lui-même basé sur les containers docker.

CMI 2.0 updates and the best of config management today

CMI (Configuration Management Initiative) ou CM (Configuration Management).

Faisons déjà un bref rappel, pourquoi parlons-nous parfois de CMI, et d'autre de Configuration Management ?
Tout simplement parce que le premier n'est que l'initiative qui travaille sur le second. Ainsi l'on souhaite parler du groupe de travail, nous parlons de CMI, et si nous souhaitons parler de la fonctionnalité, on parle alors de CM.

Fabian Bircher nous a présenté les différentes raisons et façons d'utiliser le Configuration Management. C'est utile, c'est utilisé et cela répond bien au besoin. Il nous a également rappelé les différents modules utilisés pour pallier aux manquent de CMI 1.0, à savoir config_filter, config_split etc.

Il y a encore quelques améliorations à faire pour pallier à l'ensemble des besoins, c'est sur cela que ce penche cette nouvelle initiative CMI 2.0:

  • Nous avons ainsi pu voir dans quel état était la contribution sur l'installation d'un site depuis une configuration existante. Et on est plutôt proche d'une conclusion, un seul ticket reste pour régler quelques problématiques relatives à l'installation via un profil.
  • Il sera possible d'avoir différentes configurations dans différents environnements sans module tiers, et sans limitations.
  • La possibilité de faire des mises à jour sans sur-charger la configuration existante des modules ou distributions, sans l'utilisation de modules additionnels tels que config_filter.
  • Un point important concerne la documentation, l'équipe étant consciente qu'il est indispensable de fournir des exemples de workflow ou de la manière de développer ses modules en utilisation la CM.

Pas de surprises donc mais de bons rappels avec quelques écrans d'exemples.

Browser testing with Nightwatch.js

Durant cette présentation, Salvador Molina Moreno nous parle de Nightwatch.js. Il s'agit d'un outil javascript qui permet de faire des tests fonctionnels en se basant directement sur un navigateur (Google Chrome ou Mozilla Firefox).

Cette solution permet donc d'écrire ses tests en javascript et a l'air abouti. il est très simple de faire des tests visuels ou sur des applications plus complexes possédant une bonne dose de javascript et son intégration avec Selenium est un réel plus. Le fait de pouvoir choisir son driver (Chrome ou Firefox) permet même de vérifier le comportement sur les 2 navigateurs.

Malheureusement, son intégration à Drupal est encore limitée. On est donc loin de ce que l'on peut déjà faire avec des tests en PHPUnit par exemple, standard dans Drupal. Toutefois ce n'est que partie remise. Auparavant, la solution PhantomJS était utilisée, couplée à PHPUnit, mais celle-ci n'est plus maintenue et montre quelques instabilités, aussi la communauté travaille a l'intégration et à un migration possible vers l'utilisation de nightwatch.js. Gageons que son utilisation devrait donc être de plus en plus simple.

Decoupling Drupal with GraphQL & Twig

Nous parlons de plus en plus de découplé. Plusieurs solutions existent, cela étant, la principale problématique reste alors de permettre d'accéder simplement à la donnée souhaitée. Philipp Melab nous présente comment son équipe a utilisé GraphQL, et plus précisément GraphQL dans twig.

Les avantages de cette solution pour lui sont:

  • GraphQL permet d'être beaucoup plus flexible que de mettre en place des services REST.
  • Cela réduit le nombre de requêtes et d'aller/retour au serveur pour récupérer des données.
  • Évite des préprocessing (exécution de code en amont du rendu).
  • Une distribution claire des responsabilités (d'un point de vue de développement).
  • La possibilité d'utiliser l'atomic design.

Cependant, chez L'Équipe.tech et comme l'ont reflétés des questions posées à juste titre lors de la présentation, nous ne partageons pas l'ensemble de ces points de vue.
Certes GraphQL est un outil très puissant et indispensable lorsque l'on souhaite réaliser du découplé et des applications en manipulant de nombreuses données imbriquées. Toutefois, l'intégrer dans les templates est autant une hérésie que l'est de faire une requête SQL dans les templates.

Pire encore car:

  • Il rajoute une couche d'abstraction supplémentaire.
  • Il ne tire par partie des différentes couches de caches présentes lors du preprocessing ou de la construction des tableaux de rendu.
  • Il ne distribue pas les responsabilités, mais encourage une pratique pourtant jusqu'à présent clairement reconnue comme mauvaise.

En bref, GraphQL oui, il faut en manger, et mangez-en pour du découplé, mais s'il vous plait, laissez les fichiers twig tranquille !

Headless Drupal Commerce

Nous retrouvons Matt Glaman, un des développeurs principal de la solution Drupal Commerce chez Commerce Guys qui nous parle de Drupal Commerce découplé. L'objectif actuel pour Commerce Guys est de fournir un Commerce découplé pour les raisons suivantes :

  • Cela permet d'avoir des interfaces plus rapides et réactives.
  • Cela résout des problématiques complexes de performances de Drupal.

Un panier découplé

Matt s'est dans un premier temps penché sur le découplage du panier et de la mise au panier, poussé par les problématiques suivantes:

  • Les paniers créent chacun une session, ce qui empêche l'utilisation de reverse proxies et du système de cache interne des pages.
  • Le fait de ne pas utiliser le cache pendant un temps important sollicite de manière lourde le serveur lors du rendu des pages.
  • Dans le cas de multiples ajouts au panier sur un site ou de produits liés, le cache prend alors des mesures énormes.

Dans ce cas, découpler l'expérience panier permet de supporter des milliers de consommateur concurrents. Qui dit de meilleurs performances entraine plus de conversions.

Et bonne nouvelle, Drupal Commerce est de nature découplé!

Des modules à l'essai

Pour ceux qui souhaitent aller un peu plus loin et voir le travail en cours sur le découplage, deux modules sont en cours de développement:

  • Cart Flyout: L'intégration en cours d'un panier découplé. Pour cela, il utilise le module REST et du Backbone/Underscore qui font partie des librairies du coeur de Drupal. Le fait de ne pas avoir de panier sur les pages produits permet de réduire de moitié le temps de chargement.
  • Checkout API: Le but de ce module est de permettre de gérer le panier et le processus d'achat en dehors de Drupal Commerce.

Le module JSON API, plus généraliste permet de récupérer les produits individuellement. En revanche, cela pose problème pour les produits sous forme de bundles.

Un Drupal Commerce complètement découplé

L'objectif de Commerce Guys est de fournir une solution Drupal Commerce complètement découplée pour la fin 2019.

La prochaine étape sera donc de fournir une boutique de démonstration complètement découplée (fonctionnalité de catalogue, panier, processus d'achat, paiement).

L'asso Drupal

Nous avons également participé à quelques ateliers au sujet de l'association Drupal. Une restitution de ces échanges feront l'objet d'un futur billet.

Contribution

Entre 2 conférences, Floris Moriceau a poursuivi sa contribution au nouveau site Drupal.fr. Ses échanges avec le bureau de Drupal ont mis en évidence un fort intérêt à ce projet, celui-ci souhaitant pouvoir s'en servir de référence pour les différentes communautés locales.

Nous sommes ravis que cet effort français d'avoir un outil pour faciliter les échanges et la visibilité de Drupal prenne échos au sein des autres communautés.


Malheureusement, faute de mains, ce projet prend du temps. N'hésitez pas a contacter Floris si vous avez quelques talents d'intégration et souhaitez y contribuer, lui et l'Association Drupal France et Francophonie en seront ravis!


Darmstadt

Bien entendu, comme tout événement qui se respecte, nous avons été amené à découvrir et partager la vie locale.

Le darmstadtium se prête très bien à ce genre d'événements avec de nombreuses salles de bon dimensionnement qui a permis de contenir nos dizaines de conférences simultanées, BoFs et talk. Au centre de ces salles se trouvait de grand espaces sur 2 étages où nourriture, boissons et café abondaient et permettaient ainsi de se restaurer, rencontrer et échanger.

Drupal Europe - Darmstadtium

Première surprise en arrivant et tout au long de notre séjour, contrairement à nos compatriotes, les allemands sont très à cheval sur la législation et les règles de bienséance. Traverser sur un passage piéton alors que le feu piéton est au rouge ne se fait pas, vous risquez que l'on vous fasse les gros yeux, qu'on vous interpelle, voir que l'on vous retienne! À l'inverse, vous pouvez traverser en toute sécurité sur un passage piéton sans feu, les automobilistes vous laisserons passer sans difficultés, et aucun n'y stationnera, même à l'arrêt en circulation. On aimerait pouvoir en dire autant chez nous!

Nous avons croisé de nombreux parcs à Darmstadt, et il est clair que ces parcs sont un lieu de vie pour leurs habitants. Jeux, soirées, sport, détente, tout s'y passe. On retrouve même au milieu des plus grands parcs un coin restauration/buvette pour des rencontres typiquement allemandes.


Un grand bravo à toute l'équipe de Drupal Europe qui nous a fourni cette année un événement de qualité ! Et heureux d'avoir partagé tous ces moments avec la communauté.


  • Drupal Europe - Soirée communautaire - Photo : Jean Fenouil
    Drupal Europe - Soirée communautaire typique parc Photo : Jean Fenouil
  • Drupal Europe - Soirée communautaire - Photo : Gábor Hojtsy
    Drupal Europe - Soirée communautaire typique parc Photo : Gábor Hojtsy
  • Drupal Europe - Brasserie typique - Photo : Jean Fenouil
    Drupal Europe - Brasserie typique Photo : Jean Fenouil
  • Drupal Europe - Vue auberge de jeunesse - Photo : Amazee Labs
    Drupal Europe - Vue auberge de jeunesse Photo : Amazee Labs
  • Drupal Europe - L'Équipe.tech
    Drupal Europe - L'Équipe.tech

La suite


Le prochain Drupal Con européen a été annoncé, on se retrouvera donc à Amsterdam du 28 octobre au 1er novembre 2019.


Drupal Europe - Photo communautaire