La parole est aux speakers : Quentin Barloy

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! Pourquoi avoir choisi Kubernetes comme orchestrateur de conteneurs ? Quels sont ses avantages par rapport à Docker Swarm, par exemple ? Kubernetes est rapidement Read more…

La parole est aux speakers : Magali Milbergue

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! Magali, qu’est ce qui t’as amenée à faire une reconversion professionnelle ? J’étais dans le social depuis plus ou moins une dizaine d’années et Read more…

La parole est aux speakers : Vincent Toullec

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! Toi qui es un grand fan de Symfony, comment en es-tu venu à faire du Drupal ? Ma première expérience sur Drupal s’est faite Read more…

La parole est aux speakers : Frederic Blanc

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! Tu as travaillé pendant pas mal d’années sur des missions pour des clients finaux, tu as ensuite changé pour être développeur sur des outils Read more…

La parole est aux speakers : Pol Dellaiera

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! Quand on lit « Lazy Collection », impossible de s’empêcher de penser à « Doctrine Collection ». Saurais-tu nous dire en quoi ta librairie est différente ? Le Read more…

La parole est aux speakers : Estelle Le Cam

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! À partir de quel moment peut-on juger qu’il n’est plus nécessaire d’investir du temps sur la maintenance d’un code legacy ? À quel moment Read more…

La parole est aux speakers : Lior Chamla

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! À ta connaissance, est-ce qu’il existe des frameworks sans conteneur d’injection de dépendances ? Les seuls frameworks que je connaisse actuellement sont Symfony, Angular Read more…

La parole est aux speakers : Julien Soleilhavoup

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! Tu as proposé tes services de mentor pour le programme de mentorat de l’AFUP, tu as partagé ton expérience du burn-out lors d’un talk Read more…

La parole est aux speakers : Samuel Rozé

Jusqu’au Forum PHP, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence ! Est-ce que tu trouves que la documentation vivante n’est pas encore une chose normée dans le quotidien des devs ? Totalement, c’est complètement le far Read more…

La parole est aux speakers : Kévin Dunglas

Jusqu’au Forum PHP, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Utiliser le protocole Vulcain pour créer des API REST ultra-performantes

Au fil des années, plusieurs formats ont été créés dans l’objectif d’améliorer les performances des API Web : (n + 1, sur-extraction, sous-extraction)… La dernière solution à la mode pour créer des API rapides se nomme GraphQL, un hack réseau malin… mais que HTTP/2 et HTTP/3 rendent désormais désuet !

Ces nouvelles versions du protocole au coeur Web disposent de fonctionnalités natives permettant de créer des API rapides et idiomatiques : multiplexage, Server Push, dé-duplication des en-têtes, compression, connexions persistantes…

Vulcain est un tout nouveau protocole qui tire parti au maximum de HTTP/2 et 3 pour améliorer drastiquement la performance des API REST !

Après quelques rappels concernant HTTP et REST, nous découvrirons comment est conçu Vulcain, et comment il est facile à mettre en place avec les API PHP (réalisées à l’aide d’API Platform ou non), ainsi que comment en tirer parti en JavaScript.

Katherine Johnson
22/10/2020
14:30-15:10

Peux-tu nous en dire plus sur l’avancement du protocole Vulcain ?

Vulcain propose deux très simples nouveaux en-têtes de requête HTTP qui permettent au serveur de deviner de quelles données le client aura besoin. Le serveur peut ensuite préparer et envoyer ces données le plus tôt possible, typiquement en utilisant HTTP/2 Server Push.
La version initiale de la spécification Vulcain a été publiée sous la forme d’un Internet-Draft en avril 2020.

Suite à cette publication, j’ai eu des retours très intéressants en provenance de la communauté eZ Publish et de l’auteur de la spécification Prefer-Push.
Grâce à ces échanges, il m’a été possible de rendre la spécification encore plus flexible et générique. Une nouvelle version intégrant ces changements a été publiée fin août. Elle ajoute une mécanique de sélection “hypermédia” relativement similaire à ce que propose Prefer-Push qui permet – en complément du mécanisme de sélection déjà existant – de récupérer des relations ayant un certain type, un certain format et/ou une certaine langue.

Désormais Vulcain utilise également les en-têtes HTTP structurés, qui sont en voie de devenir une RFC.

En parallèle à ce travail de fond sur la spécification, un énorme boulot a été effectué sur l’outillage afin de permettre une adoption plus large.

L’un des points de friction majeur pour une adoption massive de Vulcain est que la spécification doit être supportée par le serveur “edge” qui maintient la connexion avec le client.

Pour ce faire, nous travaillons d’arrache-pied sur deux fronts :
– proposer un meilleur support de Vulcain dans l’outillage existant, et je vous expliquerai ça en détail lors de ma session
– tenter d’améliorer les spécifications existantes pour permettre les usages novateurs tels que celui proposé par Vulcain (exemple : https://github.com/w3c/preload/pull/149).

Côté standardisation, la création d’un nouveau groupe de travail de l’IETF dédié aux API HTTP est actuellement en discussion. Si un tel groupe voit le jour, nous proposerons de discuter de Vulcain en son sein.

(suite…)