Theme

Format

Level

Language

« Tour du monde 🌍 : du rêve à la réalité »
Tuesday 9 July 11:40 - 12:30
Room 128

Et si vous quittiez tout pour partir à l’aventure et faire le tour du monde ? Peut-être en avez-vous déjà rêvé mais n’avez jamais osé franchir le cap.

Nous sommes 2 développeurs et nous sommes partis 10 mois avec nos 2 enfants pour faire le tour du monde. Durant ce talk nous allons vous expliquer concrètement comment passer du rêve à la réalité.

Comment construire son itinéraire, comment monter son budget et s’y tenir, comment quitter son boulot, quel matériel emmener, …

Loin des idéaux Instagram, nous vous présenterons les joies et les galères sans tabou. Et comment gérer le retour.

Donc si vous avez envie de concrétiser vos rêves d’aventure, rejoignez-nous !

« Un Dev, un Ops et Git - Seront ils autorisés à casser la prod? »
Wednesday 10 July 14:30 - 15:20
Amphi 300 (110 places)

L'année dernière nous vous avions présenté les bonnes recettes que nous avons mis en place à Amadeus pour accélérer nos opérations, les rendre plus sures et moins sujettes aux erreurs humaines via l'utilisation de GitOps.

Ca vous dit d'aller un peu plus loin? De creuser un peu les petits détails de la mise en place de GitOps?

Ne vous inquiétez pas si vous n'étiez pas là l'année dernière, nous reviendrons brièvement sur les principes essentiels de GitOps mais nous nous concentrerons cette fois ci surtout sur les contrôles que nous avons mis en place pour éviter une catastrophe:

  • Que faire si le changement n'a pas été qualifié?
  • Que faire si un élément de l'infrastructure est en maintenance?
  • Que faire si le chef est pas d'accord?
  • Comment on s'aperçoit qu'on a ENCORE cassé la prod?
  • Comment on répare VITE la prod?

Bien sur on vous illustrera tout ça grace à des démos live où nous mêlerons les opérations de Quarkus, Kubernetes / OpenShift en utilisant Argo CD!

« (Et si on apprenait à) Apprendre et partager autrement »
Tuesday 9 July 17:35 - 18:00
Amphi 300 (110 places)

Nous sommes actuellement environ 8 milliards d’individus sur Terre et nous sommes tous différents mais nous devons rentrer dans des cases, suivre le même programme éducatif, et nous devons tous apprendre de la même manière.

Et si je vous disait qu'il est possible d'apprendre et de partager autrement, de faire appel à son imagination et à sa créativité et que c'est bénéfique pour tout le monde ?

Dans ce talk, je raconte une histoire, je vous raconte mon histoire, de comment je suis passée d'une personne qui avait perdu ses passions à la création de sketchnotes, vidéos, talks qui sortent du commun et de livres illustrés.

Partager autrement est-ce simple ? Peux t-on changer les choses ? Pourquoi ? Pour qui ? Il y a t'il des tips à savoir ?

Nous répondrons à toutes ces questions :-).

Et pour finir, nous verrons que nous avons chacun de super pouvoirs a utiliser à bon escient.

« AYM·JS, un synthéthiseur chiptune dans votre navigateur »
Tuesday 9 July 16:10 - 17:00
Amphi 300 (110 places)

Vous aimez le gros son chiptune caractéristique des années 70/80 ? Vous vous intéressez aux API WebAudio et WebMIDI mais vous ne vous êtes jamais vraiment plongés dedans ? Alors ce talk est fait pour vous !

Dans cette session nous descendrons dans les arcanes de la génération et de la gestion du son dans votre navigateur web au travers de AYM·JS, un émulateur écrit en JavaScript de la célèbre puce sonore des années 70 et 80 : le AY-3-8910/YM2149.

En premier lieu nous verrons comment exploiter l'API WebAudio pour générer des samples, les mixer et les envoyer sur la sortie sonore du navigateur. Puis nous nous intéresserons à l'API WebMIDI pour créer un véritable synthétiseur polyphonique vintage et pilotable à l'aide d'un clavier MIDI externe.

« Apprends à dompter la Data sans douter de toi ! »
Wednesday 10 July 13:30 - 14:20
Amphi 339 (509 places)

Illustration de la conférence :

<img src=“https://raw.githubusercontent.com/jvauchel/dompter-data-talk-2023/main/images/dompter-data-illustration.jpg” width='500'/>

Pitch vidéo : https://www.youtube.com/watch?v=vQ5pa_EAh_M

Il y a deux ans, j’étais développeuse C++, et j’ai fait le choix d’entamer une reconversion pour apprendre à dompter la Data et devenir Ingénieure Data.

Pour passer d’un univers à un autre, monter en compétence a été une étape, mais me sentir légitime a été une épreuve.

Comment passe-t-on du développement d'applications 3D à la gestion d'une pipeline de données Kafka ? D'un outil de génération de cuisines automatiques pour Ikea à l'ingestion de milliers de données sous Snowflake ?

Qu'est-ce qui m'a fait sauter le pas pour sortir de ma zone de confort ? Comment j’ai réussi à gérer mes doutes, à faire des choix cornéliens, et à traverser les moments difficiles ?

Dans ce retour d'expérience, je vais d’abord partager avec vous mon parcours à travers les maths, la 3D et la Data. Je vous parlerai des moyens utilisés pour me former à la Data, et de la place essentielle de la cohésion d’équipe dans ma reconversion.

Je vous donnerai ensuite les astuces et les indispensables pour réussir à vous lancer dans une reconversion, et vous découvrirez qu’un choix de parcours atypique pourra vous apporter beaucoup plus que des compétences techniques (adaptation au changement, confiance en soi …). Nous verrons enfin comment améliorer l’intégration des profils en reconversion et ainsi favoriser leur inclusion dans votre entreprise.

Pour en savoir plus : https://jvauchel.github.io/dompter-data-talk-2023/

« Apprenons à identifier les exigences techniques pour mieux concevoir »
Tuesday 9 July 11:40 - 12:30
Amphi 339 (509 places)

Avez-vous déjà entendu “ça doit fonctionner 24/7”, “Je veux 100% de dispo”, pour finir avec “en réalité, une VM ça sera largement suffisant” ? Ou au contraire “Pas de SLA, ma plateforme n'est pas critique, il faut juste qu'elle tourne impérativement le premier du mois à 6h54 précises” ?

Si ces situations sont votre quotidien, ne perdez pas espoir ! Que ces critères techniques (Non Functional Requirements) soient explicites ou non, ils sont la clé qui vous permettra de concevoir une architecture en adéquation avec le besoin client.

En se basant sur deux exemples fictifs (toute ressemblance avec la réalité serait bien évidemment fortuite, ou pas), nous verrons comment déjouer les pièges de la surqualité, et comment mettre en place une démarche pragmatique d'identification de la bonne architecture pour le bon besoin métier.

À l’issue de cette présentation, nous saurons comment identifier ces fameuses NFRs qui nous aiderons à concevoir de meilleures architectures en évitant la sur-complexité !

« Architecture d’une protection anti-bot »
Tuesday 9 July 18:10 - 18:35
Amphi 137 (260 places)

Rejoignez-nous pour une présentation où nous dévoilerons les mystères des systèmes anti-bot, qui protègent les sites web, les APIs et les applications mobiles ! 🌐📲

🛠️ Ce qui vous attend :

1/ Les couches de protections

Explorer les principes de fonctionnement d’un score anti-bot à travers différentes couches : empreinte TCP/IP, empreinte TLS, empreinte HTTP/2 et empreinte du browser. 🤯🔍

2/ Démystification du Score de Réputation Anti-Bot

Plongez dans le fonctionnement du score de réputation anti-bot, comprenant comment il opère à travers différentes couches pour renforcer les sites web. 🛡️💡

3/ Contourner les protections

Découvrez des stratégies pour naviguer à travers ces défenses, dévoilant des techniques pour déjouer les mécanismes de détection. 🕵️‍♂️💨

Après cette présentation, vous serez bien équipé de connaissances pour naviguer et comprendre les subtilités de ces mesures de protection ! 🚀🔒

Ne manquez pas cette opportunité de comprendre les systèmes anti-bot! 🌐🔓

antibot #webscraping #proxy

« Au Cœur de l'Odyssée: Migrer une application d'Angular 10 à 17 »
Tuesday 9 July 16:10 - 17:00
Amphi 137 (260 places)

Plongez dans la migration de l'application Devoxx CFP de Angular 10 à Angular 17. Cette session explore les défis et les solutions pratiques rencontrés durant ce parcours de mise à niveau.

Nous commencerons par examiner les raisons de passer à Angular 17, en soulignant ses fonctionnalités avancées et les améliorations de performance. Le cœur de la présentation partage les expériences vécues lors de la mise à jour de l'application Devoxx CFP, en mettant l'accent sur la gestion des changements importants, l'adaptation aux nouvelles bibliothèques et la résolution des problèmes de compatibilité, illustrés par des exemples concrets tirés de ce projet.

Nous traiterons des aspects critiques tels que la gestion des API dépréciées, la maîtrise des dépendances des bibliothèques et l'utilisation des nouvelles fonctionnalités d'Angular 17. L'objectif est de fournir une feuille de route claire pour des migrations similaires, soulignant les difficultés possibles et les stratégies pour les surmonter avec succès.

Des astuces et stratégies concrètes, issues de cette expérience réelle, seront présentées, équipant les développeurs des outils nécessaires pour effectuer efficacement leur propre migration vers la dernière version d'Angular.

Participez à cette session pour un aperçu enrichissant de la mise à niveau vers Angular 17, et repartez avec les connaissances et la confiance pour appliquer ces apprentissages à vos projets Angular

« Au coeur des Buildtime Compatible Extensions de CDI : une nouvelle manière d'étendre Quarkus, Micronaut et toute les implémentations Microprofile »
Monday 8 July 09:00 - 12:00
Amphi 139 (160 places)

CDI est la pierre angulaire des nouvelles stack techniques que nous aimons tant : MicroProfile, Quarkus, Micronaut, Helidon pour n'en citer que quelques unes. Le succès de cette specification repose sur le fait qu'elle propose un modèle de programmation unifié, très peu intrusif et extensible.

A l'origine CDI proposait un mécanisme d'extension au Runtime (les portable extension). Puis avec l'avénement de Quarkus et son approche de génération de code à la compilation, est venu le besoin d'avoir des extensions pouvant se configurer au Build-time. C'est un des apport de CDI 4.0 avec l'introduction de CDI Lite.

Dans ce talk, nous allons revoir brièvement l'historique de CDI, les stacks qui l'utilisent, et feront un rapide passage sur les extensions traditionnelles, pourquoi faire une extension ? Comment ?

Enfin nous aborderons les build compatible extensions, que nous pourront comparer au mécanisme natif des extensions Quarkus, et pourquoi selon nous il reste intéressant de proposer des build compatible extensions CDI 4.

Bien sur nous vous montreront du code et de l'execution avec une démonstration de l'integration d'apache Ignite, nativement plus proche de spring, cette fois ci avec Quarkus et Helidon.

« Avant, je supprimai des bugs, maintenant j'élève des abeilles »
Tuesday 9 July 15:00 - 15:50
Room 128

Un jour, je plaquerai tout pour aller élever des chèvres dans le Larzac !

Qu'est-ce qu'on a pu l’entendre cette phrase lorsqu'on en avait marre du projet sur lequel on bossait ! Eh bien, un jour, j'ai sauté le pas de l'élevage, ou presque : je n'élève pas des ovins, mais des abeilles mellifères.

Avez-vous déjà ouvert une ruche ? Savez-vous comment est organisée une colonie d'abeilles ? Comment s'occuper de ses colonies, les soigner, les protèger, les faire grossir, les dupliquer, jusqu'au moment tant attendu de la récolte ?

Il y a un peu plus d'un an, je me suis inscrit à l'initiative d'un ami apiculteur de mon village : le lancement d'un rucher communal. Entre les cours théoriques et la mise en pratique, du premier essayage de la combinaison à la mise en pot du miel, je viens vous raconter cette aventure d'une pratique aussi vieille que l'Humanité.

Si vous avez du pot 🍯, on fera même une dégustation !

« Avoid Lock-in with Serverless Design Patterns and Tips »
Tuesday 9 July 16:10 - 17:00
Amphi 139 (160 places)

You've probably seen how to create a Function-as-a-Service with one of the cloud providers, but if this is all you know about Serverless, prepare to have your mind blown! In this session we'll show you how to create a production-grade, cloud-neutral, event-driven serverless solution with Quarkus, a Java stack optimized for fast startup and small footprint; and Knative, an open-source community project for deploying, running, and managing serverless applications on Kubernetes. Say goodbye to vendor lock-in and hello to Supersonic Subatomic Java-based Serverless bliss!

« Core Web Vitals: Mettez votre application sur orbite avec les meilleurs pratiques »
Wednesday 10 July 11:10 - 12:00
Amphi 300 (110 places)

Il n'est jamais facile d'améliorer l'expérience utilisateur d'une application Web. Pourtant, il est important de le faire : une application dont l'expérience utilisateur est médiocre est une application qui ne sera pas utilisée et qui peut, à terme, coûter cher à l'entreprise.

En 2020, Google a annoncé l'intégration de trois nouvelles mesures dans ses outils d'audit de performance. Ces mesures sont connues sous le nom de Core Web Vitals et sont les suivantes :

  • LCP : Largest ContentFul Paint (plus grand tableau de contenu)
  • CLS : Cumule layout shift (décalage de la mise en page)
  • FID : First Input Delay (délai de la première entrée)

Lors de la conférence Google I/0 2023, Google a annoncé la nouvelle mesure INP (interactive to next paint), qui remplacera la mesure FID en 2024. Mais pourquoi déprécier la mesure FID ? Qu'est-ce que la métrique INP et comment l'optimiser ? Quelles sont les meilleures pratiques à suivre pour obtenir de bons résultats avec les métriques précédentes ?

Dans cette conférence, je répondrai à toutes ces questions avec des recommandations et des exemples que vous pouvez utiliser quotidiennement en tant que développeur.

« Cracking the Quantum Code: Découvrons la révolution quantique ! »
Wednesday 10 July 13:30 - 14:20
Amphi 300 (110 places)

Depuis le début de l'année, les annonces concernant les ordinateurs quantiques se multiplient. L'informatique quantique promet une puissance de calcul sans précédent, révolutionnant des domaines allant de la science des matériaux et de la découverte de médicaments à la modélisation financière et à la cryptographie. Mais qu'est-ce que l'informatique quantique et comment fonctionne-t-elle ? Cette conférence plonge dans le monde fascinant de la mécanique quantique pour dévoiler le fonctionnement interne des ordinateurs quantiques, en explorant des éléments tels que les qubits, les portes quantiques, les circuits quantiques, les algorithmes quantiques, les hardwares quantiques et en montrant comment nous pouvons simuler et exécuter un programme quantique !

« Debugguez votre salaire ! Mes stratégies gagnantes pour réussir sa négociation salariale »
Tuesday 9 July 14:00 - 14:50
Amphi 339 (509 places)

Décortiquer les mystères du salaire, un terrain miné où se mêlent débats enflammés, préjugés persistants et fantasmes insaisissables…

Parfois, tel un mauvais date, vous avez du mal à aller jusqu’au bout d’une proposition convenable à cause de multiples arguments comme « on n’a pas le budget », « on doit respecter la grille salariale » ou encore « vous n’avez pas été assez convainquant techniquement ». J’exposerai donc les points critiques qui vous font souvent obstacle.

Évidemment ça vous frustre et vous n’êtes pas Jean Claude Dusse : tout ne se joue pas sur un malentendu. Ainsi je vous donnerai les coulisses de la réflexion salariale et les quelques contre-arguments à formuler pour gagner la partie. Tout cela saupoudré de mon analyse du profil des employeurs/interlocuteurs. Je vous parlerai donc des utilisateurs de vos compétences et de leurs freins réels et psychologiques. C’est mon petit côté agile.

Enfin, telle une vétérante du recrutement, je vous dévoilerai une multitude de conseils pratiques pour maîtriser l'art de la négociation salariale. Pour cela, je mettrai en lumière l'importance cruciale de la préparation et de l'anticipation dans cette jungle du recrutement bien avant que la question du salaire ne soit posée sur la table.

Fini le mystère, place à la stratégie gagnante ! 😘

« Des silos au Platform Engineering en passant par le DevOps : adopter GitOps et aller au-delà de l’hype »
Monday 8 July 09:00 - 12:00
Amphi 339 (509 places)

L'évolution rapide du paysage technologique d'aujourd'hui pousse les organisations à dépasser les silos traditionnels pour favoriser l'innovation et l'excellence opérationnelle. Cette transformation commence par l'adoption des principes DevOps, qui renforcent la communication, la collaboration et l'automatisation entre les équipes de développement et d’exploitation. Toutefois, DevOps se concentre principalement sur la relation entre ces équipes, laissant de côté les besoins des autres parties prenantes.

Notre conférence propose un voyage de DevOps à GitOps, puis à l'Ingénierie de Plateforme (Platform Engineering), détaillant chaque étape avec des définitions précises, des études de cas et des exemples concrets. Nous analyserons comment ces pratiques, en se connectant, améliorent le développement logiciel.

L'accent sera mis sur l'Ingénierie de Plateforme, qui étend les capacités de DevOps et GitOps. Elle offre une solution intégrée répondant aux divers besoins des parties prenantes, respectant les politiques d'entreprise et les contraintes de gouvernance. Nous explorerons les aspects techniques de l'implémentation d'une plateforme unifiée, son impact sur la collaboration et l'importance de l'automatisation dans ce processus.

« Devenez le Jack Sparrow de votre code en organisant un Bug Bounty ! »
Tuesday 9 July 18:10 - 18:35
Amphi 339 (509 places)

Aucun des outils automatiques d'analyse de sécurité n'ont la connaissance métier d'un DevSecOps !

Chez Amadeus, nous avons commencé à organiser des événements pour sensibiliser nos ingénieurs à la sécurité. Ces Bug Bounty ouverts aux volontaires – une centaine à chaque édition - sont l’occasion de s’amuser à essayer de trouver des vulnérabilités dans son code, comprendre ce que peuvent faire les cybercriminels, et de rendre plus concret les problématiques de cybersécurité.

Passer une journée dans la peau de Jack Sparrow, a quoi ça sert et qu’est-ce que ça rapporte ?

Vous repartirez avec notre super kit d’organisation de Bug Bounty… et quelques trésors.

« Démocratiser l'IA : Lancer des LLM sur Raspberry PI 5 avec Ollama et LangChain »
Monday 8 July 14:00 - 17:00
Amphi 339 (509 places)

L'intelligence artificielle a connu des progrès fulgurants ces dernières années, mais son accessibilité reste limitée aux machines puissantes et aux experts en informatique. Cette présentation vise à démolir ce mur en démontrant comment faire tourner des LLM (modèles de langage de grande taille, mais en fait petits, mais costauds, dans le cas qui nous intéresse) sur un simple Raspberry PI 5 (et si ça tourne sur un Pi…).

En tirant parti de la puissance d'Ollama, une plateforme de LLMs, et de LangChain, un framework de programmation d'application GenAI (Generative AI), nous ouvrons la voie à une expérimentation accessible de l'IA.

Voici ce que vous découvrirez lors de cette présentation:

  • Préparation du Raspberry PI 5: Configuration du système et installation des logiciels nécessaires.
  • Déploiement d'une stack GenAI avec Docker Compose: Mise en place d'un environnement de développement complet en quelques clics.
  • Programmation d'applications GenAI: Création de Chatbots et de documents intelligents (RAG) en Python et en JavaScript.
  • Les bases et les concepts de LangChain JS
  • Développement détaillé d'applications (mise en application des concepts): un middleware pour interroger le LLM et fournir une API, ainsi qu'un front qui utilisera ce middleware/API
  • Présentation d'applications développées en Python, avec LangChain Python et StreamLit (Disclaimer, je ne suis pas un développeur Python, mais j'ai pu préparer quelques exemples très instructifs.)

Que vous soyez débutant en IA ou expert confirmé, cette présentation vous offrira une nouvelle perspective sur l'expérimentation et le développement d'applications GenAI.

Je mettrais à disposition un projet qui permet d'installer toutes les dépendances automatiquement, ainsi qu'Ollama, les LLMs et un Web IDE pour pouvoir commencer à développer dès la fin de cette présentation.

« Développer des macros en Rust »
Tuesday 9 July 15:00 - 15:50
Amphi 137 (260 places)

Rust est un langage riche et performant mais aussi de haut niveau. Venez découvrir la méta-programmation en Rust avec son système de macros.

A travers un exemple simple, découvrez pas-à-pas les techniques de développement d'une macro ainsi que mes trucs & astuces.

« Développeurs Angular : La dernière conférence RxJS dont vous aurez besoin... »
Tuesday 9 July 10:40 - 11:30
Amphi 137 (260 places)

Format : Talk

Category : Frontend

Qui est l'audience ?

Cette présentation s'adresse aux développeurs frontend avec une première expérience conséquente sur le framework Angular (c'est-à-dire un niveau intermédiaire - 2 ou 3 années d'expérience sur Angular).

L'objectif sera de motiver les développeurs présents lors de la présentation à investir du temps pour monter en compétences sur RxJS, en présentant les avantages que peut représenter l'utilisation de la programmation réactive pour leurs projets et leur carrière.

De quoi allez vous parler ?

La présentation sera focalisée sur l'utilisation concrète de RxJS au sein d'un projet Angular, au travers de 3 cas d'implémentation courants. Pour chaque implémentation, nous présenterons un comparatif avec et sans la réactivité.

Voici une version globale de ce que nous présenterons :

Introduction : Avez-vous le problème que résout RxJS ?

Pour beaucoup de développeurs juniors, RxJS est une technologie étrange, imposée par les créateurs d'Angular dans le framework.

Mais plutôt que de subir cette décision de la Team Angular, il faut rappeler que RxJS permet de faire bien plus que des requêtes HTTP.

L'objectif sera donc de se mettre d'accord sur le problème que RxJS résout : la complexité dans la base de code.

Nous commencerons donc par définir la complexité comme la somme de 3 composantes :

  • Un état partagé et mutable. (Shared Mutable State)
  • La circulation des données. (Data Flow)
  • Le volume de code. (Code Volume)

Nous verrons comment RxJS permet d'adresser efficacement ces 3 composantes de la complexité.

Partie 1 : 100 opérateurs RxJS en 10 minutes

Un des obstacles principal à l'apprentissage de RxJS est le nombre impressionnant d'opérateurs mis à disposition par la librarie (plus de 100 !)

L'objectif sera donc de rendre l'utilisation de ces opérateurs aussi digeste et intuitive que les méthodes utilisées pour le traitement d'un tableau : map, filter et reduce.

Nous verrons que les +100 opérateurs de RxJS peuvent être classés en 4 catégories simples :

  • Création : of, fromEvent, interval, timer, combineLatest, forkJoin…
  • Transformation : map, switchMap, mergeMap, concatMap, bufferCount…
  • Filtrage : debounce, throttle, filter, distinctUntilChanged…
  • Calcul : reduce, scan, count, max…

Pour chacune des catégories, nous verrons qu'il existe plusieurs opérateurs, car RxJS s'occupe de gèrer la dimension du temps en plus d'un simple tableau.

Cette dimension supplémentaire à l'air d'ajouter de la complexité a priori. Mais cela permet de gérer l'asynchronicité dans notre code, de manière élégante et déclarative.

Partie 2 : Résoudre des problèmes de la “vraie” vie avec RxJS

Les exemples donnés dans les tutoriels ont toujours l'air d'un monde “enchanteur”, que les développeurs n'arrivent pas à appliquer concrètement dans la vraie vie par la suite…

Nous effectuerons 3 ateliers qui seront tous liés à un même requirement d'un client fictif, dans Jira. Nous traverserons 3 couches logicielles du même requirement, mais en appliquant la programmation réactive à chaque fois :

Couche de présentation (Presentational Layer)

Exemple de gestion réactive de la vue dans le cadre d'un formulaire : combineLatest, fromEvent, debounce…

Gestion de l'état (State Management)

Exemple de gestion réactive de l'état impacté par le formulaire précédent: BehaviorSubject, scan, next(), selectors & async…

Couche d'accès aux données (Data Layer)

Exemple de gestion réactive de l'accès aux données depuis un serveur distant : Requêtes HTTP & caching (HttpClientModule, catchError, timeout, map & shareReplay), Stratégies de mapping asynchrone (concatMap/mergeMap/switchMap/exhaustMap)

Partie 3 : Comment convaincre Mr. Promise et Mr. Fetch API d'utiliser RxJS ?

Une fois que l'on a découvert une nouvelle technologie et que l'on est capable de l'utiliser, il reste le plus dur… Convaincre ses collègues de changer leurs habitudes pour travailler d'une nouvelle façon.

L'objectif de cette troisième partie sera donc de convaincre le reste de son équipe de se mettre à la réactivité.

Nous présenterons un framework simple qui permet d'expliquer rapidement aux autres membres de son équipe comment utiliser RxJS au quotidien. Nous avons appelé ce framework : “Golden River, Muddy River & Golden Road”.

  1. Golden River : Quel est le flux idéal que l'on veut obtenir en sortie ? Celui qui contient directement la réponse attendue ?
  2. Muddy River : Quels flux nous avons déjà à notre disposition ? (Cf Partie 1: Opérateurs de création)
  3. Golden Road : Quels opérateurs appliquer pour atteindre la Golden River à partir de la Muddy River ? (Cf Partie 2: Opérateurs de transformation, filtrage et calcul)

Ouverture, Questions & Réponses

Ouverture : Rappelez que la programmation réactive avec RxJS est un paradigme de programmation qui peut-être utilisé en dehors d'Angular. (Notamment dans les autres frameworks frontend React & VueJS)

Question & Réponses : Répondre aux objections éventuelles et autres questions ouvertes.

Comment aller vous en parler ?

Le déroulement de la présentation sera un talk plutôt classique, composé principalement de slides et de questions au public tout au long de la présentation.

  1. Slides épurés et imagés pour se concentrer sur les explications de l'orateur.
  2. Capitaliser sur la création de contenu “online” : c'est un format dans lequel l'attention de l'audience est une ressource rare. Nous essayerons donc de reprendre la même structure de contenu pour ne pas ennuyer l'audience (présenter une histoire/anectode, donner des exemples concrets, montrer des captures d'écran).
  3. Pas de live coding prévu : pour un premier talk en présentiel devant une audience large, nous trouvons l'exercice déjà suffisamment exigeant.
« E2E : le guide du testeur intergalactique ! »
Tuesday 9 July 17:35 - 18:00
Amphi 339 (509 places)

Maintenir des tests end-to-end (E2E) est une véritable aventure alors prenez votre serviette et don't panic.

Ensemble, nous plongerons dans l'histoire d'une application de la Société Générale vieille de sept ans et toujours d'actualité. L'importance des tests dans le secteur de la finance est primordiale, et nous verrons comment ils ont été intégrés dans notre workflow de livraison.

Nous explorerons les choix stratégiques en matière de tests E2E, ainsi que les outils utilisés, comme Playwright.

Les trois axes essentiels de notre parcours seront la stabilité, la maintenabilité et l'interprétation des résultats. Au fil de cette odyssée, je vous dévoilerai comment cela s'est concrétisé au sein de ce projet et de l'équipe. Au programme, des pratiques telles que le split, la parallélisation, les Architecture Decision Records (ADR), Jenkins, Github Action et bien d'autres encore.

C'est une histoire en évolution constante, et je partagerai avec vous les défis à venir, dessinant ainsi le prochain chapitre de notre aventure.

« Et si on implémentait une Machine à Etats pour aider la petite souris ? »
Wednesday 10 July 15:40 - 16:30
Amphi 137 (260 places)

Vous êtes-vous déjà perdu dans le code d’un workflow complexe avec beaucoup de règles métier ? Entre les if-else un peu partout, les appels à des micro-services internes, les sollicitations de services externes, les callbacks, les sauvegardes en base, les retours au front, on peut facilement se retrouver avec un code spaghetti !

Le pattern machine à états nous permet de créer un processus défini clairement à partir de multiples étapes. Ces étapes sont effectuées une à une en fonction de l’état dans lequel se trouve l'objet qui parcourt le process.

Rejoignez-moi pendant 45 min pour construire une Machine à Etat from scratch.

Le use-case ? Aider la petite souris à gérer un workflow à s’en arracher les poils : collecte des dents, vérification des caries, commande et réception de pièces à la banque de France et l’expédition sous l’oreiller.

Aucun fromage, que du Java.

« Fresque de la Data »
Monday 8 July 09:00 - 12:00
Amphi 300 (110 places)

La Fresque de la Data est un atelier collaboratif conçu dans le but de familiariser les participants avec les concepts fondamentaux de la Data ainsi que d’identifier et d’évaluer les risques liés à l'utilisation de la donnée.

Tirant son inspiration de la Fresque du Climat, c’est une approche ludique, qui favorise les échanges et encourage la collaboration entre les participants, offrant ainsi une opportunité de s’aligner et renforcer l’esprit d’équipe.

Ce format innovant part du constat que la principale cause de difficultés en Data est le manque de compréhension, d'alignement et de collaboration entre les différents interlocuteurs. Pourtant, les approches classiques d'acculturation à la Data ont trop rarement l'effet escompté.

La Fresque de la Data permet ainsi de développer une image mentale des principaux concepts de la Data et de l’IA, et favorise un apprentissage par l’échange et la collaboration.

« Gemini, le Large Language Model de Google »
Wednesday 10 July 10:10 - 11:00
Amphi 339 (509 places)

Sous le capot de Bard, vous trouverez le LLM “Gemini”. Mais savez-vous que vous pouvez également utiliser son API au travers de Google Cloud et l’intégrer dans vos applications ? Gemini propose différentes tailles, de Nano à Ultra, en passant par Pro. Le grand différenciant, c’est aussi son côté “multimodal” : vous pouvez lui donner du texte, comme des images ou des vidéos ! De nouveaux cas d’utilisation s’ouvrent à vous !

Dans cette présentation, nous partirons à la découverte du modèle Gemini. Avec notre casquette Java sur la tête, nous étudierons comment faire appel à son API, en particulier à l’aide de la librairie LangChain4j.

Comment tirer parti au maximum de Gemini ? Nous verrons comment extraire des données non-structurées, comment classifier du texte, comment étendre les connaissances du modèle avec l’approche RAG (Retrieval Augmented Generation) mais aussi à l’aide de “l’appel de fonction” pour invoquer des services externes lors de la génération de texte.

Accrochez-vous ! Le décollage de la capsule Gemini est imminent !

« Hibernate Search 7: Nouveautés et cas pratiques de la recherche full-text et vectorielle Java »
Tuesday 9 July 10:40 - 11:30
Amphi 139 (160 places)

Hibernate Search 7.0 est sorti fin 2023, et la version 7.1 est déjà disponible. Découvrez toutes les nouveautés de cette dernière version et les cas d’application pratiques tels que la recherche vectorielle (kNN) qui permet d’implémenter une recherche textuelle, audio ou image à base de machine learning.

Cette conférence vous guidera à travers les changements sous-jacents, démontre des cas d'utilisation concrets et vous fournira des astuces pratiques pour tirer le meilleur parti de la dernière version de cette bibliothèque essentielle pour la persistance des données et la recherche full-text dans l'écosystème Java.

« Highly available Identity and Access Management with multi-site Keycloak deployments in the cloud »
Tuesday 9 July 14:00 - 14:50
Amphi 139 (160 places)

A single sign on solution for your customers and employees shouldn't be a single-point-of-failure in your architecture. Keycloak, a popular Open Source Identity and Access Management solution that provides single sign on, amongst other capabilities, is no exception to this.

A clustered Keycloak deployment in a single site or datacenter provides sufficient availability for many. An increasing number of organizations need to utilize multiple sites for improved resiliency or to meet legal requirements. In 2023, Keycloak overhauled its multi-site capabilities for public cloud infrastructures, tested them thoroughly and provided deployment blueprints to the community. They show how to set up an AWS infrastructure and deploy Keycloak across multiple sites. This talk presents, from an architects and developer perspective, how we approached the problem, which architecture we chose, the challenges we faced and which tools helped us along the way. Expect to dive into concepts like load shedding, cache stampedes, and automated failover, and to see tools like Gatling, Helm, OpenTelemetry, Kubernetes Operators and AWS infrastructure in action. We will also provide an outlook for the next steps in our journey.

These insights will help you to improve your Keycloak deployments as well as design and test your own applications so they can withstand high load and site failures.

« Il faut sauver le dernier giga de RAM »
Wednesday 10 July 15:40 - 16:30
Amphi 300 (110 places)

A l'approche des fortes volumétries de fin d'année, notre client ne peut plus se permettre d'ajouter à nouveau de la RAM sur son environnement de prod. Avec 96Go déjà en place sur le serveur, ça peut se comprendre !

Le mot d'ordre : réduire la consommation mémoire de notre application.

- "On a des metrics ?
- Non.
- Accès à la prod ?
- Non.
- Un composant identifié ?
- Non, plusieurs dizaines.
- Et on a combien de temps ?
- 3 semaines."

A travers ce talk nous vous présentons les outils que nous avons utilisés pour identifier les composants gourmands en RAM (Java Flight Recorder, MemoryAnalyzer, pg_statements, hypersistence-utils …). Mais aussi comment nous les avons améliorés afin de réduire leur empreinte mémoire.

La stack du projet : Java, Spring, PostgreSQL.

« Intégrons, faisons grandir et progresser les jeunes devs: Bonnes pratiques et retours d'expériences à l'intention des (vieux) devs. »
Tuesday 9 July 17:10 - 17:35
Amphi 339 (509 places)

Êtes-vous confronté au défi d'encadrer et de développer les compétences des jeunes développeurs ? En tant que lead développeur ou développeur expérimenté, vous êtes souvent amené à guider techniquement de nouveaux talents. Mais quelle approche adopter pour assurer leur progression de manière optimale ?

Depuis plusieurs années, je participe à différentes initiatives de mentorat et d'accompagnement de jeunes développeurs. Je vous propose donc de partager les bonnes pratiques que j'ai pu mettre en oeuvre ainsi que les écueils que j'ai rencontré.

Nous saurons donc à la fin de cette présentation comment intégrer et rendre autonomes les nouveaux arrivant.es le plus efficacement possible.

« Java SE en 2024 »
Monday 8 July 14:00 - 17:00
Amphi 139 (160 places)

Java poursuit à bon rythme ses évolutions et offre de nombreuses améliorations concernant la syntaxe, l'ajout de nouvelles API, la programmation parallèle et concurrente, l’outillage, … qui dynamisent la plateforme et simplifient la vie du développeur.

Dans ce workshop, venez découvrir et mettre en pratique certaines des fonctionnalités phares de Java disponibles depuis ces dernières années, ainsi que celles à venir dans le JDK 22.

Au programme : pattern matching, string templates, records, threads virtuels, scoped values, structured concurrency , stream gatherers, et bien d’autres !

Pour mener à bien ce workshop, les requis sont :

  • Bonne connaissance et pratique de Java 11+
  • Un JDK 22
  • Un IDE compatible JDK 22 (ou un éditeur de texte pour les puristes !)
« Keynote organisateurs »
Tuesday 9 July 09:00 - 09:20
Amphi 339 (509 places)
« Keynote to be announced »
Tuesday 9 July 09:20 - 10:00
Amphi 339 (509 places)
« Keynote to be announced »
Wednesday 10 July 09:00 - 09:40
Amphi 339 (509 places)
« Kubernetes. From 0 to Production with Java (and Quarkus) »
Wednesday 10 July 11:10 - 12:00
Amphi 139 (160 places)

I hear you thinking, “is this yet another session about doing cloud native development?”. Well.. yes, sort of, but we promise it’s going to be a good one - or so we think :).

In this session we’re going to talk (and demo!) about what it means to be a good Cloud Citizen - which is more than merely putting an application in a container and deploying it. To optimize your Java application's performance and resilience in the cloud, it is essential to consider factors such as providing real-time health status through fine-grained metrics. You’ll also need to ensure fast startup, and avoid excessive resource consumption within the cluster.

Being a good Cloud Citizen also involves streamlining configuration, deployment and upgrade processes. By integrating these tasks seamlessly, the application can facilitate smooth deployments and upgrades, which will lead to more efficiency and ease of management.

Join us in this session and embark on a journey to develop a perfect(ish) Cloud Native Java Application with Quarkus. This journey will encompass a comprehensive understanding of both the development and operational perspectives, aiming to optimize applications for the cloud environment. You will get an overview of the Kubernetes basics from a Java developer’s perspective and learn step-by-step how to get your application production ready on Kubernetes.

« L'observabilité dès le développement: Maîtrisez vos applications Java en production avec Grafana »
Monday 8 July 09:00 - 12:00
Room 128

Imaginez, c'est vendredi après-midi. Vous êtes impatient de profiter de votre week-end quand un ingénieur Ops vous transfère un problème bloquant avec une erreur HTTP 500.

Il n'a en effet, pas réussi à identifier l'origine en raison d'un manque d'informations contextuelles. Après quelques heures, vous parvenez enfin à l'identifier en le reproduisant et en le déboguant sur votre ordinateur.

Si vous avez l'habitude de faire face à de tels problèmes, cela signifie sûrement que vous avez négligé le développement d'une des fonctionnalités les plus importantes de votre application : l'observabilité !

Au cours de cet atelier, nous implémenterons des bonnes pratiques de logging et mettrons en oeuvre toute une stack d'observabilité: des librairies à la plateforme en se basant sur les produits Grafana (Tempo, Loki, Prometheus).

Nous saurons donc comment adapter nos applications pour la production et faire des Ops nos meilleurs amis!

« La recherche à l'ère de l'IA »
Wednesday 10 July 15:40 - 16:30
Amphi 339 (509 places)

La recherche ne se contente plus de l'approche maintenant traditionnelle basée sur la fréquence des termes (TF/IDF ou BM25) mais plus sur la tendance actuelle du machine learning où les nouveaux modèles ont ouvert une nouvelle dimension pour la recherche.

Cette conférence donne un aperçu de :

  • La recherche “Classique” et ses limitations
  • Qu'est qu'un modèle de machine learning et comment vous pouvez l'utiliser
  • Comment utiliser la recherche vectorielle ou la recherche hybride dans Elasticsearch
  • Comment ChatGPT d'OpenAI ou les “large language models” (LLMs) similaires viennent jouer naturellement avec Elastic

La démo principale montre comment générer des embeddings à partir de musiques puis comment trouver la musique qui s'approche le plus d'une musique que nous fredonnons 🎶🎸🎻.

« Le Japon au-delà des mangas et des sushis »
Tuesday 9 July 14:00 - 14:50
Room 128

Dans cette session, nous souhaitons vous présenter le Japon et explorer sa culture pour aller au-delà des stéréotypes bien connus, tels que les mangas et les sushis.

Entre images, discussions et vos questions, nous vous proposons d'explorer les multiples facettes de cette culture fascinante. En nous appuyant sur nos expériences vécues lors de nos séjours au Japon, nous vous guiderons à travers ce pays hors du commun et peut-être vous donnerons-nous envie d'aller plus loin et de le découvrir personnellement.

Avec ce talk, nous souhaitons nous adresser à tout public, qu'il s'agisse de personnes curieuses de connaître le Japon et sa culture ou de ceux qui le connaissent déjà et souhaitent avoir une vue différente de ce pays.

Concernant le format, nous prévoyons d'animer une discussion interactive en présentant certains aspects de la culture et de la langue, puis de discuter avec les participants pour répondre à leurs questions et sortir de cette session avec une perspective différente sur le Japon.

« Le duo gagnant : Antora et AsciiDoc pour une documentation sans frustrations »
Wednesday 10 July 11:10 - 12:00
Amphi 137 (260 places)

Le contenu de votre documentation est éparpillé à travers plusieurs systèmes, et l'assembler vous donne l'impression de résoudre un casse-tête géant ?
Vous vous sentez enlisé dans les extensions du parser Markdown ou limité par un format ésotérique pour les sources de votre documentation ?

Si la réponse est “OUI, et je n’en peux plus !”, cette session vous permettra de découvrir une solution efficace qui pourrait bien mettre fin à ce cauchemar.
Nous plongerons progressivement dans les concepts d'Antora en vous montrant comment créer, en direct, un site de documentation technique.
Vous saurez ainsi pourquoi le duo AsciiDoc / Antora est une combinaison utilisée pour générer la documentation des projets tels que Spring Security, Apache Cassandra ou encore Hazelcast.

Chez Bonitasoft, l'utilisation de ce duo est également un succès. Venez profiter de notre expérience pour comprendre comment nous avons pu nous recentrer à nouveau sur l'essentiel : le contenu technique et fonctionnel de notre documentation.


Il n'y a aucun pré-requis technique pour assister à la présentation. La syntaxe AsciiDoc, la configuration YAML et le fonctionnement d’Antora seront introduites tout au long de la démonstration.

« Le retro gaming : Un bon passe-temps pour les développeurs »
Tuesday 9 July 16:10 - 17:00
Room 128

Après une bonne journée de boulot j'aime bien me détendre en améliorant ma console de retro-gaming maison en mettant à jour mon retropi, trouver la solution à un bug sur mon émulateur SNES et en mettant en place un backup de mes jeux retro préférés sur GCP.

« Le triathlon de la data sportive: Capture/Analyse/Quantify »
Wednesday 10 July 10:10 - 11:00
Room 128

Nos montres connectées, tracker et même smartphones nous fournissent de plus en plus de data. C'est majoritairement utilisé pour le sport, et on ajoute aussi la balance, des capteurs dédiés sur le vélo, ou même du matériel spécifique pour certains sports. Après avoir passé en revue ces principales métriques et capteurs, on regardera comment ils sont utilisés de manière individuelle mais aussi de manière globale. On finira avec une petite session de code, car le code c'est la vie (avec les pizzas), on regardera ce que l'on peut faire de fun avec ces nouvelles métriques via des écrans de montres, et des applications sur montres Garmin.

« Les super pouvoirs du package java.util.function »
Wednesday 10 July 14:30 - 15:20
Amphi 339 (509 places)

Le package java.util.function fêtera ses 10 ans en 2024 et force est de constater que malgré son omniprésence dans nos développements, son utilisation reste probablement sous-estimé et mal comprise.

Avez-vous déjà utilisé ces classes comme paramètre de vos méthodes ? Avez-vous déjà utilisé leur capacité de composition ? Ne vous êtes vous jamais dit que cet héritage douteux entre deux classes, ne vous plait pas, mais que faute de mieux, il reste là ?

Sans pour autant abuser des concepts de programmation fonctionnelle, nous aimerions vous présenter pendant ce talk à travers de cas concrets, une utilisation plus avancée du package java.util.function.

Fonctions anonymes, d'ordre supérieur ou encore la composition de fonctions, toutes ces notions n'auront désormais plus de secret pour vous et trouveront une place de choix dans votre boîte à outils de refactoring.

Vous repartirez avec un dépôt git avant/après en prime !

« Live coding musical : vous savez coder ? Devenez compositeur avec WebAudio et WebMIDI ! »
Tuesday 9 July 10:40 - 11:30
Room 128

La théorie musicale, c’est compliqué ? Avec du code, pas tant que ça ! Dans cette séance de live coding musical, je vous emmène dans ma découverte des bases de la théorie musicale et de la composition en codant en JavaScript.

Avec comme seuls outils un navigateur avec ses API WebAudio et WebMIDI et la librairie Tone.js, on partira d’un “biiiip” pour coder en 45 minutes un morceau de musique électro.

Quelques samples bien choisis, une pincée de séquences harmonieuses, une dose d’aléatoire encadré, un contrôleur MIDI pour la “human touch” et hop, tout le monde se mettra à danser ! David Guetta n’a qu’à bien se tenir !

« Maîtriser Angular 17: Développement Avancé et Techniques Novatrices »
Monday 8 July 14:00 - 17:00
Room 111

Cet atelier interactif offre une expérience pratique et approfondie pour les développeurs souhaitant explorer les fonctionnalités de la dernière version d'Angular. Au cours de cette session immersive, vous aurez l'occasion de plonger dans les aspects pratiques de la mise en œuvre des nouvelles fonctionnalités de Angular 17, en acquérant des compétences avancées et en découvrant des techniques novatrices.

Les sujets abordés incluront la gestion optimisée des états d'application, le nouveau Control Flow et bien d'autres choses. Des exercices pratiques vous guideront à travers de cas d'utilisation concrets, mettant en lumière les avantages de ces fonctionnalités dans des scénarios du monde réel.

Vous repartirez de cet atelier avec un aperçu des nouvelles pratiques de développement avec Angular 17 que vous pourrez appliquer immédiatement dans vos projets. Rejoignez-nous pour l'apprentissage interactif et de découvertes pratiques, où nous explorerons ensemble les possibilités que Angular 17 offre pour l'avenir du développement web.

« Microservices, maxi supplice »
Tuesday 9 July 10:40 - 11:30
Amphi 339 (509 places)

Sur notre projet, comme souvent, la dette technique a commencé au jour 1.

Après 2 ans avec une dizaine de développeurs, l’application, découpée depuis son commencement en micro-services (7 puis 4), souffre de problèmes de couplages entre services, et donc, de gros problèmes de performances, comme des requêtes essentielles qui répondaient en plus de 44sec (p95).

Elle est déjà utilisée en production par de gros clients et cet enjeu de performance freine son développement.

Dans ce contexte, nous allons orchestrer une task force de 4 développeurs et Ops sur environ 3 mois pour fusionner ces micro-services en un monolithe. Cette fusion doit s’inscrire dans la roadmap d’un projet en évolution constante et gêner le moins possible les ajouts fonctionnels.

Dans ce talk, nous parlerons de pourquoi et comment détruire une archi micro services pour retourner vers un majestueux monolithe :

  • Pourquoi un découpage en micro-services nécessite une maturité technique et métier que nous n’avions pas
  • Comment nous avons commencé par instrumenter pour détecter les bugs ou variations de performances
  • Comment nous avons analysé l’existant pour en déduire un plan avec des itérations régulières et moins risquées
  • Comment nous avons utilisé des outils visuels pour embarquer et synchroniser les autres équipes
  • Comment nous avons géré les problèmes rencontrés en cours de route

Avec ce talk nous espérons vous montrer qu’il est toujours possible de résorber ce genre de dette technique. Si nous l’avons fait, vous pouvez y arriver sur votre projet et bénéficier de notre retour d’expérience.

« Mission Impossible - Help Tom Cruise leverage OpenShift AI to stop the crazy train before it’s too late ! »
Monday 8 July 14:00 - 17:00
Amphi 137 (260 places)

Message to Ethan Hunt : “The train is running mad at full speed and has no driver ! Your mission, should you choose to accept it, is to train and deploy an AI model at the edge to stop the train before it crashes. This message will self-destruct in five seconds. Four. three. Two. one.  tam tam tada tum tum tada tum tum tada tum tum tada tiduduuuuummmm tiduduuuuuuuuummm (mission impossible theme)”

This session can be delivered as a breakout session or as a lab.

Lab version :

A Lego City train (with a webcam) on a circuit is set up on a table at the center of the room. If you place the stop sign and the train stops, you win ! Ten teams, four persons per team and a train running mad at full speed. The ten teams compete to use OpenShift AI to train a model in order to recognize the traffic signs and stop the train before it’s too late.

There are the four personas in each team: data engineer, data scientist, operations and machine learning teams. They will combine their efforts to implement an AI platform that covers all stages of the MLOps life cycle.

  • The operations persona will be in charge of creating the AI platform in a disconnected environment leveraging Nvidia GPUs. They will also configure an edge device with microshift to support the model deployment.
  • The data engineer will collect, transform and make reliable data available using streaming.
  • The data scientist will build an object detection model and create a data science pipeline. They will deploy the model and monitor related metrics and drift.
  • Finally, the machine learning engineers will optimize inference and automate the model deployment up to the edge.

Breakout version :

A Lego City train (with a webcam) on a circuit is set up on stage. The presentation describes the architecture designed to make the train run on auto-pilot :

  • AI model (YOLO) deployed on a Nvidia Jetson Orin Nano
  • Lego train driven using Bluetooth Low Energy
  • Nvidia Jetson Orin Nano running Red Hat Device Edge with Microshift
  • Data acquisition, transformation, aggregation using AMQ, Kafka and Apache Camel
  • Data presentation using Quarkus
  • Data labelling, model tuning & training
  • Model deployment at the edge
« Mister WIP & Miss VSM in FactoryTown©️ »
Tuesday 9 July 11:40 - 12:30
Amphi 300 (110 places)

Charly WIP est un fermier solitaire de l’Amérique de l’ouest habitant Factory Town©️. Le jour où plusieurs familles s’installent dans sa ville, il doit soudainement faire face à l’augmentation des besoins en nourriture, en eau et en transports. Installé depuis longtemps dans les environs, il est catapulté chef des opérations et doit assurer la pérennité de Factory Town©️.

Sur la seule base de sa logique, du peu de moyens qu’il possède et avec l'aide de Miss Lean VSM, première cartographe des processus de l'histoire, WIP invente alors un système d’optimisation de process à qui il donnera leur nom : le Value Stream Mapping et le Work In Progress.

Venez découvrir une explication et une illustration décalée de ce qu’est l’optimisation de process grâce à mon jeu favori du moment : Factory Town©️.

« NetObserv deep-dive: allons explorer VOTRE réseau »
Monday 8 July 14:00 - 17:00
Room 129

NetObserv est un outil de capture et de visualisation des flux réseau pour Kubernetes / OpenShift, développé par mon équipe chez Red Hat. Entièrement open-source donc librement accessible, il utilise la techno eBPF pour une capture avec un minimum d'impact sur vos workloads, génère de nombreuses métriques, vous offrant même la possibilité d'en créer de nouvelles, et en guise de visualisation propose une topologie, une vue détaillées des flows et de jolis graphiques, le tout entièrement filtrable et proposant différents niveaux d’agrégation. En terme de données, vous aurez accès aux byte rates, latences TCP, packet drops, DSCP, etc.

Le but de l'atelier sera donc d'installer et d'explorer le réseau via NetObserv, si possible avec vos propres workloads, sinon avec des workloads créés pour l'occasion. Il sera nécessaire d'avoir un cluster Kubernetes à disposition. Nous développons NetObserv en priorité pour OpenShift, mais la plupart des composants y sont agnostiques. Seul le plugin Console, pour la visualisation, est vraiment taillé pour OpenShift … quoique, si le cœur vous en dit, nous pourrons tenter de le hacker ensemble et le rendre accessible hors OpenShift.

Quelques limitations cependant:

  • L'agent eBPF requiert un noyau Linux pas trop vieux (de préférence >4.20 voire >5.14 pour être feature-complet)
  • Les clusters utilisant un CNI qui eux-mêmes ont un usage exclusif d'eBPF seront incompatibles. Comme avec Cilium, par exemple. NetObserv est abondamment testé avec ovn-kubernetes, mais sans pour autant y être couplé, et en théorie devrait fonctionner avec les autres CNI utilisant la stack réseau du noyau Linux.

Sans garantir que tout fonctionnera parfaitement dans tous les environnement, nous ferons de notre mieux pour que ce soit le cas.

« Observabilité : dépoussiérer Prometheus avec VictoriaMetrics »
Tuesday 9 July 11:40 - 12:30
Amphi 137 (260 places)

Prometheus s'est imposé comme un standard de facto dans nos infrastructures lorsque l'on souhaite faire de l'observabilité en collectant des métriques. Dans un contexte où l'on a besoin de se mettre rapidement à l'échelle (scalable), Prometheus commence à montrer ses faiblesses.

Prometheus ne possède pas de système de haute disponibilité de manière native, il faut obligatoirement passer par des solutions plus ou moins complexes comme Thanos ou Cortex. Ces solutions s'ajoutent à la lourdeur originelle de Prometheus.

VictoriaMetrics vient corriger tout cela en offrant une architecture micro-services où tout est découpé pour de meilleures performances et une meilleure disponibilité sans perte de données.

Ainsi je ferais un bref historique de l'observabilité, des solutions existantes, et du pourquoi complet de VictoriaMetrics, car il y en a beaucoup à dire sur cet outil prometteur !

Je vous ferais également un retour d'expérience sur l'utilisation de VictoriaMetrics Cluster aux Restos du Cœur et comment nous avons pu ainsi réduire les coûts en consommant plus de métriques qu'auparavant.

« Passer de Dallas à Happy Days: conseils pour hacker positivement sa vie »
Wednesday 10 July 11:10 - 12:00
Room 128

Les développeurs aiment bien optimiser leur environnement de dev aux petits oignons. Et on s’entretient physiquement en faisant du sport – ou pas mais on se dit que ça serait pas mal 😜.
Et votre mental ? Vous optimisez votre mental ? En prenez-vous même soin ?

Dans cette présentation, Emmanuel (Red Hat, Quarkus, Les Cast Codeurs, Hibernate, etc) partage son expérience sur l’importance de, et les approches pour garder la tête sereine dans notre vie de travailleur de l’information et surtout d’humain passant par des coups durs. Via le prisme de son vécu, Emmanuel discutera comment s’organiser sans couler, comment prendre soin de soi mentalement et aussi d’un ensemble de conseils autour de la façon de voir son évolution professionnelle.

L’objectif est de vous avoir incité à réfléchir sur certains aspects de votre vie, d’avoir identifié quelques approches que vous voudrez mettre en place ou d’avoir déniché quelques outils à mettre dans votre arsenal.

« Pourquoi vous devriez mettre vos souris à la poubelle... »
Tuesday 9 July 17:10 - 17:35
Amphi 137 (260 places)

… et utiliser un gestionnaire de fenêtre en carrelage.

Un gestionnaire de fenêtre en carrelage ( ou Tiling Windows Manager dans la langue de Shakespeare ) vous permet de reprendre la main sur l'interface de votre système d'exploitation.

Comment peut-on gagner en productivité en débranchant nos souris?

Quels sont les concepts d'un TWM, pourquoi c'est génial et comment ça s'utilise et se configure au quotidien ?

Retours d'expérience sur mon utilisation de sway et comment le configurer pour faire ce que vous voulez.

« Pulumi : Gérer son infrastructure avec son langage de programmation préféré »
Wednesday 10 July 10:10 - 11:00
Amphi 137 (260 places)

N’avez-vous jamais rêvé de pouvoir gérer votre infrastructure avec votre langage de programmation préféré ?

La gestion d'infrastructures en tant que code (IaC) a révolutionné la manière dont les équipes déploient, maintiennent et évoluent leurs environnements informatiques. Terraform, l'un des outils les plus populaires dans ce domaine, a permis aux équipes de créer des infrastructures reproductibles et évolutives. Cependant, l'arrivée de Pulumi a ouvert de nouvelles perspectives en offrant une approche novatrice pour le provisionnement d'infrastructures.

Cette conférence se penche sur les avantages de Pulumi par rapport à Terraform, en explorant comment Pulumi repense les fondements de l'IaC. Nous mettrons en lumière les points forts de la solution comme la programmation multi-langages, etc.

Elle rapporte également l’utilisation de Pulumi au sein des Restos du Cœur. Utilisation qui marque une étape significative dans l'optimisation et la modernisation de la gestion de l'infrastructure informatique.

En tant qu'organisation caritative dédiée à l'aide alimentaire et à la lutte contre la pauvreté, les Restos du Cœur dépendent fortement d'une infrastructure informatique fiable et évolutive pour coordonner leurs activités, gérer les dons et assurer une communication efficace.

Pour terminer cette conférence, nous réaliserons une démonstration de l’utilisation du SDK Pulumi pour déclarer notre infrastructure en utilisant le Python et le Go, pour montrer ainsi, qu’il n’a jamais été aussi simple pour un développeur de gérer et provisionner l’infrastructure.

« Quarkus : Greener, Better, Faster, stronger. »
Tuesday 9 July 11:40 - 12:30
Amphi 139 (160 places)

Quarkus n'est maintenant plus un nouveau venu dans l'écosystème java, et de plus en plus de projets l'adoptent comme base de travail, mais peu de développeurs comprennent vraiment à quel point la magie se cache dans ses extensions.

C'est en développant l'extension Quarkus Min.io que j'ai découvert une partie de leurs capacités, et comment elles sont en fait au coeur des promesses du framework. Leur développement est simple et permet de rendre un grand nombre de services à nos utilisateurs. Mais surtout elles permettent de ne rendre que les services dont l'utilisateur à besoin nous permettant d'économiser mémoire, cpu et de raccourcir les temps de démarrage.

Et si vous veniez en développer une avec moi et que nous mettions en oeuvre quelques uns de ces tours de magie ?

Vous pourriez peut être aussi aimer ça et repartir avec quelques idées !

« Quarkus et Infinispan : Multiples solutions, un duo gagnant »
Wednesday 10 July 13:30 - 14:20
Amphi 139 (160 places)

Quarkus se positionne de plus en plus comme un acteur puissant au sein de l'écosystème Java, attirant l'attention par sa puissance, sa simplicité et son expérience développeur. En parallèle, Infinispan est un produit mature de cache en mémoire distribué, polyvalent et utilisé dans divers scénarios tels que le mode cluster de JBoss, le caching et la réplication multi-site de Keycloak, Camel ou encore Spring-Boot. Le tout pouvant fonctionner de manière autonome en tant que serveur des données en mémoire extrêmement performante et scalable.

La version 15 d'Infinispan sortie en 2024, déjà intégrée à Quarkus, étend encore davantage ses capacités en introduisant de nouveaux cas d'utilisation. A la recherche full-text d'Infinispan se rajoute aussi la recherche vectorielle, critique pour l’intégration avec Langchain. Puis si tu es un.e utilisateur.trice assidu.e de Redis, j’ai aussi une nouvelle pour toi: Infinispan implémente une grande partie des commandes du protocole Redis (RESP), te permettant de rajouter, par exemple, la fonctionnalité de réplication de données multi-site avec une transition pratiquement transparente grâce au hot-replacement dans tes applications.

Joigne-toi à moi pour découvrir ou redécouvrir la puissance de Quarkus avec Infinispan !

« Quarkus: Supersonic, Subatomic Full-Stack Development »
Wednesday 10 July 15:40 - 16:30
Amphi 139 (160 places)

Plongez dans l’avant-garde du développement full-stack lors de cette session éclairante, où nous explorons la synergie entre Java et JavaScript grâce à la puissance de Quarkus. Ce framework Java natif pour Kubernetes redéfinit les standards d'efficacité, permettant aux développeurs de construire des services back-end robustes et des fronts-end dynamiques et réactifs, sans la complexité habituellement associée aux environnements JavaScript. Avec Quarkus, développez et déployez une application full-stack utilisant JavaScript pour le front-end, le tout sans nécessiter les processus de construction npm traditionnels ou d'autres complications front-end.

Cette présentation complète vous guidera dans la création d'une application full-stack homogène qui marie un back-end Java alimenté par Quarkus à un front-end élégant basé sur JavaScript. Nous détaillerons comment Quarkus élimine les complexités habituellement liées à npm, offrant un chemin simplifié du développement au déploiement. Découvrez la puissance de rédiger votre code front-end dans un environnement JavaScript qui s'intègre directement avec votre back-end Java, le tout fonctionnant harmonieusement dans l'écosystème Quarkus.

À la fin de cette session, vous serez prêt à révolutionner votre processus de développement full-stack, atteignant haute performance et efficacité sans les tracas de npm. Nous vous montrerons comment Quarkus améliore non seulement votre développement back-end avec Java mais simplifie également votre workflow front-end, fournissant une plateforme cohésive et puissante pour construire des applications modernes.

Saisissez cette opportunité de transformer votre stratégie de développement et d'amplifier vos capacités full-stack. Rejoignez-nous pour débloquer le potentiel de l'association de Java avec JavaScript dans Quarkus, rendant votre processus de développement supersonique et subatomique, tout en restant simplifié et direct.

« REX: Data and FinOps: sustaining the cloud honeymoon without the fiscal hangover »
Tuesday 9 July 15:00 - 15:50
Amphi 300 (110 places)

Join Veepee data specialists on a 50min odyssey through the highs and lows of cloud financial operations (FinOps) in the context of a centralized data organization.

This talk strips away the starry-eyed idealism of the cloud honeymoon period, revealing our journey towards cost-optimized data handling in a post-infatuation world. Discover the strategies that led us from overwhelming bills to a sustainable, controlled expenditure in cloud data engineering services.

We'll provide insights into the pragmatic shift required to marry the innovative potential of the cloud with a cost-conscious discipline.

Discover through compelling stories how we refined our streaming pipelines without breaking the bank and how we became experts at utilizing the BigQuery slot mechanism for efficient, cost-friendly scalability.

Notes:

  • This talk will be presented jointly by Victor Cumer and Pascal Cohen
  • It can be a 25 mn talk or extended to 50 mn with more details on lived experiences
« Rendez BPMN totalement cloud-native avec Quarkus et Kogito »
Wednesday 10 July 15:40 - 16:30
Amphi 139 (160 places)

Avec l’essor des architectures Cloud-native, les frameworks historiques de Java doivent évoluer et se réinventer pour migrer vers le cloud. La gestion des processus métier (BPM) n’échappe pas à cette règle.

Lorsqu'il s'agit de créer un workflow BPM en Java, les moteurs jBPM et Drools sont les premières solutions qui viennent à l'esprit de la plupart des développeurs. Ils sont open source, faciles à configurer et très complets. Cependant, ils n'ont pas été construits pour le cloud.

Ne paniquez pas ! Kogito est là pour résoudre cette limitation.

Kogito est un projet open source de Red Hat. Son objectif est d'amener l’automatisation des processus métier de bout en bout dans le cloud.

Cette université commencera par une brève introduction de BPMN et jBMN e, qui permet aux business analyst de concevoir graphiquement leur workflow.

Ensuite, nous montrerons, en live-coding, comment créer un workflow cloud-native avec Quarkus et Kogito et le déployer sur OpenShift (ou Kubernetes).

Le résultat sera un microservice REST capable d'orchestrer d'autres services.

« SSO made easy with Quarkus OIDC »
Tuesday 9 July 15:00 - 15:50
Amphi 139 (160 places)

If you build an application you often end up needing authentication and authorization. Instead of building this yourself we can deliver a SSO experience for our users with OpenID Connect (OIDC). So that we can delegate user management and role based access control (RBAC) to our identity provider and focus on delivering business value first.

Quarkus focuses on delivering a great developer experience, providing hot reloading, automatic testing and more. During this session Willem will show you how easy it is to set up SSO in a real Quarkus app. From local dev mode to production.

« Sell your talk »
Tuesday 9 July 10:00 - 10:20
Amphi 339 (509 places)
« Sell your talk »
Wednesday 10 July 09:40 - 10:00
Amphi 339 (509 places)
« Simplifying API Testing and Mocking with TestContainers »
Wednesday 10 July 14:30 - 15:20
Amphi 139 (160 places)

If you have been developing your applications using modern techniques, you might have heard about unit testing. As they say, “testing is the art of doubt!” However, in the age of event driven architecture, configuring the full testing environment might be intimidating.

Testcontainers have established themselves as a go-to solution for database, middleware, and cloud services integration testing, but what about your regular asynchronous business services and APIs? Enter Microcks, an open-source cloud-native tool (CNCF Sandbox project), ready to work with Testcontainers, and provide a solution for mocking and testing APIs without extensive coding.

This collaboration simplifies the process of configuring complex settings, allowing for the adoption of a strong Shift-Left approach to integration testing. The beauty of it is that this methodology is universally applicable, catering to a wide range of protocols, whether Apache Kafka, gRPC, GraphQL, or REST, regardless of your technological stack, be it Java, Go, Node, or others.

We will demonstrate an incredible developer experience that truly brings joy to your Java Quarkus applications and empowers you to build extensive and reliable integration tests, ensuring your microservices communicate as expected every time.

« Sur la route en toute sécurité »
Wednesday 10 July 10:10 - 11:00
Amphi 300 (110 places)

En 1999, le tunnel du Mont Blanc s'embrasait et faisait 39 morts. Au delà de la catastrophe elle même, cela a entrainé de nombreux changements.

Au niveau européen, les normes en termes de ventilation, de gestion d'incendie et de gestion du trafic ont évoluées. Une obligation de surveillance globale des ouvrages et un examen de sécurité périodique ont été instaurées. En termes d'infrastructures, cela a entrainé la création de nouvelles galeries de sécurité ou l'installation de systèmes plus performants.

En partant des équipements électriques jusqu'au système d'aide à l'exploitation, je vous propose un tour d'horizon des technologies mises en oeuvre dans un tunnel routier.

De l'extracteur d'air au capteur de pression sur une porte, chaque équipement doit pouvoir être supervisé et pour certains, commandé. Pour cela, des progiciels existent et des automates sont utilisés pour assurer la liaison entre ces logiciels et les équipements. Un système d'aide à la supervision permet d'assurer la traçabilité des évènements et des actions entreprises par le superviseur. Tout cela doit bien sûr répondre à des exigences de disponibilité et de redondance.

Venez découvrir l'architecture que nous avons mise en place sur nos projets de rénovation de la supervision des tunnels autoroutiers. On parlera Spring, Redis et JMS entre autres…

Vous n'emprunterez plus un tunnel de la même manière après ce talk.

« Sécurisons nos utilisateurs grâce au Mozilla Observatory »
Tuesday 9 July 10:40 - 11:30
Amphi 300 (110 places)

Assurer la sécurité d'une application web est une tâche complexe qui nécessite une attention particulière. Il est difficile de savoir si son site web est suffisamment protégé et s'il respecte les normes de sécurité habituelles. Pour aider les propriétaires de sites web à évaluer leur sécurité, la fondation Mozilla propose un outil d'audit gratuit qui permet de vérifier rapidement si son site web respecte un ensemble de règles de sécurité.

Cependant, il est important de noter que l'utilisation de l'outil d'audit ne suffit pas à garantir la sécurité de votre site web. Si toutefois les propriétaires de sites web suivaient les pratiques de sécurité recommandées, le web serait déjà beaucoup plus sûr pour tous.

Dans le cadre d'un livecoding, je vous invite à suivre mes instructions pour améliorer la sécurité de votre site web. Nous allons travailler ensemble pour passer votre site web d'un niveau F à un niveau A+ dans le Mozilla Observatory.

« Sécurité automatisée: Regardez vos failles en face. »
Wednesday 10 July 11:10 - 12:00
Amphi 339 (509 places)

Les failles sont détectées 212 jours après leur introduction

Il faut en moyenne 212 jours pour détecter une faille de sécurité. Et au moins 50% des sites web contiennent une vulnérabilité critique. Vous en faites peut être partie.

Les tests d'intrusion, un moyen temporaire de détecter et fixer ses failles

Bien souvent, les failles de sécurité sont comme le monstre qui se cachaient sous notre lit étant enfant. Nous en avons peur sans oser les regarder en face. Un petit test d’intrusion nous rassure pour quelque temps comme les parents nous assurant qu’il n’y a rien. Mais ont-ils bien regardé ? Et les quelques monstres qu’ils ont chassés, sommes nous sûrs qu’ils ne reviendront pas demain ?

Il est nécessaire d'automatiser et de comprendre les causes des failles

Mon but est de démystifier les failles de sécurité en les considérant comme des défauts dont il faut fixer la cause profonde. Comme un testeur QA (Quality Assurance), l’expert cybersécurité vient vérifier au quotidien l’introduction de failles. Il aide à comprendre la cause de la faille et à mettre en place des moyens de protection en amont grâce à un outil Lean: le QRQC / Dantotsu.

Des outils pour détecter et éradiquer les vulnérabilités

En sortant de ce talk, vous aurez une méthode pour détecter et éradiquer les vulnérabilités sur vos projets grâce à trois axes:

  • Avoir moins peur d’aller voir vos failles de sécurité
  • Comprendre certains outils d'automatisation de cybersécurité
  • Utiliser un outil Lean pour mieux analyser vos failles et mettre en place des contre-mesures durables automatiques
« The Art of Java Language Pattern Matching »
Tuesday 9 July 17:10 - 18:00
Amphi 139 (160 places)

The goal of project Amber within OpenJDK is to explore the inclusion of smaller, productivity-oriented Java language features. One part of this that has delivered new functionality in recent versions is pattern matching. Pattern matching combines application code logic to test if an expression has a specific type or structure and extract components of its state for processing. Pattern matching is now well embedded in the Java language using the following features, defined by JDK Enhancement Proposals (JEPs)  Pattern matching for instanceof (JEP 433)  Pattern matching for switch (JEP 441)  Record patterns (JEP 440)  Unnamed patterns and variables (JEP 456)  Primitive types in patterns, instanceof and switch (JEP 455) In this session, we’ll look at the details of these new language features and a more general look at pattern matching. We’ll also explore future features in this area such as array patterns, which may be included in a subsequent Java release. By the end of the session, you’ll be ready to use these powerful new features.

« Theming : Faites peau neuve en 50 minutes top chrono »
Wednesday 10 July 13:30 - 14:20
Amphi 137 (260 places)

Adieu les bibliothèques et frameworks ! Avec les avancées des standards CSS, une révolution est en marche. Fini les bundles énormes et les mises à jour interminables.

En seulement 50 minutes, découvrez comment créer un système de theming totalement natif. Quelques lignes de CSS, un simple bouton HTML, et c'est tout ! Les possibilités et les avantages sont infinis, performances, accessibilité, lisibilité… Revisitez les fondamentaux des custom properties et explorez les possibilités qu'offrent les pseudo-éléments et les pseudo-classes, jusqu'aux data-attributes.

Que vous soyez un développeur front-end, que vous gériez un ou plusieurs sites, cette approche itérative s'adapte à toutes vos exigences. Du branding à l'intranet, révolutionnez votre expérience web dès maintenant !

« Use Single-Sign-On for all your applications with Keycloak »
Monday 8 July 09:00 - 12:00
Amphi 137 (260 places)

Are you managing many applications and filling the login forms for each separately is frustrating you? Do you find your current approach to authentication or managing users cumbersome and you would like to have it more centralized? Achieving Single-Sign-On may be simpler than you think.

This workshop introduces the industry standard protocol OpenID Connect with a step-by-step tutorial on deploying Keycloak, an Open Source Identity and Access Management (IAM) solution.

We will deploy applications in a Kubernetes-based cloud environment and secure all of them using Keycloak. This will include backend services built with Quarkus and Spring Boot, frontend single page applications and well-known tools like Grafana.

« Utilisez votre Game Boy comme facteur d'authentification OpenID »
Tuesday 9 July 18:10 - 18:35
Amphi 300 (110 places)

Introduction à keycloak et OpenID à partir d'un exemple fun de facteur d'authentification implémenté sous forme de ROM gameboy.

Notions abordées :

  • Qu'est-ce qu'un facteur d'authentification (clé fido, webauthnn, ce que vous voulez, etc…)
  • Comment les intégrer à keycloak avec un authenticator personnalisé.
  • Démystification du concept en utilisant l'un des objets les plus improbables pour créer un nouveau facteur d'authentification insolite, et malgré tout aussi fiable que possible dans les limites des capacités d'une console portable vieille de 30 ans et dont les origines techniques du processeur en ont presque 50.
  • La sécurité ne doit pas être une ennemie de l'expérience utilisateur, mais au contraire elle se doit d'être ludique et fluide afin de ne pas donner à l'utilisateur l'envie de la contourner.
« Viens dompter ta première IA en Python »
Monday 8 July 14:00 - 17:00
Room 128

L'IA est partout, du moins tout le monde revendique d'avoir de l'IA dans ses applications, ses objets connectés, …
En parler c'est bien, la développer c'est encore mieux.

Après une introduction aux concepts qui gravitent autour de l'IA mais aussi à l'écosystème Python nous vous proposons de customiser le modèle YOLO afin d'optimiser sa détection d'objets dans des images.
Pas besoin d'être experte ou expert Python, ni Data Scientist ou Machine Learning engineer, l'objectif ici est de découvrir tranquillement toutes ces notions.

Et cerise sur le gâteau, venez juste avec votre navigateur, on se charge du reste grâce à GitPod.
Vous découvrirez la magie d'un IDE dans le cloud.

Arrivés en débutantes, débutants ou justes curieuses et curieux, vous repartirez en sachant customiser de A à Z un modèle d'IA et créer son application l'utilisant.

« Votre CICD ? Notre point d'entree pour vous hacker ! »
Tuesday 9 July 15:00 - 15:50
Amphi 339 (509 places)

Le concept de DevSecOps introduit de nombreuses avancées, offrant à la fois une grande agilité et une facilité de mise à l'échelle. Les pipelines, au cœur de ce processus, peuvent toutefois présenter des lacunes en matière de sécurité dès leur conception. En effet, ces pipelines manipulent des informations sensibles et sont des espaces où la contribution est ouverte à tous. Nous allons partager le point de vue d'un Pentesteur et d'un DevSecOps sur le sujet , et vous montrer qu'en partant d'une mauvaise configuration très classique et inoffensive, on peut vite mettre en péril toute une infrastructure, de plein de facons differentes. Pas besoin d'être un hacker certifié pour venir nous écouter, mais préparez-vous à devenir un peu plus vigilant sur votre CI/CD.

« Vous pouvez venir à ce talk les yeux fermés »
Tuesday 9 July 14:00 - 14:50
Amphi 300 (110 places)

La navigation sur les sites internet à l'aide d'un lecteur d'écran comment ça marche ?

Comment “voit-on” un site sans le voir ?

Quels sont les problèmes rencontrés par les utilisateurs de lecteurs d'écrans et surtout, comment faciliter cette navigation et éviter de faire un site inutilisable pour certains.

Durant ce talk, on écouteras des sites web, on parlera de sémantique, d'accès rapide, de landmarks, d'alternatives aux images, de formulaires, de liens et de boutons (spoiler : un div n'est pas un bouton).

On écouteras aussi comment Aria peut améliorer cela.

On parlera aussi un peu de SEO : l'aveugle le plus célèbre au monde n'est il pas Google ?

Un talk a écouter les yeux fermés.

« Want to learn a new language? Let's Go! »
Monday 8 July 09:00 - 12:00
Room 129

Come discover the Go language, its syntax and features and learn by writing some code and practice.

In this workshop we will get some quick introduction about the Go language and iterate between presenting some Go syntax and practising them by writing code.

Some of the subjects about Go I plan to include:

  • Writing an hello world example
  • Functions
  • Variables and types
  • Flow control
  • Using external libraries
  • Unit testing
  • Concurrency

To participate you'll need:

  • Go
  • Git
  • The IDE of your choice
« [REX] Kafka en prod : Du concept à l’implémentation qui roule »
Wednesday 10 July 14:30 - 15:20
Amphi 137 (260 places)

Mettre en place Kafka comme broker de messages dans une architecture de service / micro-service: Une idée assez classique pour réduire les dépendances entre les apps, exécuter des process asynchrones, alimenter une solution de data…

Il y a deux ans, je quittais une boite dans laquelle on commençait à mettre en place Kafka, et je rejoignais Ricardo.ch. Cinq ans qu’ils faisaient évoluer leur archi micro-services autour de Kafka. La différence était monstrueuse! Alors le but de ce talk est d’exhumer les choix qui ont été fait ou défait, les murs qui ont été pris, pour arriver à une solution qui roule. C’est un retour d’expérience, pas une recette magique.

Parmi les sujets abordés :

  • Différentes implémentations de l’outbox pattern,
  • le partage des définitions de schémas d’évènements,
  • la gestion des erreurs,
  • les impacts sur l’architecture applicative,
  • le minimum vital de gouvernance
« devJoy+++ Quarkus propulse le dev Full-Stack au level supérieur »
Wednesday 10 July 10:10 - 11:00
Amphi 139 (160 places)

Nous commençons par une rapide introduction sur les détails qui rendent Quarkus aussi unique. Ensuite, nous nous concentrerons sur la partie Full-Stack pour montrer à quel point c'est cool et efficace de coder des applications Web avec Quarkus.

Avec un ensemble d'extensions Quarkus pour les développeurs Full-Stack, il est possible de créer des Single Page Apps (React, Angular, …), des micro-frontends (Lit, ..) ou du Server Side Rendering (avec htmx pour plus de peps) avec quasi-zéro configuration.

Si l'envie vous prend, sortez votre téléphone et essayez le jeu que j'ai développé pour l'occasion. Après un tour du code, nous commencerons à coder certaines fonctionnalités pour voir si vous ressentez également la puissance que ça pourrait apporter à vos propres applications.

Lorsque vous rentrez chez vous, clonez le dépôt et jouez avec pour explorer les différentes options, je resterai en contact pour répondre à d'autres questions.

« À la découverte d’un Ledger, une BDD atypique ! »
Tuesday 9 July 17:10 - 17:35
Amphi 300 (110 places)

Lorsque nous définissons une architecture applicative, le choix de la base de données s'avère être aujourd'hui un choix crucial. Avec la multitude de types de bases de données qui existent aujourd'hui, il est parfois difficile de faire son choix.

A travers ce talk, je présenterai les caractéristiques principales d'une base de données moins connue et plus atypique: une base de données financière ou “Ledger”. Immutabilité, transparence, le ledger offre beaucoup d'avantages qui peuvent être adaptés à vos besoins fonctionnels.

Nous parcourons ensemble des exemples précis appliqués au contexte de Doctolib (Récupération des impayés d'un patient, état de paiement d'une facture, ..) en expliquant comment bien définir la structure de votre ledger pour en tirer le meilleur parti. A la fin de ce talk, les notions de Comptes, de Balances et de Transactions, n'auront plus de secret pour vous !

« ☕️ Picocli : mets du Java dans ton terminal ! 🖥️ »
Tuesday 9 July 17:35 - 18:00
Amphi 137 (260 places)

Les CLI (Command Line Interface), tout le monde les utilise et elles existent depuis la nuit des temps.
Souvent synonymes de gain de productivité, leur création est parfois obscure et peut sembler complexe.
C'était le cas il y a quelques décennies, mais depuis quelques années, des langages et Frameworks permettent d'en écrire simplement dans votre langage préféré.
Je vous propose d'utiliser un langage qui ne paraît pas, au premier abord, le plus intuitif pour faire une CLI : Java !

Mais il sera bien accompagné dans cette tâche : grâce à Picocli et Quarkus, notre CLI aura tout d'une grande, tout en étant simple à développer !
Et cerise sur le gâteau : nous créerons un “vrai” exécutable grâce à Graal VM.

Venez m'accompagner lors d'une session de live coding permettant de mettre en lumière comment créer une CLI en Java avec Picocli et Quarkus en partant de zéro !

« ✏️ Apprendre à faire du sketchnoting avec Ane et Aurélie »
Monday 8 July 09:00 - 12:00
Room 111

Le sketchnoting est une méthode de prise de notes visuelle. On en entend de plus en plus parler, on voit des sketchnotes sur les réseaux sociaux, mais savez vous que le sketchnoting c'est bien plus qu'un moyen pour résumer visuellement un talk et que cela peut vous servir au quotidien ?

Le sketchnoting c'est facile ! La seule condition est de savoir dessiner comme un enfant de 5 ans, et encore :).

Dans cet atelier, vous allez apprendre à faire du sketchnoting en douceur. Aurélie et Ane vous font découvrir les éléments de base, les techniques simples et vous aurez même des astuces pour vous lancer !

Si vous avez votre matériel (feuilles, cahier et feutres ou crayons) venez avec, sinon nous vous fournirons la base.

« 📝 ✅ La checklist ultime pour rendre vos applications cloud native ! »
Tuesday 9 July 14:00 - 14:50
Amphi 137 (260 places)

Aujourd’hui, le cloud permet d’améliorer la disponibilité et l’évolutivité de nos applications. Grâce au cloud, nous pouvons provisionner de nouvelles infrastructures rapidement et faire évoluer avec la même vitesse les infrastructures existantes. Nous ne présentons plus les avantages du Cloud ni la multitude de services cloud existants. De prime abord, migrer une application sur le Cloud peut sembler un sujet trivial. Mais, toutes les applications sont-elles faites pour être déployées sur le Cloud ? D'où viennent tous ces projets de migration ratés alors ?

Durant ce talk, je vous présenterai la checklist qui vous permettra de rendre vos applications véritablement “cloud native” pour tirer le meilleur de ce modèle.

« 🔎 Anatomie d’une d’architecture Event driven & CQRS »
Tuesday 9 July 16:10 - 17:00
Amphi 339 (509 places)

2 ans après la mise en place d’une architecture event driven chez BforBank, nous sommes désormais en production avec un pattern “tout frais” implémenté avec Java, Spring et Kafka Streams.

Quels sont les principes d’une architecture event-driven ? Qu'est ce qui se cache derrière le pattern CQRS ? Pourquoi ces concepts sont-ils intéressants ? Voici le premier lot de questions auxquelles nous tenterons de répondre à travers ce talk.

Dans un second temps, nous présenterons les concepts liés à Kafka Streams et Kafka Connect à travers l’implémentation de ces patterns avec du code, du vrai !

Nous terminerons sur un vrai retour d'expérience sur nos apprentissages clé, qui seront utiles à tous ceux qui considèrent la mise en place de ce type d’architecture dans leur SI.