Volcamp 2023 : L'événement tech en Auvergne

2023-10-25 | Florent Damiens et Mathieu Boulot

image article

Volcamp 2023 : L'événement tech en Auvergne

Pour notre seconde conférence de l'année, comme promis lors de Mixit, nous partons pour Volcamp, cette seconde édition s'est déroulée les 12 et 13 Octobre à Clermont-Ferrand ! C'est l'occasion parfaite pour retrouver la fine tech' clermontoise et de discuter autour d'une bonne truffade. 🧀

Cette année, ITNetwork s'est déplacé en nombre, pas moins de 5 développeurs sont venus assister aux conférences et nous vous partageons nos coups de cœur de cette édition ! Le programme est encore une fois assez chargé, les thèmes sont variés, de l'IA, de la sécurité, de l'UX/UI et de nombreux retours d'expériences. On retrouve également les habitués des conférences, Datadog, Clever Cloud, Microsoft... En bref, un programme idéal !

Avant d'entrer dans le vif du sujet, la keynote d'ouverture présentée par Marc Chevaldonné nous plonge dans l'histoire de l'informatique avec notamment un focus sur le Xerox Parc.

Cette conférence met en lumière les personnalités qui ont marqué le paysage de l'informatique dès les années 50, on parle alors de Robert Taylor, de Ivan Sutherland... mais aussi de toutes les révolutions et des événements clefs de cette période comme la création des interfaces graphiques ou de la souris. Conférence très intéressante qui ouvre le bal de cette édition 2023 🌋 !

Retour sur les conférences marquantes

SRE, Mythes vs Réalités

Pour cette première conférence, Henri Gomez et Jean-Pascal Thiery nous partagent leurs retours d'expériences sur l'activité de Site Reliability Engineering (SRE). Le but de cette conférence est de démystifier cette discipline et d'éviter les surprises entre une vision fantasmée et la réalité. Ils nous proposent de faire un tour d'horizon des missions actuelles et nouvelles du SRE.

Le point de départ est la définition du SRE, il est responsable de la résilience, de la sécurité et de la qualité des services. Ils travaillent à la fois sur le "run" (opérationnel) et le "build" (développement) des systèmes. L'automatisation est une de ses priorités afin de maintenir le Service Level Objective (SLO). Tout comme passer de la simple surveillance à l'observabilité pour comprendre le comportement des systèmes et anticiper certaines problématiques. 🔍

Historiquement, le SRE a de nombreuses missions comme la détection en amont des incidents, la gestion des post-mortem ou bien la surveillance des coûts d'exploitation. Aujourd'hui, le rôle du SRE est également d'apporter du conseil sur l'architecture, l'observabilité ou bien l'outillage. En bref, il travaille beaucoup sur des sujets d'anticipation et de planification.

Le SRE est un véritable acteur du système, mais ce n'est pas un expert dans tous les domaines. Il doit cependant avoir de solides compétences techniques dans les bases de données, l'infrastructure ou la programmation. Le relationnel est également primordial, il doit-être un bon communicant, être à l'écoute des autres et savoir convaincre.

L'IA ne remplacera pas le développeur. Mais dév+IA remplaceront le développeur

Dans l'imaginaire populaire, beaucoup de personnes pensent que l'IA remplacera un jour les développeurs. Cette croyance est pourtant infondée, l'IA ne nous remplacera pas, mais nous aidera à devenir plus efficient. Kevin Beaugrand et Frederic Wickert nous donnent les clefs pour mieux la comprendre et mieux l'exploiter afin de booster notre productivité. 💪

Après un rapide historique sur les dates clefs de l'intelligence artificielle, les speakers font un focus sur les LLM notamment Codex qui permet la génération de code. Kevin Beaugrand en profite pour nous faire une démo de Github Copilot et crée un script qui permet de générer un fichier en markdown des news de l'AFP à partir d'un flux RSS. Le gain de productivité est réel, le code est fonctionnel en quelques minutes.

Le développeur reste tout de même le pilote, il faut connaître les capacités et les faiblesses du modèle pour en tirer les bénéfices. Il faut souvent itérer plusieurs fois et donner un contexte plus précis au fur et à mesure des itérations pour affiner le code produit. Cependant, la confiance envers le modèle n'empêche pas le contrôle de la part du développeur !

Pour finir, Frederic Wickert nous explique comment industrialiser la mise en place d'un LLM dans une application. Une mise en garde est nécessaire, l'application ne doit pas être connectée directement au LLM, mais le développeur doit passer par un orchestrateur qui intercepte, vérifie et enrichit les prompts de l'utilisateur. Il existe des frameworks permettant de faciliter son utilisation comme le Semantic Kernel de Microsoft.

La conférence se clôture par une démo d'une application qui illustre comment l'orchestrateur améliore un simple prompt pour générer des descriptions plus précises et personnalisées.

Pimp my search (platform) !

Leboncoin est une plateforme française de petites annonces regroupant plusieurs marchés comme l’achat/location de biens immobiliers, de véhicules ou encore la réservation de vacances.
Simon Maurin et Paul Dennetiere, tous deux développeurs au sein de Leboncoin vont nous faire part de leur retour d'expérience sur l'amélioration de leur moteur de recherche.

En 2019, le moteur de recherche utilisé était encore “trop basique". C'est pour cela que l’équipe de développement a voulu y remédier en améliorant drastiquement son fonctionnement. Cela passe notamment par l'amélioration de la pertinence des résultats renvoyés, qui tiennent compte de plusieurs critères comme l’efficacité vendeur, le taux de contact, la précision et la performance premium. L’optimisation de la stratégie d’ordonnancement et l’amélioration de l’expérience de recherche pour l’utilisateur font aussi partie intégrante de cette évolution.

La première amélioration majeure est l’implémentation d’une plateforme permettant aux développeurs de choisir le modèle de données qu’ils souhaitent utiliser et sur quel marché l’appliquer. Par la suite, ils ont la possibilité d’analyser les résultats au travers d’outils statistiques, ou en se basant sur les données de recherches (anonymes) d’un ou plusieurs groupes d’utilisateurs. Les annonces apparaissent en fonction de leur score, qui s’améliore ou diminue en fonction de plusieurs critères. On retrouve par exemple le TF (Term Frequency) et l’ITF (Inverse Term Frequency). Le TF décrit la fréquence à laquelle un terme apparaît dans un document, comparé à tous les autres termes présents dans ce document. L’ITF décrit lui la proportion de documents dans tout le corpus, qui contiennent ce terme.

La deuxième grande amélioration correspond à l’injection de nouveaux outils visant à encore augmenter l’efficacité du moteur. On retrouve par exemple l’utilisation de camemBERT, qui a pour but de transformer une représentation textuelle en représentation vectorielle, c'est-à-dire de relier les annonces aux demandes de l’utilisateur non plus par les mots mais par l’intention de sa recherche (par exemple, si ce dernier recherche des annonces d’écouteurs sans fils, des annonces pour des AirPods seront remontées).

Ce REX se clôture par un débrief côté expérience développeur, mais également avec l’annonce de quelques chiffres démontrant l’amélioration significative des résultats liés aux modifications apportées au moteur de recherche.

Plongeons au coeur des frameworks front-end modernes pour comprendre leur réactivité

Dans cette dernière conférence, Sylvain Dedieu aborde avec nous le sujet de la réactivité des frameworks modernes, en nous parlant de la programmation réactive et en nous expliquant de quelle(s) manière(s) et sur quel(s) principe(s) la réactivité d'un framework fonctionne.

La programmation réactive repose sur le principe qu’une application ou interface doit pouvoir tenir compte des différents changements déclenchés par l’utilisateur, par le biais d’éléments réactifs comme une variable ou une entrée utilisateur. Ces interfaces ou applications doivent ensuite être capables de se synchroniser avec ces changements et de les appliquer le plus rapidement possible.

Mais puisque certains langages ne sont pas réactifs par défaut, comment font tous ces frameworks pour nous en donner l’illusion ?
On retrouve par exemple le fonctionnement appelé Value-Based, qui peut s’appuyer sur le principe du Dirty Checking. Cela consiste à vérifier périodiquement des données afin de détecter de potentiels changements. Ce fonctionnement a néanmoins deux inconvénients majeurs qui sont la réduction des performances et l’optimisation difficile de ce système.
Dans React, quand la méthode « setState() » est appelée, une comparaison entre les virtual DOM actuel et précédent va s’opérer afin de détecter et d’appliquer les changements concernés.
AngularJS utilisait un fonctionnement appelé Two-Way Data Binding où les View et Model reflétaient leurs propres changements directement sur l'autre élément.

Il existe aussi le fonctionnement nommé Observable-Based, qui se base sur un observable qui va émettre un flux de données asynchrone (événements, valeurs, réponses de requêtes HTTP…). Afin de recevoir ces données, on doit créer un abonnement : cela signifie qu’à chaque fois que les données sont modifiées, tous les abonnements sont notifiés et peuvent ensuite gérer ce changement.
On retrouve ce fonctionnement avec Svelte : « $ : doubled = count * 2 » signifie que dès que la valeur de count change, la valeur de doubled est recalculée.
Angular l'implémente également par le biais de RxJS.

Finalement, on retrouve le fonctionnement appelé Signal-Based qui ressemble fortement aux observables, à la différence qu’il ne traite pas de flux de données asynchrones, mais traite des signaux d’événements qui vont écouter les changements d’état.
VueJS peut utiliser cette approche avec l’objet Proxy, qui va intercepter toutes les opérations effectuées et notifier les changements apportés sur l’objet lui-même.
Ce fonctionnement est également dans les feature preview d'Angular pour une (potentielle) prochaine version.

Malgré un sujet assez complexe à traiter, Sylvain Dedieu a réussi à nous expliquer simplement les problématiques des frameworks modernes et leurs évolutions possibles pour être toujours plus performant et agréables pour les utilisateurs finaux.

Conclusion

Pour conclure, nous souhaitions remercier l'association Geek&Terroir d'avoir organisé ce superbe événement. Les sujets abordés étaient tous très intéressants et ont rendu les débriefs accompagnés de truffade et d'aligot très captivants !

Rendez-vous une nouvelle fois l'année prochaine, pour la suite des aventures d'ITNetwork à Volcamp. 🙋🏻‍♂️

Volcamp 2023

Conférence Volcamp 2023 SRE IA Moteur de recherche Frameworks front-end