Du Serverless aux jeux vidéo, en passant par la cryptographie : résumé d’un Forum PHP 2018 très éclectique

Du Serverless aux jeux vidéo, en passant par la cryptographie : résumé d'un Forum PHP 2018 très éclectique

Sans surprise, et toujours avec la banane, notre équipe était présente au Forum PHP 2018 organisé par l’AFUP, un des événements majeurs de la communauté PHP francophone.

Nous revenons pour vous sur ce que nous avons appris durant ces deux jours.

PHP et son écosystème

Les copains de Monsieur Biz nous ont parlé de Sylius, le framework e-commerce basé sur Symfony. La conférence était orientée retour d’expérience sur leur transition Magento vers Symfony, plutôt que sur une présentation détaillée de Sylius. Ce qu’il faut en retenir c’est que contrairement à Magento où tout est prévu pour vous, la philosophie de Sylius est de vous donner les fondations, les 80% les plus importants. À vous ensuite d’ajouter les fonctionnalités liées aux spécificités de votre métier. Sylius étant basé sur Symfony, il profite de tout l’écosystème : tests, fixtures, bundles, … Enfin bravo à Maxime 🤩 pour sa première conférence !

Autre copain, Aurélien nous a donné les clés pour maintenir et faire évoluer une API GraphQL dans le temps, en se basant bien sûr sur son expérience de conception et de maintenance de l’API de l’éditeur SaaS Cap Collectif. Même si retirer ou modifier un champ dans une API GraphQL est relativement simple car il est possible de traquer si un champ est utilisé ou non, il reste nécessaire de prévoir une période de dépréciation. Dans cette optique et pour éviter que des changement cassants soient déployés, ils ont développé et tout juste open-sourcé un outil nommé GraphQL Doctor qui va inspecter les changements de schéma et alerter les développeurs directement sur GitHub.

graphql-doctor

L’écosystème Symfony était à nouveau bien représenté cette année. Nous avons eu une conférence de présentation de Symfony4 par Titouan Galopin mais également du tout nouveau composant symfony/messenger. Stéphane Hulard nous a rappelé que le composant est considéré comme expérimental. Il devrait être stabilisé pour la version 4.3 de Symfony. Il permet de simplifier l’interconnexion avec un bus de messages (AMQP, …). Ce composant semble vraiment très intéressant et nous avons hâte de l’utiliser sur nos projets.

Kévin Dunglas a pris soin quant à lui de nous raconter l’historique d’HTTP, protocole très simple en pur ASCII, pour mieux nous présenter les intérêts multiples d’HTTP/2, multiplexé, binaire et sécurisé ! Les nombreux avantages d’HTTP/2 sont encore à ce jour rarement exploités : HTML5 Links, Preload et Ressource Hints sont pourtant très intéressants pour les performances. De ce constat est né un composant Symfony permettant très simplement de tirer profit de ces avantages : WebLink ! Autre nouveauté, Kévin travaille depuis plusieurs mois sur un protocole (et son implémentation) de push serveur vers client basé sur les SSE, vous pourrez en apprendre plus sur le Github du projet, mais une intégration au Messenger de Symfony et à API Platform est en route. Une démo est également disponible.

Du côté serveur

Tout le monde en parle et tous les acteurs majeurs du cloud s’y sont mis : le Serverless est sur toutes les lèvres. Mais avec PHP, il y a quand même un petit problème… il n’est supporté nativement nulle part ! Matthieu Napoli nous a expliqué en quoi PHP était malgré cela plutôt adapté à ce type de déploiement et nous a présenté sa librairie Bref, dont les objectifs sont de :

  • fournir l’infrastructure pour supporter PHP (un Dockerfile et un handler JavaScript) ;
  • faire le pont complet avec AWS Lambda (compiler / déployer / invoquer, lire les logs…) ;
  • simplifier l’écriture d’application CLI ou Web ;
  • intégrer Symfony et Laravel ;
  • ajouter une superbe fonction raccourcis λ() 😊.

Le Serverless a plein d’applications très concrètes pour des workers par exemple, ou une tâche backend intensive, mais n’a pas vocation à remplacer les hébergements traditionnels. Par exemple, vos CSS et autres assets n’y auront pas leur place !

L’autre outil qui gagne en maturité dans le cloud c’est Kubernetes, dont Pascal Martin nous a parlé avec son retour d’expérience lié à M6 Web. Après un rapide rappel sur les containers, sa présentation a permis d’exposer le fonctionnement de Kubernetes, ses avantages et ses inconvénients. Nous retenons qu’il n’existe pas encore de solution élégante pour monter un projet Kubernetes en local, mais que l’écosystème bouge vite ! Si la migration de M6 Web vous intéresse, Pascal est actuellement en cours d’écriture d’un livre sur le sujet !

Pas que du PHP au Forum PHP

De nombreux talks ne concernaient pas directement PHP cette année.

Anne-Laure de Boissieu et Éric Daspet nous ont par exemple raconté leur histoire ; l’histoire d’une reconversion professionnelle et du mentorat dont Anne-Laure a pu bénéficier. C’est un modèle très vertueux et inspirant, et qui a très bien fonctionné dans ce cas précis.

Laurent Victorino est quant à lui développeur de jeux vidéo, pas grand chose à voir avec PHP donc ! Durant sa session nous avons découvert quelques secrets et anecdotes de fabrication de jeu vidéo bien connus, comme Mortal Kombat, Mario, Street Fighter, Civilization, etc. Notre préférée c’est vraiment dans le jeu Jak and Daxter que nous l’avons trouvée : les développeurs ont codé une fonction qui fait trébucher le joueur à la demande, dans le but de pouvoir donner à la console quelques secondes de répit pour charger les assets lorsque le joueur se déplace trop vite ! BRILLANT ! Nous avons aussi pu expérimenter en live une petite fourberie, en croyant à une conférence interactive, qui ne l’était pas.

Plus pratique dans notre quotidien de développeur Web, David Buchmann nous a parlé de Bash ! Nous manipulons tous quelques commandes de base mais certaines astuces ne sont pas forcément connues, pourtant Bash est partout : dans nos Dockerfile, dans Travis, dans nos déploiements… Les quelques commandes que nous devrions tous connaître :

  • set -x : pour afficher la commande avant de l’exécuter ;
  • set -e : pour stopper le script en cas d’erreur (plutôt que de passer à la commande suivante) ;
  • set -o pipefail : Pour stopper l’exécution d’une commande si un des éléments d’un pipe est en erreur, qui peut éviter par exemple que rechercher une balise HTML avec grep dans un retour 404 de wget ;
  • [ ] et [[ ]] : les différences entre ces deux types de conditions ;
  • `cmd` : l’utilisation de ` pour interpréter une commande « inline »…

David Buchmann présentait également, pour aller plus loin, un petit outil en ligne pour décrypter les commandes bash un peu complexes ou verbeuses : https://explainshell.com/.

Les bases de la cryptographies étaient présentées par Julien Pauli, dans un talk assez technique, présentant les stratégies les plus courantes. On y apprenait par exemple comment une clé de quelques bits pouvait protéger, grâce au LFSR une chaîne extrêmement longue, ou encore comment fonctionnait la protection des DVD, et comment elle a pu être crackée en quelques secondes une fois la clé découverte. Les grands exemples de la conf sont disponibles sur Github.

Les médias en force

Outre la conférence de Pascal Martin sur Kubernetes, l’équipe technique de M6 a animé deux autres conférences. La première sur les générateurs et la programmation asynchrone, introduction à la nouvelle bibliothèque Tornado, qu’ils viennent d’open-sourcer. Cette librairie vise à simplifier l’écriture de scripts utilisant la programmation asynchrone en proposant des adapters pour différentes implémentations Amp, ReactPHP, …

La dernière conférence de M6 concernait un retour d’expérience sur la migration de 6play en une solution disponible pour 4 pays (France, Belgique, Hongrie, Croatie). Nous ne pouvons pas vraiment parler de 6play en marque blanche mais du mécanisme mis en oeuvre pour gérer l’internationalisation.

Radio France (par Jean-François Mougnot) nous a enfin fait un retour très instructif sur l’évolution de son offre numérique. D’un monolithe basé sur Drupal incapable de gérer la charge à un ensemble de microservices, de composant front (styleguide, …) permettant de mieux faire évoluer le SI et de rendre plus heureux les éditeurs mais également les internautes.

Mentions spéciales

Cessons les estimations, c’est le mantra de Frédéric Leguédois, et son talk – ou plutôt son one man show – était absolument génial. Mention spéciale donc pour ses parallèles très bien trouvés. Par exemple demander à son épicier combien nos emplettes vont coûter avant de lui donner notre liste de courses nous paraît incongru pourtant il faut bien l’avouer, nos clients aimeraient bien le faire !

Pour finir, nous avons profité de ce Forum PHP pour présenter sur un stand l’outil de gestion de redirections et d’optimisation SEO « redirection.io », que JoliCode développe depuis plusieurs années. L’audience du Forum PHP étant principalement constituée de développeurs, le sujet des migrations d’URLs lors de la refonte de sites, ou la mise en place de plans de redirections massifs a parlé à la plupart des personnes qui sont venues discuter sur notre stand. Et la possibilité de suivre les erreurs dans le temps et de les corriger en temps réel a suscité un réel intérêt 😎.

Merci encore à l’AFUP pour cette organisation au poil, une soirée communautaire pleine d’échanges et de bon temps, et une très belle sélection de talks. Vivement l’année prochaine ! Enfin, sachez que les présentations étaient filmées et seront mises en ligne prochainement.

Photo par Julien Pauli

blog comments powered by Disqus