Devoxx đŸ‡«đŸ‡· 2023

J’ai eu la chance de participer pour la premiĂšre fois Ă  DevoxxFR (Ă©dition 2023) et mĂȘme d’y donner une confĂ©rence, mais nous y reviendrons dans un second temps. Pour les non-informaticiens, Devoxx est un Ă©vĂšnement payant de plusieurs jours, organisĂ© par une association, regroupant des milliers de personnes gravitant autour de ce monde (dĂ©veloppeurs, designers, experts d’une technologie ou d’une autre). Pendant ces trois jours, un ensemble de stands permet aussi aux entreprises partenaires de se faire connaĂźtre. Mais c’est surtout plus de 200 confĂ©rences dans une dizaine de salles, sous diffĂ©rents formats (long, court, avec travaux pratiques).

Embarquez avec moi jusque dans les coulisses de Devoxx France.

Salle bondée pour le lancement de Devoxx

Disclaimer: les avis, remarques et sentiments exprimĂ©s dans cet article sont personnels et je tiens Ă  fĂ©liciter tous les speakers de Devoxx. Ce n’est pas un exercice facile et une confĂ©rence peut plaire Ă  certains et moins Ă  d’autres.

Vous trouverez aprĂšs chaque bloc un lien vers la vidĂ©o Youtube đŸ“č de la confĂ©rence en question. Pour vous faire votre propre avis.

Cet article est publiĂ© des mois aprĂšs la confĂ©rence, surtout comme notes pour moi-mĂȘme.

Jeudi 13 Avril

Je n’ai pas pu participer Ă  la journĂ©e de Mercredi, donc commençons directement par le 2Ăšme jour 😊

Keynotes

Je ne vais pas commenter en dĂ©tails les Keynotes, au nombre de 3 ce jeudi. Ce sont des confĂ©rences plus gĂ©nĂ©ralistes, qui Ă©veillent souvent la curiositĂ© sur un sujet plus ou moins liĂ© Ă  l’informatique. Lors des Keynotes, la plus grande salle (Amphi Bleu) est pleine et la confĂ©rence est rediffusĂ©e dans 3-4 autre salles pour permettre Ă  tous les participants d’y assister.

CĂ©line LAZORTHES nous a parlĂ© de l’impact positif de l’informatique (et notamment l’intelligence artificielle) dans le domaine de la mĂ©decine, et notamment la dĂ©tection plus rapide de maladies et de cancers. Belle mise en pespective qui nous rapelle que nous sommes tous humains et que nous pouvons choisir pour quel domaine travailler (militaire, mĂ©dical, …)

https://www.youtube.com/watch?v=YMC923ODtmQ

Philippe BIHOUIX est ensuite montĂ© sur scĂšne pour faire un lien entre dĂ©veloppement et dĂ©veloppement durable 🙂 Il a challengĂ© nos habitudes numĂ©riques et rappelĂ© quelques chiffres et faits marquants qui font rĂ©flĂ©chir sur notre consommation quotidienne.

https://www.youtube.com/watch?v=4C44uWcslS8

Je n’ai pas assistĂ© Ă  la 3Ăšme Keynote pour faire un tour des stands mais j’ai eu quelques retours sur le fait qu’elle Ă©tait un peu hors sujet.

https://www.youtube.com/watch?v=cAGGtvBJA_Y

10h45 – 11h15 (Amphi Bleu) : L’IA va-t-elle changer notre mĂ©tier de dĂ©veloppeur ?

Speaker : Eric GRENON / Louis-Guillaume MORAND Microsoft France

AprĂšs un rapide rappel du concept d’Intelligence Artificielle et de la diffĂ©rence entre crĂ©ation et innovation, les speakeurs nous expliquent en quoi le prompt est une rupture dans la façon de communiquer avec l’IA (en reprenant le contrĂŽle sur la machine).

Ensuite, un zoom est fait sur Copilot de Github (et donc de Microsoft) à travers une démonstration :

  • GĂ©nĂ©ration de code (dans diffĂ©rents langages et contextes)
  • Refactoring de code (la dĂ©monstration a Ă©chouĂ© car Copilot a simplifiĂ© le code en le supprimant !!!)
  • Traduction de code d’un langage Ă  un autre (impressionnant)
  • Explication de code (par bloc et en tenant compte du contexte)
  • Discussion avec questions/rĂ©ponses et propositions de corrections
  • GĂ©nĂ©ration de code mais avec un chat de discussion

S’ensuivent quelques retours de dĂ©veloppeurs utilisant Github Copilot: « Cela rĂ©duit le temps passĂ© Ă  coder, rĂ©duit la charge mentale et augmente la concentration« .

Une question me vient Ă  l’esprit (que je n’ai pas pu poser): « Est-ce que la qualitĂ© de code ne va pas globalement baisser, les dĂ©veloppeurs Ă©tant assistĂ©s par une IA qui a appris de code gĂ©nĂ©raliste ? »

Je pense que ce genre d’outil peut ĂȘtre trĂšs intĂ©ressant pour analyser et refactorer du code legacy.

Ambiance Microsoft

https://www.youtube.com/watch?v=vQqOV83ZMpE

11h45 – 12h20 (Salle 252) : Le cache HTTP

Speaker : Hubert SABLONNIERE Clever Cloud

Hubert Sablonniere est une rĂ©fĂ©rence de trĂšs bon speaker pour moi depuis plusieurs annĂ©es (Lemmings Power). Je trouve ses prĂ©sentations trĂšs claires, avec la bonne dose d’humour, des exemples parlants et surtout une vulgarisation toujours au bon niveau 👏

Je ne rate donc pas une occasion comme celle-ci d’aller assister Ă  une nouvelle confĂ©rence, aujourd’hui sur le sujet du cache HTTP.

Plus jamais perdu dans le cache HTTP

En suivant le plan du métro, il déroule la RFC 9111 et toutes les possibilités des headers de cache HTTP.

Chaque propriĂ©tĂ© et son utilisation sont illustrĂ©es par un exemple avec des petits chats 🐈 Et on remarque que les navigateurs fonctionnent diffĂ©remment, que le cache peut ĂȘtre Ă  diffĂ©rents niveaux (CDN, navigateur, …)

Si c’est un sujet qui vous intĂ©resse ou que vous ĂȘtes amenĂ©s Ă  optimiser un site avec du cache, regardez cette confĂ©rence et prenez des notes.

Mention spéciale au header cache-control: no-cache

Le code des exemples est disponible ici : https://github.com/hsablonniere/talk-back-to-basics-cache/tree/devoxx

https://www.youtube.com/watch?v=AJT5EJP_QmQ

13h – 13h15 (Amphi Maillot) : Tous architectes

Speaker : Simon MAURIN Leboncoin

C’est un des mantras de l’Ă©quipe d’architectes chez ManoMano : « Tout le monde fait de l’architecture » alors ce talk a forcĂ©ment attisĂ© ma curiositĂ©.

En retraçant l’Ă©volution de l’entreprise LeBonCoin et de son organisation autour de l’architecture, Simon nous explique les diffĂ©rentes problĂ©matiques rencontrĂ©es et les solutions mises en place pour y palier.

Je retiendrai deux choses:

  • « Obtenir le consentement (personne n’est contre) plutĂŽt que le consensus (tout le monde est d’accord) ». C’est vrai avec une taille d’entreprise grossissante, il est parfois difficile de prendre des dĂ©cisions.
  • Ecrivez des Architecture Decision Records mais rendez-lez visibles et accessibles.

Une image pour résumer la trÚs bonne présentation de Simon

Vous ĂȘtes dans quelle ligne ?

https://www.youtube.com/watch?v=2xnC9ock_N0

13h30 – 14h15 (Amphi Bleu) : Loi de Conway

Speaker : Julien Topçu Shodo

TrĂšs difficile de rĂ©sumer ce talk tellement il contenait d’informations intĂ©ressantes.

AprĂšs une introduction un peu longue (mais trĂšs Ă  propos) sur le cabinet McKinsey, Julien nous parle de la Loi de Conway

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

Melvin E. Conway

En prenant des exemples (comme le cabinet McKinsey ou Windows Vista), cette loi devient plus claire. Mais comment Ă©viter de tomber dans ce piĂšge, surtout dans les grandes organisations ?

Le modĂšle BAPO remet les choses dans l’ordre en ne subissant pas l’organisation mais en l’adaptant pour rĂ©pondre aux besoins Business.

StratĂ©gie Business / Produit → Architecture → Process et fonctionnements → Structure Organizationelle

ModĂšle BAPO

TrĂšs intĂ©ressant. Je vais chercher un retour d’expĂ©rience d’entreprise qui aurait mis en place ce modĂšle đŸ€”

https://www.youtube.com/watch?v=Kx7XOqrPoWk

14h30 – 15h15 (Maillot) : 5 ans de bien et de moins bien avec Kafka

Speaker : Nelson DIONISI – Matthieu MOUMINOUX Mirakl

Mirakl a commencé à travailler assez tÎt avec Apache Kafka (en 2016) et avec une contrainte forte : faire du multi-tenant pour gérer ses multiples clients.

Neslon et Matthieu nous expliquent leur parcours avec les diffĂ©rentes options mises en places et leurs problĂšmes. C’est intĂ©ressant car nous rencontrons les mĂȘmes soucis et la mĂȘme Ă©volution chez ManoMano.

Trop de topics, tous les Ă©vĂšnements dans les mĂȘmes topics, clients ralentis par d’autres, perte de messages, trop de messages. Voici tous les problĂšmes rencontrĂ©s et comment les rĂ©soudre.

Une partie intĂ©ressante concernant l’industrialisation (via une libraire commune) montre la puissance de mutualiser/abstraire certaines complexitĂ©s techniques.

Malheuresement, je n’ai pas pu assister Ă  la fin du talk.

https://www.youtube.com/watch?v=LJoqnjhG4dk

Mon talk – Gestion de la dette d’architecture dans un contexte d’hypercroissance

J’ai donc dĂ» quitter un peu avant la fin la confĂ©rence prĂ©cĂ©dente pour me prĂ©parer Ă  donner la mienne. Mon rythme cardiaque augmente, mais je me pose pour bien respirer, faire de la visualisation mentale et le stress redescend. J’ai dĂ©jĂ  eu l’occassion de donner ce talk Ă  Bordeaux devant une salle de 600/700 personnes, mais lĂ , c’est Devoxx et dans la plus grande salle.

Je rentre dans l’Amphi Bleu et monte sur scĂšne. Ah suprise, mon nouveau Mac ne permet pas de diffuser sur plus de 2 Ă©crans… J’aurai donc mes notes sur mon portable et le reste sera projetĂ© derriĂšre moi, impossible de me dĂ©placer trop loin du pupitre.

Je dĂ©roule mes slides et essaye de donner du dynamisme dans mon ton et mes phrases. A mi-parcours, je confonds mon timer (temps passĂ©) et celui de l’organisation (temps restant) et je pense que j’ai largement le temps.
Mais les slides passent et la fin se rapproche, j’accĂ©lĂšre donc et finis sur le fil (avec quelques secondes de retard). Il n’y aura pas de questions et je trouve ça dommage.

J’ai rĂ©pĂ©tĂ© de nombreuses fois mon talk mais j’ai tendance Ă  parler plus sur scĂšne, pour ĂȘtre sĂ»r que mon propos est compris par tous. Dommage pour cette fois.

Quelques personnes sont venues Ă©changer Ă  la fin, partageant les mĂȘmes problĂ©matiques, avec des approches similaires ou diffĂ©rentes. TrĂšs enrichissant.

Ça fait quand mĂȘme une belle photo souvenir pour mon anniversaire 😊

Moi

https://www.youtube.com/watch?v=F30CJnmzI8Y

16h45 – 17h30 (AB) : DĂ©mystifions Kubernetes

Speaker : Denis Germain Deezer

J’ai ensuite enchainĂ© avec une introduction Ă  Kubernetes par notre ami bordelais Denis Germain.

C’est un outil que j’utilise au quotidien professionnellement mais je ne connais que les concepts principaux, sans avoir jamais mis le nez dans la partie technique (et ce n’est pas mon domaine du tout).

Denis nous a expliqué les principaux composants nécessaires (natifs ou non) pour démarrer un cluster :

  • Control Plane
  • ETCD = Database
  • Controller = ConnectĂ© Ă  l’API server pour manager les pods + nodes
  • Scheduler = dĂ©marre les pods et gĂšre leur nombre
  • Kubelet = agent sur les workers pour donner les informations (pods/cpu) + contrĂŽler runtime
  • CNI plugin = implĂ©mentation du rĂ©seau
  • Ingress Controller = HTTP routeur (comme Traefik)

C’Ă©tait clair et les Ă©tapes de dĂ©monstration permettent de mieux se rendre compte de la simplicitĂ© et des dĂ©pendances.

La démo et les slides sont disponibles sur github https://github.com/zwindler/demystifions-kubernetes

https://www.youtube.com/watch?v=OCMNA0dSAzc

Vendredi

AprĂšs une soirĂ©e moins studieuse (concert, repas, alcool et longues discussions), j’ai un peu trop profitĂ© de mon lit au calme ce matin et je suis arrivĂ© au Palais des CongrĂšs vers 09h30.

J’ai pu assister Ă  la Keynote de Marion POITEVIN, premiĂšre femme française dans un groupe d’élite d’alpinisme de l’armĂ©e de terre. Elle explique le plafond de glace (mĂ©taphore du plafond de verre) qu’elle a rencontrĂ© en tant que femme dans ce domaine d’Ă©lite qu’est l’alpinisme de haut niveau. Son talk Ă©tait trĂšs inspirant et donne envie de lire son livre : Briser le plafond de glace

https://www.youtube.com/watch?v=uxsQEFvUoxk

10h45 – 11h30 (251) : IPFS

Speaker: Cody Zuschlag Nearform

Je pensais que ce talk en anglais Ă©tait un talk technique sur l’utilisation d’IPFS avec des dĂ©monstrations. Ayant un peu utilisĂ© ce protocole pour tester les NFTs, je pensais voir des cas d’usage plus pratiques et professionnels.
Mais le talk Ă©tait vraiment une introduction Ă  cette technologie, expliquant le concept de base.

IPFS pour Internet Planetary File System est un systÚme de stockage de fichiers décentralisé basé sur la blockchain. Il peut servir pour héberger des sites, distribuer des paquets/librairies, dans le gaming ou encore dans le monde de la crypto.

Pour ceux qui veulent explorer la technologie, je vous conseille ce trĂšs bon article : https://thebidouilleur.xyz/blog/ipfs/

https://www.youtube.com/watch?v=kQOkTet31gY

11h45 – 12h30 (252) : Avoir de l’impact en tant qu’Engineering Manager

Speaker : Dimitri Baeli / Benoit Guillon BackMarket / Malt

Dans mon entreprise (ManoMano), un Engineering Manager est un manager technique responsable de 3-4 Ă©quipes. C’est un rĂŽle que je trouve intĂ©ressant, car il mĂȘle management et expertise technique sur de nombreux sujets (langages, infrastructure, architecture, etc). Je suis donc venu assister Ă  ce talk pour en tirer quelques retours d’expĂ©rience.

Mais Ă  l’extĂ©rieur de ManoMano, un Engineering Manager est un Tech Lead (ou Chef de Projet Technique), responsable technique d’une Ă©quipe de 4 Ă  8 personnes.

Dimitri et BenoĂźt ont premiĂšrement dĂ©crit le rĂŽle d’un EM en prĂ©cisant 4 points:

  • assurer une bonne vitesse de livraison tout en conservant la qualitĂ© attendue
  • amĂ©liorer les rĂ©sultats business
  • contribuer Ă  la culture de l’entreprise
  • apporter de l’innovation et de l’intĂ©rĂȘt

Pour pouvoir agir au mieux, ils doivent mesurer. A court terme avec les DORA Metrics et le Team Health Check ( de Spotify) et à long terme avec les approches Kaizen (amélioration continue) et Kaikaku (changements radicaux).

Les changements doivent ĂȘtre faits un par un pour mesurer l’impact et tout en respectant la maturitĂ© de l’Ă©quipe (niveau d’expertise, expĂ©rience).

La derniÚre partie sur le management humain était trÚs intéressante, avec des conseils évidents mais pas toujours appliqués comme le fait de manager les gens comme des humains (en les écoutant, leur demandant comment ça va, en cherchant la diversité et en laissant les gens partir).

Enfin, ils conseillent aux Engineering Manager d’agir comme des DNS (pour aiguiller vers les bonnes personnes) plutĂŽt que comme des Gateways (qui filtrent tout et bloquent les communicatinos transverses). Belle comparaison.

Le début du Manager Path

https://www.youtube.com/watch?v=4ekJwOV45ro

13h30 – 14h15 (Maillot) : Je malmĂšne ta prod en direct avec 15 failles de sĂ©cu

Speaker: Gaëtan Eleouet Meritis

PremiĂšre phrase « Les dĂ©veloppeurs doivent ĂȘtre impliquĂ©s dans la sĂ©curisation de leur application ». En effet, 72% des failles de sĂ©curitĂ© proviennent de code applicatif.

J’ai un master en SĂ©curitĂ© Informatique (mĂȘme si ce n’est plus mon mĂ©tier) et je garde toujours un oeil sur ce domaine en faisant un peu de veille. Et cette confĂ©rence Ă©tait plutĂŽt destinĂ©e Ă  des dĂ©veloppeurs novices dans ce domaine.

GaĂ«tan propose Ă  travers une application Qui aime quoi ? de parcourir les failles principales remontĂ©es par OWASP (organisme qui classifie les failles selon leur importance). C’est ludique et pĂ©dagogique.

Le site web eMMa dĂ©veloppĂ© pour l’occasion

Je vous mets ici la liste des failles abordées :

  • CWE-209 Hide sensitive information
  • CWE-89 SQL Injection
  • CWE-352 CSRF (request from another website stealilng cookie)
  • CWE-639 IDOR (access to data from another user)
  • CWE-602 Always validate data in backend part
  • CWE-565 Cookie data integrity (signature)
  • CWE-915 Control fields you can modify during deserialization
  • CWE-80 XSS Allow <script> in content executed by other user
  • CWE-640 Light way to get forgotten password
  • CWE-330 Random not enough random (CSPRNG)
  • CWE-1352 Not up to date libraries
  • CWE-841 Workflow step validation #cort
  • CWE-419 Admin part accessible from Internet (VPN, IP restricted)
  • CWE-288 Authentication not checked on all pages
  • CWE-918 SSRF (Server calls himself URL)
  • CWE-778 Log security/sensitive events

https://cheatsheetseries.owasp.org/

https://www.youtube.com/watch?v=Z0rgGrJLt-0

14h30 – 15h15 (AB) : Profitez de PostgreSQL pour passer Ă  la vitesse supĂ©rieure

Speaker: Emmanuel Remy Casden

Ce talk présente comment utiliser PostgreSQL pour améliorer les performances et explorer diverses fonctionnalités, notamment la manipulation de types de données spécifiques, la génération de séries de données, la création de tables partitionnées, et le sharding.

Je suis utilisateur de PostgreSQL et connaissais dĂ©jĂ  quelques fonctionnalitĂ©s mais j’ai Ă©tĂ© bluffĂ© par tout ce qui Ă©tait disponible.

Je ne reviendrai pas sur la partie stockage de donnĂ©es particuliĂšres (gĂ©ospatiales, composite, …), ni sur le sharding que j’ai dĂ©jĂ  utilisĂ©s.

Saviez-vous que vous pouvez générer des suites de données grùce à quelques commandes PgSQL ?

J’ai aussi apprĂ©ciĂ© les fonctionnalitĂ©s de sĂ©curisation et d’anonymisation (comme le caractĂšre SECURE sur une colonne qui anonymise automatiquemen tous les SELECT).

Nous avons ensuie découvert quelques bizarreries de PostgreSQL, comme le fait de supporter des fonctions en Python/NodeJS et autres languages. Ou le fait de connecter notre base de données à des services externes. Oui, vous avez bien lu. PostgreSQL est capable de wrapper des connexions à S3, des APIs REST ou à des fichiers (voir liste ici).
Ce sont bien Ă©videmment des patterns que nous ne recommendons pas en Architecture mais qui existent.

Enfin, Emmanuel est revenu sur l’utilisation de JSONB, ses performances et capacitĂ©s. C’est quelque chose que nous faisons de plus en plus dans mon entreprise.

TrÚs bonne conférence pour toute personne qui travaille avec PostgreSQL.

https://www.youtube.com/watch?v=Zfdx2URaEOk

15h30 – 16h15 (252) : RĂ©-architecturer vos traitements batchs avec DDD

Speaker: Dorra BARTAGUIZ – Cyrille MARTRAIRE Arolla

Alors, je voulais rencontrer et voir Cyrille Martraire (auteur de Living Documentation et de nombreuses confĂ©rences sur l’architecture et le DDD) et le sujet semblait intĂ©ressant mais je n’ai pas du tout accrochĂ© au duo et au ton humoristique de la prĂ©sentation. C’est trĂšs personnel et cela n’enlĂšve en rien la qualitĂ© des speakers et le trĂšs bon fond de la prĂ©sentation.

Les batchs sont dans nos systĂšmes d’information souvent associĂ©s Ă  de mauvais souvenirs. Lents, qui dĂ©clenchent les astreintes, avec du code dupliquĂ©, gĂ©rĂ©s par d’autres Ă©quipes. Et pourtant, ils sont toujours prĂ©sents dans nos architectures modernes.

Dorra et Cyrille proposent de repenser leur architecture et d’appliquer DDD aux batchs pour les amĂ©liorer.

Appliquons déjà les bonnes pratiques de nos architectures micro services :

  • Identifier des modĂšles domaines et les isoler
  • Ajouter des adapters (REST, Event, Database, …)
  • Utiliser du cache (Decorator)
  • Pourquoi pas essayer l’Architecture Hexagonale (possible avec Spring Batch Orchestrator)
  • Tester (robot launcher + mock/stub/fake/spy)
  • GĂ©rer les cas d’erreurs (bloquantes et non bloquantes)

Et l’astuce ultime (que j’adore) est de transformer nos batchs vers une architecture orientĂ©e Ă©vĂšnements. On passe d’un systĂšme en bloc Ă  un flux continu (voir mĂȘme serverless).

Quelques cas d’usages sont difficiles Ă  gĂ©rer avec des Ă©vĂšnements mais Cyrille parle de Techniques de Ponctuation (inclure des mĂ©tadonnĂ©es pour indiquer les groupes).

Quelques sources https://gist.github.com/cyriux/62a01433c2d6113554b37cb7f07ffe3d

https://www.youtube.com/watch?v=_x-z2AwkOFI

Conclusion

Ces 2 jours furent trĂšs riches, autant en tant que speaker que de spectateur. Beaucoup de rencontres, d’Ă©nergie, d’idĂ©es et ce genre d’Ă©vĂšnement fait plaisir aprĂšs la pĂ©riode COVID. C’Ă©tait pour moi une premiĂšre expĂ©rience rĂ©ussie et je reviendrai avec plaisir.

Et merci Ă  tous les organisateurs et au staff, que ce soit pour l’accompagnement en tant que speaker ou pour l’Ă©vĂšnement en gĂ©nĂ©ral.

Retrouvez le programme complet et toutes les conférences sur Youtube.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *