On était au Devfest 2018 – IMT Lille Douai

Le 21 Juin 2018 avait lieu le devfest 2018 à l’IMT Lille Douai. Il s’agit d’une journée de conférences, codelabs autour de sujets technologiques innovants.

Tout démarre par une keynote d’Alexandra Nemery & Sarah Colmon. Elles ont su captiver l’auditoire avec un petit quizz interactif sur le thème des jeux vidéo sur kahoot.it. Elles ont ensuite tenté de faire le lien entre le monde de l’UX et celui des jeux vidéo, en prenant quelques exemples de jeux dont l’ergonomie n’est pas adaptée soit au device, soit aux habitudes des utilisateurs (joueurs). Et si Shigeru Miyamoto, célèbre créateur de Mario et Zelda, était le premier vrai visionnaire de l’UX ?

On a ensuite assisté à une introduction de gRPC par Sébastien FRIESS. Ce framework s’appuie sur le protocole HTTP/2 et utilise Protocol Buffers pour permettre d’échanger des données entre briques applicatives de façon performante. Sébastien nous a présenté le schéma de description des messages (IDL), puis une démo client/serveur. Il a apporté des modifications aux schémas de données à chaud, côté serveur puis côté client, pour démontrer que les échanges n’étaient pas impactés.

Sébastien Pertus nous a présenté les modules dans EcmaScript 6 et nous a également parler de TypeScript. Il a d’abord fait un historique et un focus sur Node.js puis nous a présenté sous forme de démos l’utilisation des modules dans les navigateurs.

Alexis Hassler nous a fait une revue de HTTP/2 et de son support dans les navigateurs, frameworks web, serveurs d’applications… La démo d’Alexis nous a permis de constater l’efficacité du multiplexage (utilisation de la même connexion tcp) de HTTP/2 sur le chargement de plusieurs éléments d’une page web. Il nous a également parler de la compression des headers http et du « server push » qui permet au serveur de pousser des ressources avant même qu’elles soient demandées par le client. On a pu apprendre que le support d’HTTP/2 est assez hétérogène et que l’utilisation du « server push » n’est pas forcément très simple pour le moment et nécessite de vérifier toutes les briques (reverse proxy, …) séparant le client du serveur.

On a vu différentes méthodes pour protéger ses API avec Léo Unbekandt. Les « API tokens » sont parfaits pour débuter rapidement et sont simples mais ne sont pas idéaux dans un écosystème distribué. Oauth 2 permet d’utiliser un vrai standard partagé mais implique beaucoup de complexité et d’appels client/serveur, cela reste néanmoins une excellente méthode pour faire de la délégation d’identité. Les tokens JWT peuvent être une bonne alternative dans le sens où le token peut être directement validé par le serveur sans appel supplémentaire, les jetons étant signés avec une clé privée connue du serveur.

Christophe Furmaniak & Yoan Rousseau, nous ont parlé de monitoring et d’alerting dans des environnements conteneurisés. Ils ont présenté l’outil de monitoring Prometheus dont le principe est de collecter les métriques en mode PULL dont l’un des principaux avantages est que les applications n’ont pas connaissance de l’infrastructure de monitoring, ce qui simplifie la configuration. Les applications ont tout de même la possibilité de venir Pusher des métriques via un composant intermédiaire que Prometheus utilisera pour collecter la donnée. Il nous ont également montré l’utilisation de Grafana qui permet la visualisation et la mise en forme des métriques collectées par Prometheus. Enfin, la problématique de mise en cluster de Prometheus a été rapidement abordée, le projet Thanos a été mentionné pour répondre à ce besoin. Nous pouvons conclure que Prometheus est adapté pour le monitoring mais n’est pas fait pour stocker des logs ou des événements, il n’est pas fait non plus pour tracer les requêtes dans une architecture microservices où il faudra utiliser des outils comme OpenTracing / Zipkin.

Le composant Istio nous a été présenté par David Gageot. Istio permet d’appliquer le pattern « façade » (ou sidecar) à son architecture micro-services au sein d’un environnement Kubernetes : un proxy HTTP Envoy est adossé à chaque micro-service, ce qui permet d’ajouter des traces, de monitorer, sans rien modifier dans son code ou son déploiement. Istio permet également de faire du TLS automatiquement entre les services, de router le traffic plus finement… David nous a fait une démo de canary deployment où un fix a été déployé pour un seul utilisateur en fonction d’une entête HTTP. Puis il a effectué un blue/green deployment, avec un routage d’une partie des requêtes vers la nouvelle version de l’application et une bascule progressive. Malgré l’effet démo subi par le speaker, cette conférence était très intéressante et Istio est vraiment prometteur.

Aurélien Loyer et Nathan Damie nous ont parlé de Javascript et des frameworks Javascript web. On a eu droit à une petite séance de pair-programming en live sur les bindings en Javascript via le « framework » Vanilla 🙂 Le message de fond est de démarrer simplement avec du pur Javascript, bien comprendre et spécifier son (éventuelle) problématique, et ensuite choisir (ou non) un framework qui colle rééllement à cette problématique.

Au niveau de l’organisation, c’était excellent, très bien organisé et fluide. Il y avait toujours de la place à condition d’arriver à l’heure dans l’amphi (quelques uns ont fini sur les marches, des souvenirs de début d’année en fac..) C’est également l’occasion de recroiser de nombreuses têtes rencontrées au détour de missions dans la région 🙂 Les sponsors proposaient de nombreuses animations, baby foot, bornes d’arcade, etc. On regrettera juste des soucis récurrents avec le projecteur de l’amphithéâtre principal qui a occasionné quelques coupures et slides tronqués. Globalement les présentations étaient de qualité avec des speakers au niveau.

On reviendra avec plaisir l’année prochaine !

Alexandre Vandekerkhove et Maxime Decronambourg