Blog | WeScale

Carnet de conférence des 10 ans du DevFest Nantes

Rédigé par Guillaume GUÉRARD | 25/10/2022

GDG Nantes : 10 ans de DevFest

Les 20 et 21 octobre derniers s'est déroulée la 10ème édition du DevFest Nantes à la Cité des congrès. Près de 3700 personnes se sont retrouvées pour échanger sur des sujets autour de la tech, allant du partage très personnel sur les épreuves d’une dépression au hands-on sur Rust, en passant par la description d'une entreprise sans chef. Vous l'aurez compris, cette édition était une nouvelle fois placée sous le signe de la diversité de contenu. Nous nous proposons de partager avec vous notre voyage au centre du DevFest Nantes 2022.

Carnet de conférence du premier jour du DevFest Nantes

Keynote d’ouverture spéciale 10 ans

Le DevFest 2022 a été ouvert par Tommi Nieminen venant nous présenter Device Orchestra

Le projet qui consiste à faire chanter et danser nos appareils du quotidien ! Après un live des brosses à dents, lecteur de CB et autres reprenant Thunderstruck d’AC/DC, Tommi nous explique comment il transcrit une partition de musique du XML au C++ (via un générateur de code en Java)  pour l’utiliser sur Arduino branché sur ses instruments.

Ctrl+Alt+Dépression par Manon Gruaz

Manon délivre un retour d’expérience très personnel et émouvant mais avec néanmoins beaucoup d’humour : la dépression qu’elle a vécu récemment. Comment sortir de la phase de déni pour commencer à déconstruire ses certitudes, comment se reconstruire en alignement avec ses valeurs profondes, et surtout comment nous aider à détecter les symptômes (chez nous-même ou chez nos proches). 

La dépression touche une personne sur cinq, il est donc temps que cette maladie soit moins taboue et mieux connue pour que les personnes qui en souffrent soient à l’aise d’en parler, et d’en guérir.

Entiers, virgules flottantes ou représentations exotiques : parlons d'élégance

Fabien Tégran et Olivier Poncet nous expliquent la manière dont sont représentés les nombres à virgule flottante dans nos machine, ainsi que les différentes solutions existantes ou ayant existé pour éviter d’utiliser la coûteuse FPU de nos microprocesseurs ou pour optimiser des décimaux en virgule fixe.

Le format des slides (dessins sur feuille de papier) comme les exemples (registres à décalage de l’Atari 2600, optimisation de performances pour le trading ou les jeux 3D…) étaient rafraîchissants.

DevSecOps : de la sécurité dans mon DevOps par Adrieu Pessu et Tugdual Grall

Adrieu Pessu d’Okta et Tugdual Grall de Redis Labs ont présenté différentes solutions de sécurisation du cycle de développement applicatif (SCA, SAST) pour répondre aux enjeux de cybersécurité. Ils nous ont présenté leurs intérêts et comment les intégrer de manière efficace dans des pipelines GitHub.

Si ces sujets vous intéressent, vous pouvez consulter ces articles :

Sea to Sky: Building resilient applications on Google Cloud's fiber optic network

Stephanie Wong (Google) nous explique comment Google relie ses grandes régions via un réseau de fibres optiques, et notamment des câbles sous-marins. Elle montre les coûts inhérents à ces “superstructures”, et comment le re-routage est assuré par redondance de route. Elle donne également des bonnes pratiques afin de profiter au maximum de la multi-régionalité des datacenters de Google, que les ops et devs familiers du Cloud connaissent normalement déjà. L’intérêt de cette deuxième partie est de relier les conseils de résilience/performance habituels pour les applications cloud native aux infrastructures mises en place par un clouder pour le permettre à une grande échelle.

Le GitOps dont vous êtes le héros par Louis Tournayre

Il s’agit d’un GitOps 101 (on visite tous les principes et comment les implémenter) mais présenté de manière originale et interactive. 

En partant d’une situation problématique (pas de CD, CI approximative), la foule vote à main levée ou à l’applaudimètre pour des choix permettant d’aller progressivement vers le GitOps. Ces choix ont un réel impact : on perd des pièces d’or quand la solution coûte, on en gagne quand on améliore la situation. Le speaker revient en arrière quand le choix n’est pas bon, et propose souvent une démo lors de la progression.

On joue, on rit, on trolle un peu dans une aventure avec des personnages issus de célèbres récits.

Comment programmer des portes logiques dans l'ADN par Tiffany Souterre d’AWS

Tiffany, Developer Advocate Specialist AI/ML chez AWS nous a expliqué de manière très didactique les similitudes entre les briques fondamentales de l’informatique et le fonctionnement de nos cellules. 

Après des rappels de génétique pour remettre tout le monde à niveau avec quelques schémas ainsi que des vidéos prises au microscope, elle expose les principes de logique booléenne qui peuvent être reproduits dans le vivant. Elle explique également les différences qui font qu’on ne codera pas tout un ordinateur avec des bactéries !

Il est intéressant de constater que des outils de table de vérité développés il y a quelques décennies permettent à la science médicale moderne de progresser. Pour ceux qui s’intéressent à la biologie et plus particulièrement à la génétique, c’est un exemple du progrès qui a été fait depuis 25 ans sur le contrôle de l’expression des gènes afin de comprendre les maladies génétiques, les prédispositions et le déclenchement du cancer, et qui explique l'effervescence actuelle sur les sujets d’épigénétique. En un mot, passionnant !

Codelab OpenFaas de Katia Himeur Tahli

Katia Himeur Tahli a commencé ce lab par rappeler les principes du Serverless ainsi qu’un rapide rappel de la promesse de Kubernetes. Nous avons ensuite installé sur nos clusters personnels la solution OpenFaas, qui promet de lancer facilement des bouts de code sur Kubernetes. Durant 2 heures, nous avons eu le temps d’explorer les différents langages supportés nativement par la solution, mais aussi comment faire son propre template à base de Dockerfile. La CLI intégrée permet de gérer le cycle de vie complet de nos fonctions (packaging, publication et déploiement) à l’aide d’un simple fichier YAML (qui ressemble à celui de l’outil Serverless). 

Ce lab m’aura permis d’explorer de façon assez large les propriétés de l’outil, mais aussi ses limites. Par exemple, le scale-to-zero permettant des économies de ressources tant que notre fonction n’est pas appelée n’est pas possible par défaut. Il y a toujours un Pod qui tourne, prêt à servir les requêtes, à moins d’opter pour la version payante de l’outil.

CloudRun à l’échelle d’une entreprise par Christophe Furmaniak

Si cette présentation était intéressante par la mise en œuvre d’une stack self-service sur CloudRun à destination des équipes applicatives, elle nous a peu convaincus, car reposant sur la création d’une sorte de “framework interne d’infrastructure” avec un DSL custom en… YAML.

D’expérience, un framework interne a un coût de maintenance élevé, doit rester en permanence à la page pour garantir le gain de productivité qui compense l’absence de montée en compétence des équipes sur les technologies sous-jacentes.

L’avenir dira si l’investissement en valait la peine…

What About Logs? par Daniel Maher

Dans ce court Talk, Daniel Maher fait l’analogie entre un ticket de caisse et des logs système. 

Le but est de démontrer qu’il faut un minimum d’informations dans nos logs (date et contexte). Il démontre que la présentation des logs est primordiale pour son exploitation.

Testing Web Applications with Playwright par Debbie O’brien

Playwright est une solution de tests end-to-end web par Microsoft. En moins d’une heure, Debbie essaie de nous réconcilier avec l’écriture de tests end-to-end qui sont souvent pénibles à maintenir et à rédiger. Pari gagné, car la démo orientée autour de l’extension VSCode illustre bien la fonctionnalité Codegen qui favorise la rapidité de rédaction de tests en combinant un enregistreur élaboré d’actions et une vue editable du test. De plus, les traces avancées permettent de reprendre une timeline d’exécution passée pour identifier la cause d’un test en erreur.

Carnet de conférence du second jour du DevFest Nantes

Des CloudEvents partout ! de Loïc Mathieu

Loïc Mathieu nous présente les CloudEvents, et ce qu’ils amènent dans pour des applications cloud. Permettant un standard commun d’échanges entre les services, ils apportent en plus de la data transférée des éléments supplémentaires liés à cette donnée (métadata).

Il finit sa présentation en nous faisant une démonstration avec une application qui utilise les CloudEvents pour communiquer entre un bucket Google, un cluster Kafka, une base MongoDB et un service web.

The hitchhiker's guide to web privacy de Maud Nalpas

Dans un talk alliant retour d’expérience et connaissances approfondies du sujet de la vie privée sur le web, Maud nous montre concrètement les outils à la disposition des développeurs web pour améliorer les usages et protéger les utilisateurs. Les navigateurs jouant également un énorme rôle dans cette aventure, elle nous rappelle le rôle que cela joue dans des phases de debug, par exemple vis-à-vis de la sélection des cookies. Elle nous fait également un tour des fonctionnalités avancées, souvent un peu cachées, de choix de partage de nos historiques de navigation. Le talk est très bien amené et les retours sont très positifs, on aurait aimé un peu plus de démo.

Authentification / autorisation : Le cookie et ses rejetons de Clément Delafargue & Geoffroy Couprie

Le duo très dynamique présente les différentes technologies qui ont été conçues pour permettre d’identifier et autoriser l’accès aux ressources, en pointant leurs avantages et inconvénients pour une mise en place dans une infrastructure en micro-services.

Dagger.io, le nouveau couteau-suisse portable basé sur Docker pour votre CI/CD de Hervé Leclerc

Hervé Leclerc nous présente Dagger.io, un outil CI/CD conçu par les créateurs de Docker, qui permet de faire tourner des pipelines en local. L’outil gagne des points en étant totalement déclaratif et en permettant d’avoir des librairies de code, mais la difficulté du langage sous-jacent (CUE.lang) et l’intégration basse avec les serveurs de CI/CD sur lesquels il tournerait ne m’ont pas convaincu de l’outil ; la portabilité de l’outil en fera son atout principal si vous aviez à gérer plusieurs serveurs différents de CICD (e.g. Jenkins & GitLab & Github).

#RetourAuxSources : Le cache HTTP de Hubert Sablonniere

La réputation d’Hubert en tant que speaker n’est plus à faire et c’est confiants que vous pouvez regarder le replay de ce talk. Le sujet est amené de manière très accessible et fait le tour de l’ensemble des caches qu’il existe entre le navigateur du client et le serveur sur lequel se situe la ressource. Les plus connus sont bien entendu le cache mémoire, le cache disque, le CDN, le reverse proxy… Vous ne soupçonnez sûrement pas non toutes les options de configuration, d’expiration, de priorité, etc, possibles qui peuvent faire que vos ressources ne seront pas rafraîchies comme vous le souhaitez. Dans un talk de qualité, plein de démos et de pédagogie, il était très intéressant de voir toutes les étapes par lesquelles passe une requête quand il s’agit simplement du cache. Il était aussi intéressant de voir que sur la dizaine d’étapes de caching, en tant que cloud builder, ops ou archi, nous n’avons plutôt l’habitude que de n’en manipuler deux d’entre elles, à savoir les deux seules étapes de cache partagé (par opposition au cache privé, sur la machine du client).

TDD & TDD sont dans un bateau de Arnaud Bailly

Arnaud nous présente une façon de mettre en place une méthodologie Test-Driven Development, et l’intérêt d’utiliser un langage avec un typage fort pour le faire. Avec un problème simple (valider un numéro de sécurité sociale), il nous explique comment bien définir le domaine de l’objet / classe à créer, comment implémenter une suite de tests qui permet de valider que tout fonctionne quand on le veut et que tout casse quand on le veut.

Une présentation intéressante qui permet aussi de rentrer un peu dans Haskell, un langage déclaratif.

Libérez, délivrez WebAssembly du navigateur… Avec WASI de Philippe Charrière

Faire tourner du code WASM en dehors du navigateur, c’est possible avec la spécification WASI. On peut donc avoir un code en Go qui dynamiquement charge / décharge des modules WASI écrit dans des langages tiers (C, Rust, Swift, …). Cela peut avoir un cas d’usage dans une approche de plugins dynamiques. Cependant, l’interface WASI reprend WASM, nous sommes donc limités aux types de bases sur les entrées/sorties : entier 32, 64 bits. Ainsi, nous nous retrouvons très rapidement obligés de “recoder” des chaînes de caractères sur des entiers.

Cassons des tokens JWT de Benjamin Merieau et Jean Verrons

Un atelier plutôt sympa sur les tokens JWT. La salle était pleine, ça fait plaisir de voir autant de gens s’y intéresser. Après un rappel sur les bases, nous avons principalement suivi quelques exercices disponibles sur la plateforme de hacking root-me. Si vous souhaitez les reproduire, n’hésitez pas à vous y inscrire et faire les exercices de la partie Web - Serveur. Toutes les ressources nécessaires aussi bien que les explications sont disponibles sur la plateforme.

Bien se lancer dans le Domain Driven Design (DDD) sans se tromper de combat de Josian Chevalier

Au travers d’un récit sur le thème de “De la Terre à la Lune”, Josian nous conte comment relever les problématiques avec le DDD et définir une stratégie pour arriver à ses fins. En bref, de la communication, rendre explicite l’implicite et utiliser un langage ubiquitaire pour définir le langage métier. Il faut aussi éviter de trop spécifier les détails (penser “combustible” plutôt que “poudre à canon”) afin de pouvoir mieux s’adapter par la suite.

Il nous explique ensuite comment découper les besoins en “bounded context”, et comment ces différents contextes devraient agir entre eux pour leurs demandes (partenaires, customer / supplier, conformiste…)

Le futur de la médecine sera open source de David Sferruzza

David nous explique comment MakAir a été conçu, et comment l’open source permet de changer les processus en permettant à différents experts d’intervenir sur des sujets pointus et en donnant accès aux plans de leur conception au monde entier.

Cloud Seed 🌱- le voyage extraordinaire promis par GitLab pour déployer rapidement votre application sur GCP de Jean-Phi Baconnais

Jean-Philippe nous présente une des fonctionnalités bêta de GitLab qui permet de gérer des éléments GCP depuis les instances GitLab, en les reliant à des projets et des branches Git. Pas convaincu pour des éléments en production, mais cela peut permettre de tester des applications plus facilement.

Conclusion

Vivement l’édition 2023 !