Keynote d'ouverture : LLM entre fantasme et réalité
Présentée par Marie Alice, une développeuse ayant fait le saut vers l'intégration des modèles de langage (LLM) dans son quotidien professionnel, cette session a permis de clarifier plusieurs idées reçues et fantasmes liés à l'utilisation de ces technologies.
Productivité : une réalité nuancée
L'un des points centraux abordés par Marie Alice concerne la productivité des développeurs utilisant l'IA. Selon une étude récente, les développeurs qui intègrent l'IA dans leur flux de travail sont 26% plus productifs en 2024. Cette productivité est mesurée en termes de nombre de pull requests (PR) réalisées. Cependant, un aspect crucial de cette étude n'a pas été commenté : la qualité du code produit.
Sundar Pichai, PDG de Google, a affirmé que "25% du code est généré par l'IA". Marie Alice a nuancé cette déclaration en expliquant qu'il est important de distinguer entre des fonctionnalités entièrement générées par l'IA et une assistance permettant de générer 25% du code. Elle penche pour la seconde option, soulignant que l'IA agit principalement comme un assistant plutôt qu'un créateur autonome.
L'Utilisation des LLM : une adoption croissante
Marie Alice a également partagé des statistiques révélatrices : 63% des développeurs utilisent désormais des LLM dans leur travail quotidien. Cette adoption massive soulève une question cruciale : la menace sur le partage de la connaissance. Avec moins d'échanges et de contenu généré par les développeurs, l'IA pourrait-elle finir par se nourrir de moins en moins de données pertinentes ?
L'Emploi : une menace non confirmée
Un autre fantasme souvent évoqué est celui de l'IA remplaçant les humains en prenant leur emploi. Marie Alice a abordé cette crainte en soulignant qu'elle n'est pas confirmée par les faits. Elle a donné l'exemple du métier de prompt engineer, un poste payé jusqu'à 300 000 dollars par an. Cependant, en réalité, les offres pour ce type de poste sont très rares, voire inexistantes.
Produits et Projets : maîtrise et utilité
Marie Alice a également discuté de ce que l'on peut faire avec les LLM, en insistant sur la nécessité de maîtriser ces outils. Les IA sont biaisées par conception, car elles dépendent des données d'entraînement. Il est donc crucial de comprendre ces biais pour les utiliser efficacement. La vision et l'utilité des LLM doivent être bien définies pour éviter des attentes irréalistes.
Intégration dans les produits de développement
L'intégration des LLM dans les produits de développement a été un autre point clé. Marie Alice a mentionné la technologie RAG (Retrieval-Augmented Generation) et l'utilisation de Llama Index, qui permet d'intégrer des LLM avec seulement cinq lignes de code. Cependant, elle a souligné que la réalité est souvent plus complexe que cela.
La keynote d'ouverture de BDX I/O 2024 a permis de démystifier plusieurs idées reçues sur les LLM. Si ces technologies augmentent indéniablement la productivité des développeurs, elles ne remplacent pas les humains et ne menacent pas directement l'emploi. Cependant, elles posent des questions importantes sur l'avenir du partage de la connaissance et la qualité du code produit. Marie Alice a réussi à offrir une vision équilibrée et réaliste de l'impact des LLM sur le monde du développement.
Découvrons ensemble la relève de l'observabilité avec les logs et traces : Quickwit
Idriss présente Quickwit, une alternative à Elastic Search pour la gestion des logs et des traces dans une stack d'observabilité. Quickwit est compatible avec Open Telemetry pour l'entrée des données. L'un des principaux avantages de Quickwit par rapport à Elastic Search réside dans son utilisation d'un stockage objet, offrant un coût plus avantageux sur le cloud par rapport au stockage SSD d'Elastic Search. Bien que le stockage objet puisse entraîner une perte de performance, Quickwit compense cela grâce à son moteur d'indexation écrit en Rust, qui est plus rapide et consomme moins de ressources que Elastic Search.
L'IA Éco-responsable : utopie marketing ou réalité ?
Le secteur du numérique représente environ 4% des émissions mondiales de gaz à effet de serre, un chiffre qui ne cesse de croître avec l'augmentation de l'utilisation des technologies. Dans ce contexte, le concept de numérique responsable et de green IT devient de plus en plus pertinent. Mais qu'en est-il de l'intelligence artificielle (IA) ? Peut-elle réellement être frugale et respectueuse de l'environnement, ou s'agit-il simplement d'une utopie marketing ?
Impact environnemental de l'IA
Construction et entraînement des modèles
L'impact environnemental de l'IA commence dès la phase de construction, notamment lors de l'entraînement des modèles. Par exemple, pour entraîner le modèle LLaMA de Meta, il faut environ 40 millions d'heures de calcul, ce qui équivaut à 27 gigawatt-heures (GWh) d'énergie. Pour mettre cela en perspective, cela correspond à l'énergie consommée par 4200 vols Paris-New York.
Utilisation des modèles
L'utilisation des modèles d'IA n'est pas en reste. Une requête à un grand modèle de langage (LLM) récent consomme 60 fois plus d'énergie qu'une requête sur un moteur de recherche classique. Cet te consommation énergétique est si importante que certains opérateurs cloud envisagent de construire des mini-réacteurs nucléaires pour alimenter leurs centres de données.
L'IA Peut-elle Être Frugale ?
Norme AFNOR 2314
Pour répondre à cette question, il est essentiel de se référer à des normes et des bonnes pratiques. La norme AFNOR 2314 propose des fiches de bonnes pratiques environnementales appliquées à l'IA. Ces fiches visent à réduire l'impact environnemental des technologies de l'IA.
Green AI vs AI for green
Il est important de distinguer deux concepts :
Green AI : Réduire l'impact de l'IA sur l'environnement. Par exemple, les nouveaux GPU Nvidia H100 consomment quatre fois moins de ressources que les générations précédentes.
AI for Green : Utiliser l'IA pour améliorer l'environnement. Cela inclut des applications telles que la gestion des déchets et l'optimisation de la consommation d'énergie.
En conclusion, le secteur de l'IA a pris conscience des enjeux environnementaux liés à ses technologies. Des efforts sont en cours pour rendre l'IA plus frugale et pour utiliser l'IA afin d'améliorer l'environnement. Cependant, il reste encore énormément de chemin à parcourir pour atteindre un véritable numérique responsable.
Delta Lake: le recalcul sans fracas ni tracas
Dans un monde où les données sont devenues le nouvel or noir, leur traitement efficace est crucial pour les entreprises. Julie, senior data analyst, nous dévoile la solution technique qu'elle a mise en place pour fluidifier le traitement des données. En combinant Delta Lake et Apache AirFlow, elle a réussi à automatiser des processus complexes tels que le rattrapage des données historiques et la relance des calculs en cas d'incident de production. Ce talk explore en détail cette solution et son impact sur la gestion des données.
Je malmène ta prod en direct avec 5 failles de sécu
La sécurité des applications est souvent perçue comme une tâche réservée aux experts en cybersécurité. Cependant, avec 72% des failles de sécurité liées directement au code, il est évident que les développeurs jouent un rôle crucial dans la protection des applications. Il n'existe pas d'outil magique pour éviter ou corriger toutes les failles de sécurité. Ce talk se concentre sur une application fictive, mettant en lumière des failles de sécurité courantes et montrant comment les exploiter pour mieux les comprendre et les corriger.
Les Failles de sécurité courantes (CWE)
CWE-549 : Mot de passe non masqué dans les UI
L'affichage non masqué des mots de passe dans les interfaces utilisateur est une faille de sécurité courante. Cela peut permettre à des personnes non autorisées de voir les mots de passe en clair, compromettant ainsi la sécurité des comptes utilisateurs.
CWE-89 : injection SQL
L'injection SQL est une vulnérabilité bien connue mais toujours présente. Elle permet à un attaquant d'exécuter des commandes SQL arbitraires sur la base de données de l'application. Par exemple, en utilisant username= "admin'--", un attaquant peut contourner l'authentification.
CWE-639 : accès à des données sans authentification
Cette faille permet à des utilisateurs non authentifiés d'accéder à des données sensibles. Il est crucial de vérifier l'authentification pour toutes les requêtes de données sensibles.
CWE-602 : validation des données côté serveur
Valider les données uniquement côté client est insuffisant. Une personne malveillante peut utiliser l'API directement et contourner les validations côté client. La validation doit être effectuée côté serveur pour garantir la sécurité.
CWE-565 : signature des cookies
Les cookies doivent être signés pour éviter les manipulations. Sans signature, un attaquant peut modifier les cookies et compromettre la sécurité de la session utilisateur.
CWE-915 : mass assignment
Le mass assignment se produit lorsque des attributs non sécurisés sont désérialisés. Il est important de contrôler les attributs à désérialiser et de ne mettre dans les DTO que les données nécessaires pour éviter les fuites de données.
CWE-80 : cross site scripting (XSS)
Le XSS permet à un attaquant d'exécuter du code JavaScript dans la session utilisateur en injectant du code via des entrées utilisateur. Cela peut entraîner le vol de cookies, la redirection vers des sites malveillants, etc.
CWE-640 : faible mécanisme de récupération de mot de passe
Les mécanismes de récupération de mot de passe faibles, comme les questions secrètes faciles à deviner, peuvent être exploités par l'ingénierie sociale. Par exemple, la réponse à une question secrète peut souvent être trouvée sur les réseaux sociaux.
CWE-330 : utilisation de secure random
L'utilisation d'algorithmes de génération de nombres aléatoires faibles peut rendre les mots de passe et autres données sensibles prédictibles. Il est essentiel d'utiliser des algorithmes de génération de nombres aléatoires sécurisés.
CWE-288 : bypass d'authentification
Lorsque toutes les URL ne sont pas soumises à authentification, il est facile pour un attaquant d'accéder à des zones privées du site. Il est crucial de s'assurer que toutes les URL sensibles nécessitent une authentification.
Et découvrez des tas d’autres failles de sécurité à éviter ou combler sur le site https://cheatsheetseries.owasp.org/ !
La sécurité des applications est une responsabilité partagée entre les développeurs et les experts en cybersécurité. En comprenant et en corrigeant les failles de sécurité courantes, les développeurs peuvent contribuer à la création d'applications plus sûres et plus robustes. Ce talk a offert des démonstrations pratiques et des solutions pour éviter ces vulnérabilités, soulignant l'importance de la sécurité dans le développement logiciel.
Karpenter : Le futur de la gestion des nœuds Kubernetes
Mathieu Corbin, SRE chez Qonto, nous présente Karpenter, un outil innovant pour gérer le cycle de vie des nœuds d’un cluster Kubernetes. Initialement développé par Amazon et reversé à la communauté Kubernetes SIG, Karpenter optimise la gestion des nœuds, de leur création à leur mise à jour, en passant par le scale-up et le scale-down.
Introduction
La gestion des nœuds dans un cluster Kubernetes peut rapidement devenir complexe, surtout lorsqu'il s'agit de gérer plusieurs clusters sur des environnements comme AWS EKS. Mathieu a partagé son expérience lors d’une conférence à Bdx.io 2024, en présentant Karpenter, un outil révolutionnaire pour simplifier cette tâche.
Une problématique complexe
La gestion des nœuds dans un cluster Kubernetes implique plusieurs aspects : création, mise à jour, scale-up et scale-down. Sur AWS, chaque type d’instance de nœud correspond à un nodepool, et il faut multiplier cela par le nombre de zones de disponibilité utilisées. Cette multiplication entraîne une gestion complexe et fastidieuse des nodepools.
Karpenter : une solution innovante
Origines et fonctionnalités
Karpenter, initialement développé par Amazon et maintenant géré par la communauté Kubernetes SIG, est un opérateur conçu pour automatiser le cycle de vie des nœuds en fonction des besoins des pods sur le cluster. Il prend en compte diverses conditions des pods telles que les zones de disponibilité, l’anti-affinité, les ressources et le pod disruption budget.
Création et réconciliation des nœuds
Karpenter ne se contente pas de créer des nœuds, il optimise également le cluster en réconciliant les nœuds pour minimiser les ressources sous-utilisées. Il gère la mise à jour des nœuds en les recréant lorsqu’ils atteignent leur durée d’expiration, assurant ainsi une gestion continue et efficace.
Conditions et périodes d’action
L’opérateur peut définir des conditions spécifiques pour que Karpenter n’agisse sur les nœuds que durant certaines périodes, offrant ainsi une flexibilité supplémentaire dans la gestion des ressources.
Impact et Perspectives
Gain de temps et efficacité
Pour Qonto, l’adoption de Karpenter a été une étape cruciale qui a permis de libérer du temps pour se concentrer sur d’autres sujets importants. Karpenter a également mis en lumière certaines problématiques de configuration, notamment en ce qui concerne les flux de travaux et le redémarrage régulier des nœuds.
Expansion et adoption future
Aujourd’hui, Karpenter commence à s’étendre à d’autres fournisseurs que AWS, et Mathieu Corbin est convaincu que cet outil deviendra incontournable pour la gestion efficace des nœuds Kubernetes dans un futur proche.
Karpenter représente une avancée majeure dans la gestion des nœuds Kubernetes, offrant une solution automatisée et optimisée pour les environnements complexes. Son adoption croissante et son potentiel d’expansion en font un outil à surveiller de près pour tous les professionnels de la gestion de clusters Kubernetes.
HTMX: où le retour de l’AJAX dans le développement Web
Introduction
La conférence était proposée par Stéphane Trebel, expert en développement web et passionné de Rust. Il a partagé son expérience et sa vision de HTMX comme une alternative intéressante aux frameworks JavaScript traditionnels.
Contexte
L'objectif principal de Stéphane était de remettre en question certaines pratiques du développement web moderne, notamment la tendance à tout faire en JavaScript. Il a présenté HTMX comme une solution permettant de revenir aux fondamentaux du web (HTML, HTTP, CSS) tout en offrant une interactivité moderne.
Stéphane a souligné que HTMX n'est pas nécessairement destiné à remplacer tous les frameworks existants, mais plutôt à offrir une approche différente, plus proche des standards web.
Points clés de la présentation
Les principaux points abordés par Stéphane incluent :
- La remise en question du concept “d’application web" au profit d'une vision plus traditionnelle du web comme plateforme de distribution de contenu.
- L'importance de l'amélioration progressive et de l'accessibilité dans le développement web.
- La simplicité d'utilisation de HTMX, qui se base sur des attributs HTML pour ajouter de l'interactivité.
- La compatibilité de HTMX avec différents langages backend, dont Rust, Go, et même PHP.
- L'intégration possible de HTMX avec d'autres technologies front-end comme les Web Components.
En bref...
Au-delà de la présentation d’HTMX, c’est surtout l'approche et le message de cette transition technologique qui m’a intéressé. Il y a un réel besoin à ce changement: ne pas oublier les fondamentaux du web et de ne pas systématiquement réinventer la roue.
L’usage à outrance du Js pour résoudre tous les problèmes qu’il cause lui-même et l’augmentation progressive du poids des pages web est un problème majeur aujourd’hui.
Stéphane nous avertit contre les devs qui se spécialisent à l'extrême et que c’est une profession dont le but est de répondre à des problématiques générales, pas des “experts d’une techno”.
Help! Ma calculatrice Python crame plus de ressources qu’Appolo 6: est-ce raisonnable ?
Introduction
Lors de la récente édition de BdxIO, la conférence tech incontournable de Bordeaux, Artem Valiulin a présenté une session captivante sur un sujet de plus en plus crucial dans le monde du développement : l'écologie du code. Dans un contexte où la consommation énergétique des technologies de l'information ne cesse de croître, Artem Valiulin a proposé une réflexion approfondie sur l'évolution de nos pratiques de programmation et leur impact environnemental.
Contexte
Cette présentation a abordé plusieurs aspects fondamentaux, allant de l'histoire des calculatrices aux défis actuels liés à la consommation des data centers, en passant par les lois qui régissent l'évolution des logiciels et du matériel informatique. Artem a notamment mis en lumière les "lois de Mirvold", qui offrent une perspective intrigante sur la façon dont les logiciels tendent à consommer toujours plus de ressources.
Dans une autre partie de la présentation, Artem s'est concentré sur les conséquences environnementales de cette croissance exponentielle de la puissance de calcul. Artem a mis en lumière deux problèmes majeurs :
a) La consommation énergétique des data centers : Citant des données de Goldman Sachs, Artmen Valiulin a montré que la consommation énergétique des data centers est déjà considérable et continue d'augmenter rapidement. Cette tendance est exacerbée par l'émergence de technologies gourmandes en ressources comme l'intelligence artificielle.
b) L'utilisation de l'eau pour le refroidissement : Un aspect souvent négligé mais tout aussi préoccupant est la consommation d'eau potable par les data centers pour refroidir leurs équipements. Il a présenté des graphiques montrant une croissance alarmante de cette utilisation d'eau.
Ces deux points soulignent l'urgence de repenser nos pratiques de développement et d'hébergement de logiciels. Artem a insisté sur le fait que cette croissance insoutenable est en grande partie due au "gonflement éternel de nos programmes", faisant écho aux lois de Mirvold présentées plus tôt.
En bref...
L’approche orientée “projet simple” avec un petit programme de Calculatrice sur Python pour démontrer les problèmes du développement informatique de manière générale. Comme la première loi de Mirvold le prévoyait: Le code, c’est du gaz. Il finit par prendre toute la place disponible, quelle que soit la puissance de la machine sur laquelle il tourne.
Les 20 minutes de Typescript les plus rentables de votre vie !
TypeScript est devenu un outil incontournable pour de nombreux développeurs JavaScript. Lors de la conférence BDX I/O, Delphin Aubin, expert JavaScript chez Zenika, et Aurélien Loyer, Lead Dev chez Qima, ont partagé des astuces précieuses pour tirer le meilleur parti de ce langage puissant. Plongeons dans ces techniques qui pourraient révolutionner votre façon de coder.
Introduction
TypeScript, un sur-ensemble de JavaScript, a su s'imposer comme un outil indispensable pour les développeurs cherchant à améliorer la qualité et la maintenabilité de leur code. Lors de la conférence BDX I/O, Delphin Aubin, expert JavaScript chez Zenika, et Aurélien Loyer, Lead Dev chez Qima, ont partagé des astuces précieuses pour tirer le meilleur parti de ce langage puissant. Dans cet article, nous allons explorer ces techniques qui pourraient bien révolutionner votre façon de coder.
Une adoption en douceur avec la strictness progressive
L'activation du mode strict de TypeScript peut sembler intimidante au premier abord. La solution ? Une adoption progressive grâce à des plugins dédiés. En utilisant la commande "update-strict-comment", vous pouvez introduire graduellement la rigueur de TypeScript dans vos projets existants, évitant ainsi une avalanche d'erreurs dès le départ.
Les gardiens de types et les assertions : vos alliés pour la clarté
Les type guards et les assert signatures sont comme des phares dans la brume pour TypeScript. Ils guident le compilateur vers une compréhension plus précise de vos intentions. Par exemple, l'utilisation du mot-clé "is" dans une condition permet de définir clairement le type d'un objet. Attention cependant : avec le grand pouvoir des assertions vient la grande responsabilité de les tester rigoureusement !
La danse des types discriminés et le pouvoir du "never"
Imaginez pouvoir dire à TypeScript exactement quel type d'objet vous manipulez dans une union. C'est le rôle des types discriminés. Dans le cadre d'un framework de slides, cela permet de définir précisément chaque type de diapositive.
Quant au type "never", il joue le rôle de garde-fou ultime. En l'utilisant dans un switch, vous vous assurez de n'oublier aucun cas. C'est comme avoir un assistant virtuel qui vous tape sur l'épaule pour vous rappeler les scénarios que vous auriez pu oublier.
Le "flavoring" et l’”overloading” : pour une précision chirurgicale
Le "flavoring" est une technique élégante pour différencier des types qui semblent identiques au premier abord. Imaginez pouvoir distinguer un userId d'un adId sans risque de confusion. C'est exactement ce que permet le flavoring.
Les surcharges de méthodes, quant à elles, offrent la possibilité de définir plusieurs signatures pour une même fonction. Un outil puissant, mais à manier avec précaution pour ne pas transformer votre code en labyrinthe impénétrable.
Les template literals types : quand les chaînes de caractères deviennent intelligentes
Avec les template literals types, vos chaînes de caractères gagnent en intelligence. Que ce soit pour définir des transitions de slides complexes ou valider des adresses email avec des extensions spécifiques, cette fonctionnalité améliore considérablement l'autocomplétion et la détection d'erreurs.
Conclusion : Un monde de possibilités à explorer
TypeScript est bien plus qu'un simple sur-ensemble de JavaScript. Son système de typage, Turing-complet, ouvre des possibilités quasi infinies. Les astuces présentées ici ne sont que la partie émergée de l'iceberg.
La clé pour maîtriser TypeScript ? Une curiosité insatiable et une pratique constante. N'hésitez pas à plonger dans la documentation, à expérimenter et à repousser les limites de ce que vous pensiez possible avec un système de types.
Rappelez-vous : chaque ligne de code TypeScript que vous écrivez est une opportunité d'apprendre et d'améliorer la qualité de vos projets. Alors, quel sera votre prochain défi TypeScript ?
Conclusion de BDX I/O 2024 : Une édition riche en enseignements et innovations
Nous avons encore passé une superbe édition de BDX I/O, marquée par des sujets passionnants et des discussions enrichissantes. De la keynote d'ouverture sur les modèles de langage (LLM) par Marie Alice, qui a démystifié les fantasmes et réalités de l'IA, à la présentation de Quickwit par Idriss, une alternative prometteuse à Elastic Search pour la gestion des logs et des traces, chaque session a apporté son lot de découvertes et de réflexions.
Chaque intervention a apporté une perspective unique et a enrichi notre compréhension des défis et des opportunités dans le domaine de la technologie. Nous repartons de cette édition de BDX I/O avec des idées nouvelles, des outils innovants et une vision plus claire des enjeux actuels et futurs !