Paris 2020 23-24 SEPTEMBRE

Planning

23 sept. 2020

  Track A
08:00
09:00
Retrait des badges et accueil petit-déjeuner
09:00
09:15
Mot de bienvenue
09:15
09:55
Keynote
Fabien Potencier
10:00
10:40
Un service, késako ? Conseils pour mieux utiliser l'injection de dépendance
Romaric Drigon
10:40
11:10
Pause ☕ 🥐
11:10
11:50
TBA
11:55
12:35
Le cache, ça paie !
Hubert Lenoir
12:35
14:30
Déjeuner
14:30
15:10
Migrer vers une architecture micro-services : points de contrôle pour une migration réussie
Alexandre Salomé
15:15
15:55
La compilation JIT, le fil rouge vers PHP 8
Valentine Boineau
15:55
16:25
Pause ☕ 🥐
16:25
17:05
Monolithe Modulaire : Pourquoi ? Comment ?
Timothée Barray
17:10
17:50
Redis, ce n'est pas que pour le cache
Grégoire Pineau
17:50
18:30
Lightning talks
18:30
21:30
Apéritif communautaire

24 sept. 2020

  Track A
08:00
09:00
Accueil petit-déjeuner
09:00
09:40
Mettre la cryptographie au service de vos apps Symfony
Nicolas Grekas
09:45
10:25
API: Spécifications, Sécurité et Monitoring
Danielle KAYUMBI BONKOTO
10:25
10:55
Pause ☕ 🥐
10:55
11:35
Stream processing: un autre type d’architecture
Samuel ROZE
11:40
12:20
Retour d'expérience sur l'optimisation de performance de la stack Symfony
Bastien Jaillot
12:20
14:15
Déjeuner
14:15
14:55
Le frontend pragmatique pour les développeurs backend
Titouan Galopin
15:00
15:40
WebAuthn – Technologie et intégration dans un projet Symfony
Stefan Richter
15:40
16:10
Pause ☕ 🥐
16:10
16:50
HYPErmedia : tirer parti d'HTTP/2 pour créer des API mieux conçues, et plus rapides
Kévin Dunglas
16:50
17:00
Mot de clôture

Keynote

Fabien Potencier - français - Keynote - 23/09/2020, 09:15

Keynote

Un service, késako ? Conseils pour mieux utiliser l'injection de dépendance

Romaric Drigon - français - Track A - 23/09/2020, 10:00

Dans Symfony la notion de service s'est imposée. Ils sont faciles à utiliser, il y en partout, c'est facile à déclarer avec l'autowiring et l'autoconfiguration, et pourtant, la notion n'est pas évidente à expliquer. Au jour le jour, on se demande ce que l'on met dedans, comment structure, comment diviser. Souvent, on cherche à les nommer et on ne trouve pas. Et parfois, on peste qu'ils sont difficiles à tester... Mais au fond, c'est quoi un service ? Est-ce qu'on ne bourrerait pas trop de choses dans cette notion ? Ou au contraire, est-ce qu'on n'oublierait pas l'essentiel ?

Ensemble, nous allons voir d'où vient cette fameuse notion de service, et quels sont les différents types. Nous allons chercher des réponses concrètes à ces questions via des patterns parfois à re-découvrir, des best practises dans la littérature, et des retours d'expériences bonnes ou mauvaises.

Le cache, ça paie !

Hubert Lenoir - français - Track A - 23/09/2020, 11:55

Parce que vos serveurs méritent toute votre attention, il faut penser à leur santé. Et rien de mieux que du cache pour les soulager de tâches répétitives.

Que ce soit du cache HTTP, l'utilisation d'un CDN ou encore côté applicatif avec le composant Cache, les solutions ne manquent pas.

Ce retour d'expérience sur un projet à destination de plusieurs centaines de milliers d'utilisateurs abordera les différentes solutions adoptées pour supporter la charge malgré les différentes contraintes techniques.

Migrer vers une architecture micro-services : points de contrôle pour une migration réussie

Alexandre Salomé - français - Track A - 23/09/2020, 14:30

J'ai passé ces dernières années dans différentes sociétés, qui toutes essaient d'accomplir la même chose : migrer vers une architecture orientée micro-services. Cette migration dans laquelle elles se sont toutes engagées ont beaucoup de similitudes, mais aussi de grosses différences. Comme tout long voyage, une seule chose est sûre : vous savez quand vous commencez, mais vous ne savez jamais vraiment ce qu'il se passera vraiment, ni ce que vous trouverez sur votre chemin ! Pour réussir votre voyage, il est important de savoir où vous allez, les différents choix qui s'offrent à vous et les bons éléments pour prendre les bonnes décisions. Cette conférence répondra aux questions essentielles que sont : comment séparer son code, comment gérer les tests multi-applications, comment analyser un bug, comment gérer les appels d'APIs, comment s'intégrer avec les tiers, et toutes les autres questions que vous devez vous poser si vous avez décidé de migrer.

La compilation JIT, le fil rouge vers PHP 8

Valentine Boineau - français - Track A - 23/09/2020, 15:15

Avec l'arrivée de PHP 8, la compilation "Just-In-Time" fait parler d'elle. Depuis les années 80, tous les langages interprétés cherchent à atteindre ce graal supposé de performance. Lors de cette conférence, je vous propose de remonter le temps jusqu'à PHP 5.5, le temps d'un rappel sur "opcache", disponible nativement depuis lors. Nous analyserons ensuite chaque progrès de performance, version après version. À travers des exemples de code repris depuis Symfony, nous verrons que toutes les améliorations désormais acquises (opcache, boost PHP7, preloading, etc.) sous-tendent un même fil rouge : permettre un jour la compilation JIT. PHP 8 nous permet enfin de toucher au but. Le voyage en valait-il la peine ? C'est ce que nous essayerons d'établir.

Monolithe Modulaire : Pourquoi ? Comment ?

Timothée Barray - français - Track A - 23/09/2020, 16:25

La mode des microservices est retombée. On peut enfin prendre du recul et se demander si vraiment c'est une solution adaptée à toutes les situations... (spoiler alert: non). Alors comment structurer des applications qui grossissent au fur et à mesure ? Comment sortir la tête de l'eau quand on a un legacy de 10 ans et qu'on souhaite en reprendre le contrôle ? La solution pour moi c'est le monolithe ! Mais modulaire... Et ça tombe bien car Symfony aujourd'hui peut grandement nous y aider ! En 2 temps nous verrons : Comment bien organiser son code à l'intérieur d'une app Symfony pour le rendre aussi indépendant que possible et se donner la possibilité d'y mettre l'architecture qu'on souhaite (DDD, Crud, Hexagonal, whatever). Et comment s'y prendre quand on a déjà un monolithe mais pas modulaire pour en reprendre le contrôle. On parlera alors de différentes stratégies concrètes pour s'en sortir sans tout révolutionner du jour au lendemain.

Redis, ce n'est pas que pour le cache

Grégoire Pineau - français - Track A - 23/09/2020, 17:10

Redis sait faire bien plus que du stockage clé/valeur simple. Grâce à des structures de données évoluées et a ses performances hors du commun, il devient un allié très puissant à ajouter dans sa stack préféré.

Des statistiques à la persistance de session en passant par les leaders board ou la gestion de coordonnées, vous ne verrez plus ce SGBD du même oeil !

A travers une série d'exemples, des trucs & astuces, nous verrons comment utiliser Redis depuis une application PHP.

Mettre la cryptographie au service de vos apps Symfony

Nicolas Grekas - français - Track A - 24/09/2020, 09:00

Hacher les mots de passe, chiffrer les clefs applicatives, voire chiffrer les données elles-mêmes. Les dernières versions de Symfony mettent tous les outils nécessaires à disposition pour protéger vos utilisateurs contre les fuites ou autres vols de données.

SHA512, Argon2id, BLAKE2/3, ChaCha20-Poly1305, etc. derrière ces noms barbares se cachent des algorithmes qui fondent les nouveaux standards de protection de la vie privée. Depuis PHP 7.2, l'extension "sodium" donne accès sans difficulté à toute l'intelligence des spécialistes en cryptographie. Son API volontairement simplifiée est un trésor pour le reste du monde. Tout y est.

Lors de cette conférence, je vous propose de démystifier ces outils et l'utilisation qui en est faite dans Symfony.

API: Spécifications, Sécurité et Monitoring

Danielle KAYUMBI BONKOTO - français - Track A - 24/09/2020, 09:45

Les API (Application Programming Interfaces) sont au coeur des systèmes d'information et sont devenues un moteur important de croissance des entreprises (monétiser les données, forger des partenariats rentables, ouvrir de nouvelles voies d'innovation et de croissance). Il est donc important de comprendre les fondamentaux pour mieux exploiter leurs potentiels. Comment concevoir une API en suivant les spécifications ? Comment sécuriser les accès aux APIs ? Comment mesurer les métriques et gérer les alertes ? Au cours de cette conférence nous présenterons les différentes solutions et leurs implémentations en Symfony, en analysant les principales étapes du cycle de vie d'une API: conception, documentation, sécurité, logs et monitoring.

Stream processing: un autre type d’architecture

Samuel ROZE - français - Track A - 24/09/2020, 10:55

Votre produit grossi, vous avez plusieurs (micro-)services et/ou partagez des données avec des partenaires. Plutôt que d’échanger des fichiers CSV ou d’utiliser uniquement des APIs, il existe une autre option : utiliser un "message bus" et faire du “stream processing”.

Après avoir décrit l’intérêt d’une telle architecture, nous discuterons de ses conséquences telles que le besoin d’idempotence dans nos “handlers” Symfony Messenger, comment garder une “strong consistency” et comment fonctionnent les bus qui garantissent l’ordre des messages.

Retour d'expérience sur l'optimisation de performance de la stack Symfony

Bastien Jaillot - français - Track A - 24/09/2020, 11:40

Sur un projet Symfony avec une stack assez commune (API avec APIP, beaucoup d'entités doctrine, plein de fichiers de config YAML, environnement de développement sur docker), le projet grossissant, nous avons commencé à subir des ralentissements, aussi bien en environnement de développement qu'en production.

Souhaitant proposer une meilleure expérience de développement à mes équipes, équipé d'une superbe frontale (coucou Blackfire), j'ai étudié en profondeur le fonctionnement interne de Symfony à la recherche d'améliorations possibles. Cela a débouché sur de nombreuses pull-requests et un impact conséquent sur les performances.

Cette présentation retracera ce parcours initiatique dans le fonctionnement interne de Symfony, l'outillage utilisé et les leçons apprises. Elle sera à la fois pratique (quoi / comment / pourquoi chercher) mais aussi théorique (fonctionnement interne de Symfony sur quelques chemins critiques).

Le frontend pragmatique pour les développeurs backend

Titouan Galopin - français - Track A - 24/09/2020, 14:15

Le développement front-end devient de plus en plus vaste est complexe. Cela crée de nombreuses nouvelles opportunités... mais cela peut aussi être assez impressionant !

L'objectif de cette conférence est de vous fournir des idées et des conseils pragmatiques sur les différentes techniques pour mettre en place un environnement de développement frontend riche et moderne avec Symfony, React, Bootstrap et Twig.

Nous aborderons les différentes options pour organiser votre code et le transfert des données entre votre frontend et votre backend et nous évoquerons les différents avantages et inconvénients de chacune.

Fabriquons des interfaces de qualité pour nos utilisateurs !

WebAuthn – Technologie et intégration dans un projet Symfony

Stefan Richter - français - Track A - 24/09/2020, 15:00

Nous vivons dans un monde où chacun utilise chaque jour différents mots de passe afin de s’identifier auprès des services qu’il utilise. Ce sont donc naturellement ces mots de passe qui font actuellement l’objet de près de 80% des attaques informatiques. Pourtant des solutions existent déjà pour solutionner ce problème : Le projet FIDO2 et le nouveau standard WebAuthn permettent désormais de s’authentifier en toute sécurité auprès d’un service web et, ce, sans recourir à un facteur mémoriel tel qu’un mot de passe. Cette session vous présentera ce que propose ce standard, comment il fonctionne et comment l’implémenter sur vos projets Symfony notamment via l’API JS et certains bundles Symfony. Je vous ferai part de mon retour d’expérience sur ces implémentations et nous verrons comment ce standard est aujourd’hui implémenté dans le monde web.

HYPErmedia : tirer parti d'HTTP/2 pour créer des API mieux conçues, et plus rapides

Kévin Dunglas - français - Track A - 24/09/2020, 16:10

Au fil des ans, de nombreux formats d'API ont été créés pour améliorer les performances des API Web (n+1, sur-extraction, sous-extraction)… La solution en vogue se nomme GraphQL. Il s'agit d'un hack réseau très malin, mais que HTTP/2 et HTTP/3 rendent un peu désuet !

Ces nouvelles versions du protocole disposent désormais de fonctionnalités natives permettant de créer des API rapides et idiomatiques : multiplexage, Server Push, déduplication des en-têtes, compression, connexions persistentes (cf. Mercure)… Utiliser les capacités d'HTTP/2 et HTTP/3 permet de révéler la vraie puissance de l'architecture du Web (l'hypermédia), sans compromis niveau performances.

Le framework API Platform supporte désormais le protocole Vulcain qui permet de mettre en place des APIs de ce type. Au cours de cette présentation, nous découvrirons cette nouvelle façon d'architecturer les APIs, et verrons comment les implémenter et les consommer grâce à API Platform et Symfony.

HATEOAS is the new hype!