David Pilato

David Pilato

✉️ Inviter
🇫🇷 — partout 🇧🇪 — partout 🇬🇧 — partout 🇳🇱 — partout

Developer | Evangelist

Talks

La recherche à l'ère de l'IA

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 🎶🎸🎻.

La recherche à l'ère de l'IA
And the beats go on !
🏳️ EN 🏳️ FR #elasticsearch #beats

https://youtu.be/fOaxEa5ONJw

Venez découvrir les nouveaux Data Shippers pour Elasticsearch :

  • Packetbeat : décortiquez les protocoles réseau
  • Topbeat : récoltez vos métriques
  • Filebeat : analysez vos logs en temps réel ou transmettez les vers logstash pour enrichissement

Et comment contribuer au mix et ajouter vos propres beats avec Libbeat.

And the beats go on !
Make sense of your (BIG) data!
🏳️ EN 🏳️ FR #elasticsearch #kibana

Elasticsearch: vous savez, pour la recherche ! Mais vous pouvez également l’utiliser pour calculer des informations en temps réel sur des données en direct.

Lors de cette session, vous découvrirez comment fonctionne Elasticsearch. Nous injecterons des données marketing dans Elasticsearch et construirons un tableau de bord en direct à l’aide de Kibana. En quelques minutes, vous saurez comment construire VOS propres tableaux de bord et donner du sens à VOS données !

Make sense of your (BIG) data!
Les vendredis noirs ? Même pas peur !
🏳️ EN 🏳️ FR #elasticsearch
TODO: add abstract
Les vendredis noirs ? Même pas peur !
Node discovery in Cloud environment
🏳️ EN 🏳️ FR #elasticsearch

Dans « Elasticsearch », il y a « Elastic ». Démarrer des nouveaux noeuds pour augmenter la capacité du cluster est très simple avec le mode multicast par défaut. Les plates-formes cloud interdisent évidemment le multicast.

Aussi, comment garder cette élasticité simple en environnement cloud ?Venez découvrir ce qui se cache derrière les plugins cloud pour Amazon, Google et Azure !

L'art du DeeJaying
🏳️ EN 🏳️ FR #music

Dans cette session, nous allons découvrir quelques techniques utilisées par les DeeJays pour vous faire bouger toute une soirée :

  • L’ajustement des BPM (Battements Par Minute)
  • L’ajustement des harmoniques
  • Les égalisateurs de fréquence
  • Les Cue Points
  • Les boucles

Nous tenterons à la fin de faire un mix à plusieurs mains pour mettre en pratique ce que nous avons appris.

Matériel principalement utilisé :

L'art du DeeJaying
Atelier pratique elasticsearch / Kibana
🏳️ EN 🏳️ FR #elasticsearch #kibana

Jouons avec elasticsearch et Kibana

Nous allons installer elasticsearch, Kibana et Marvel et utiliser ces outils pour :

  • indexer/mettre à jour/récupérer/supprimer des documents
  • rechercher
  • calculer
  • construire des tableaux de bord pour donner du sens aux données marketing
  • sauvegarder vos données et les restaurer

Public visé

Le public doit déjà connaître quelques bases comme le JSON et doit avoir un ordinateur portable avec :

  • une JVM (1.7 de préférence)
  • un navigateur web
Atelier pratique elasticsearch / Kibana
Elasticsearch
🏳️ EN 🏳️ FR 🏳️ FR (with AI) #elasticsearch

Vous utilisez encore des requêtes SQL pour faire des recherches ? Vos utilisateurs vous reprochent de ne pas pouvoir chercher sur toutes les rubriques ? Votre temps de réponse moyen est supérieur à la demi-seconde avec seulement quelques millions de documents ? Il vous faut 3 jours pour produire des statistiques sur vos données ? Vous rêvez d’offrir une recherche “à la google” sur les données de votre SI ?

Ne cherchez plus ! Cette conférence est faite pour vous.

David présentera au cours du déjeuner pourquoi et comment il est passé de la recherche SQL à Elasticsearch en détaillant les apports de ce moteur par rapport à une solution pure Lucene :

  • Pourquoi Elasticsearch ?
  • L’indexation
  • La recherche
  • Les agrégations et le principe de navigation par facettes
  • La scalabilité horizontale
  • La communauté
Elasticsearch
Elasticsearch Query Language: ES|QL
🏳️ EN 🏳️ EN - Slideless 🏳️ FR 🏳️ FR - Slideless #elasticsearch #esql

Elasticsearch et Kibana apportent un tout nouveau langage, ES|QL, avec une nouvelle API (_query) et une syntaxe simplifiée. Cela vous permet d’affiner vos résultats, étape par étape et ajouter de nouvelles fonctionnalités comme par exemple l’enrichissement de données et la transformation à la volée, directement dans votre requête. Et vous pouvez l’utiliser sur toute la plateforme Elastic — depuis les API Elasticsearch jusqu’aux fonctions de “Discover” et d’“Alerting” de Kibana. Mais le changement principal n’est pas celui que vous verrez : les ingénieurs ont développé un tout nouveau moteur de calcul, construit avec la performance comme guide.

Venez découvrir un aperçu de ce nouveau moteur avec découverte de la syntaxe et du fonctionnement interne.

Elasticsearch Query Language: ES|QL
Indexer ses documents bureautique avec la suite Elastic et FSCrawler
🏳️ EN 🏳️ FR #elasticsearch #fscrawler

Vous avez sous la main des tonnes de documents Open Office, Microsoft Office, PDF voire des images… Et vous aimeriez être capable de chercher dans leurs meta-données et dans le contenu lui-même.

Comment faire ? Surtout depuis l’annonce de la fin de Google Search Appliance.

Dans cette session, David expliquera comment Apache Tika peut fournir ce service et comment combiner cette fantastique librairie avec elasticsearch :

Indexer ses documents bureautique avec la suite Elastic et FSCrawler
Ingest node : (ré)indexer et enrichir des documents dans Elasticsearch
🏳️ EN 🏳️ FR #elasticsearch

Lorsque vous injectez des données dans elasticsearch, vous pouvez avoir besoin de réaliser des opérations de transformation assez simples. Jusqu’à présent, ces opérations devaient s’effectuer en dehors d’elasticsearch, avant l’indexation proprement dite.

Souhaitez la bienvenue à Ingest node ! Un nouveau type de noeud qui vous permet justement de faire cela.

Ce talk explique le concept de Ingest Node, comment l’intégrer avec le reste de la suite logicielle Elastic et comment développer son propre plugin Ingest par la pratique en montrant comment j’ai développé le plugin ingest-bano pour enrichir des adresses postales et/ou des coordonnées géographiques françaises (pour l’instant).

Ce talk parlera également de l’API de réindexation qui peut également bénéficier du pipeline d’ingestion pour modifier vos données à la volée lors de la réindexation.

Ingest node : (ré)indexer et enrichir des documents dans Elasticsearch
Recherche avancée pour votre application "legacy"
🏳️ EN 🏳️ FR #elasticsearch #spring-boot #java

Comment mixer SQL et NoSQL sans faire la révolution ?

Cette “live coding” conférence vous montrera comment ajouter Elasticsearch à votre application existante sans changer vos habitudes. Vous aurez des fonctions de recherche avancées sans avoir à écrire du SQL complexe !

David partira d’une application Spring Boot/MySQL et ajoutera Elasticsearch en live depuis la scène !

Recherche avancée pour votre application "legacy"
Monitor Your Java Applications with the Elastic Stack: Logs, Metrics, Pings, and Traces
🏳️ EN 🏳️ FR #elasticsearch #kibana #apm #java

Cette conférence donnera un aperçu sur comment monitorer efficacement ses applications Spring Boot sachant qu’elles deviennent de plus en plus populaires pour bâtir des microservices.

En particulier, nous étudierons :

  • Métriques système : regarder à la loupe le trafic réseau et la charge système.
  • Logs applicatif : collecter et centraliser des logs structurés.
  • Disponibilité : utiliser Heartbeat pour effectivement mesurer la disponibilité et les temps de réponse de nos services.
  • Métriques applicatif : rassembler les métriques de Spring Boot et l’état de santé via REST ou JMX.
  • Performance applicative : utiliser APM par elastic pour rapidement identifier les causes des ralentissements.

Cerise sur le gâteau : nous ferons tout cela en live car c’est encore plus simple et plus interactif !

Monitor Your Java Applications with the Elastic Stack: Logs, Metrics, Pings, and Traces
🎹🎻🎸 Et si nous cherchions des morceaux de musique 🎼🎶 ?
🏳️ EN 🏳️ FR #elasticsearch #vector-search
Pendant cette session, nous allons utiliser les principes de la recherche vectorielle pour trouver des morceaux de musique 🎶 ressemblant (peut-être) à d’autres. Pour cela, nous ferons un rappel des principes de la génération d’embeddings pour représenter n’importe quel type de données, qu’elles soient textuelles ou binaires.
🎹🎻🎸 Et si nous cherchions des morceaux de musique 🎼🎶 ?
Enrichir les adresses postales avec la suite Elastic
🏳️ EN 🏳️ FR #elasticsearch

Venez apprendre comment enrichir vos données existantes avec des adresses postales normalisées et des points de géolocalisation grâce à l’open data et au projet BANO.

La plupart du temps, les adresses postales de nos clients ou utilisateurs ne sont pas très bien formatées ou définies dans nos systèmes d’information. Et cela peut devenir un cauchemar si vous êtes un employé de centre d’appel par exemple et que vous voulez trouver un client par son adresse. Imaginez également comment un service commercial pourrait facilement mettre sur une carte où sont situés les clients et où ils peuvent ouvrir un nouveau magasin…

Prenons un exemple simple :

{
  "name": "Joe Smith",
  "address": {
    "number": "23",
    "street_name": "r verdiere",
    "city": "rochelle",
    "country": "France"
  }
}

Ou l’inverse. J’ai les coordonnées mais je ne peux pas dire quelle est l’adresse postale correspondante :

{
  "name": "Joe Smith",
  "location": {
    "lat": 46.15735,
    "lon": -1.1551
  }
}

Dans cette session de live coding, je vous montrerai comment résoudre toutes ces questions en utilisant la suite Elastic.

Enrichir les adresses postales avec la suite Elastic
Envie de booster ta carrière ? Open source-toi !
🏳️ EN 🏳️ FR #open-source
Viens découvrir à travers une histoire vraie, comment une simple petite réponse dans un forum de discussion sur un projet méconnu peut complètement changer et accélérer ta carrière.
Envie de booster ta carrière ? Open source-toi !
Le hasard fait bien les tests
🏳️ EN 🏳️ FR #java #testing

Le hasard fait bien les choses.

Si on applique cette idée aux tests unitaires ou aux tests d’intégration, on peut rendre nos tests beaucoup plus imprévisibles et du coup trouver des problèmes que notre esprit n’aurait jamais osé imaginer ! Par exemple, récemment, j’ai découvert dans une bibliothèque de gestion de configuration, un bug qui se produit lorsque la Locale est configuré en AZ. 🤦🏼‍♂️

Un autre exemple encore plus simple :

int input = generateInteger(Integer.MIN_VALUE, Integer.MAX_VALUE);
int output = Math.abs(input);

Peut générer -2147483648… Ce qui est assez inattendu pour une valeur absolue ! 😉 Les tests aléatoires peuvent découvrir ces cas tordus… C’est ce que l’équipe elasticsearch a mis en place depuis plusieurs années à l’aide du framework RandomizedTesting pour tester tout le code Java.

Ajoutez à ça de vrais tests d’intégration à l’aide de TestContainers et vous aurez une approche complète pour des tests qui échouent régulièrement !

Après cette conférence, vous ne verrez plus jamais la fonction random() comme avant et découvrirez comment la (mal)chance peut vous aider ! 🍀

Le hasard fait bien les tests
Un moteur de recherche NoSQL pour chercher^H^H^H^H^H^H^H^H trouver...
🏳️ EN 🏳️ FR #elasticsearch

Vous cherchez toujours dans vos données avec des SELECT * FROM person WHERE name like '%david%pilato%" ?

Au delà des performances obtenues, êtes-vous certain de renvoyer les résultats les plus pertinents pour vos utilisateurs d’abord ?

Venez découvrir comment un moteur de recherche vous aidera à répondre aux questions posées par vos utilisateurs, de manière pertinente et efficace, tout en apportant des fonctionnalités d’analyse des résultats et ce, quelque soit le volume…

Un moteur de recherche NoSQL pour chercher^H^H^H^H^H^H^H^H trouver...
do MORE with stateLESS Elasticsearch
🏳️ EN 🏳️ FR #elasticsearch

Comment feriez-vous pour créer Elasticsearch si vous commenciez ce projet en 2025 ?

  • Découpler le calcul (compute) du stockage (storage)
  • Externaliser la gestion de la persistence et la réplication à un blob store comme S3, Google Cloud Storage ou encore Azure Blob Storage
  • Dynamiquement ajouter ou supprimer des instances
  • Avoir les bonnes valeurs par défaut
  • Et un chemin hyper clair et fluide pour les développeurs

C’est exactement ce que nous avons fait avec Elastic Serverless.

Lors de cette session, vous allez découvrir comment nous avons re-conçu Elasticsearch pour lui permettre d’en faire davantage avec une architecture Stateless qui peut exécuter des requêtes sur un espace de stockage froid (cold storage).

do MORE with stateLESS Elasticsearch
Identifier les menaces avec Elastic SIEM
🏳️ EN 🏳️ FR #elasticsearch #security

Savoir ce qui se passe dans votre environnement est une part importante pour être informé de problèmes de sécurité. Mais comment capturer et visualiser les informations pertinentes ? Un outil open source est mondialement utilisé pour cela : la suite Elastic. Ce talk vous fera découvrir par la pratique comment ingérer les données utiles provenant de votre couche réseau, de vos machines, de vos logs ainsi que le moyen de facilement les visualiser afin d’identifier des patterns et comportements suspicieux. Nous utiliserons notamment pour cela le tout dernier outil SIEM de la suite Elastic.

Nous utiliserons pour cela des données type “piège à miel” :

  • La première étape est de lire, extraire et enrichir la donnée afin d’identifier les attaques, leur source et plus encore.
  • Puis stocker et explorer la donnée collectée pour trouver des indicateurs pertinents.
  • Ce qui nous amènera à créer des visualisations spécifiques à notre besoin - par exemple la localisation de l’attaquant ou des patterns type d’attaque.
  • Building upon this we can combine visualizations into dashboards, giving a broader overview.
  • Enfin nous utiliserons l’application SIEM de Kibana pour voir comment tout est maintenant facile à suivre pour les attaques.

Tout cela en live.

Identifier les menaces avec Elastic SIEM
Elastifiez votre application : du SQL au NoSQL
🏳️ EN 🏳️ FR #elasticsearch #nosql

Pendant cette session de “live coding”, Tugdual et David migreront une application full SQL à l’ancienne vers le monde NoSQL. En utilisant CouchBase et Elasticsearch, ils montreront tous les gains que vous pouvez avoir avec cette nouvelle architecture :

  • Simplicité
  • Élasticité (scalabilité)

Les points suivants seront couverts :

  • Modèle orienté document
  • JSON
  • REST
  • Cache / Memcache
  • Recherche full text
  • Construction de tableaux de bord en direct avec Kibana
Testcontainers pour de vrais tests d'intégration d'Elasticsearch
🏳️ EN 🏳️ FR #elasticsearch #java #testing

Les tests d’intégration peuvent devenir un cauchemar lorsqu’ils sont lancés depuis la même JVM que votre code:

  • Conflit de JARs (JAR Hell)
  • Security Manager
  • Effets de bord

De plus, tester avec un produit qui est lancé de façon différente de la façon dont il est lancé en production, ne garantira jamais que les tests d’intégration sont sincères.

Aussi, après avoir découvert le projet Testcontainers qui lance des conteneurs Docker, j’ai décidé d’écrire une implémentation pour Elasticsearch: testcontainers-java-module-elasticsearch. Je vous propose de découvrir tout cela pendant cette session.

Testcontainers pour de vrais tests d'intégration d'Elasticsearch
Don't Panic : Le Guide du Speaker Fainéant pour ses CFPs
🏳️ EN 🏳️ FR #ai #automation

À chaque nouveau CFP, c’est le même rituel :

  • Ouvrir la page de la conférence
  • Copier les dates
  • Vérifier les doublons dans GitHub
  • Trouver les bons labels
  • Rédiger l’issue
  • Ajouter un commentaire avec des suggestions de talks

⏳ 42 minutes pour 3 talks ! Mais en fait, 20 jours-homme par an pour notre équipe de 13 DevRels.

Pour. Du. Copier-coller.

Mon CFO a failli pleurer. 😭

Alors j’ai regardé autour de moi. Elastic me donnait déjà Elasticsearch pour la recherche sémantique, un serveur MCP natif dans Kibana, un agent conversationnel, un moteur de workflows et JINA Reader pour parser le web. GitHub offrait son propre serveur MCP et des GitHub Actions pour gérer les updates.

Dans cette session, je vous montre — en live, pas de slides — comment j’ai assemblé tout ça pour construire un agent qui fait le boulot à notre place. Une URL en entrée ➡️ une issue GitHub complète en sortie. Avec validation humaine, parce que je fais confiance à l’IA mais pas aveuglément non plus. 👀

Que vous gériez des CFPs ou pas, les patterns sont là. Venez pour la fainéantise assumée, restez pour l’architecture. Et merci pour le poisson. 🐟

Don't Panic : Le Guide du Speaker Fainéant pour ses CFPs