Une Architecture GitOps e2e : Terraform, Ansible, Kubernetes et AWS

Photo de Loïc Ortola Loïc Ortola Photo de Aurélien Moreau Aurélien Moreau
Conférence Cloud / Infra / {Dev, Git, Sec}Ops intermediate

 

On a compris : Kubernetes permet de gérer les ressources applicatives.

Mais du coup, comment provisionner mon socle technique ? Où est-ce que je déclare mes rôles ? Combien de clusters / de namespaces ? Comment gérer mes Secrets ? Quid de la zone grise (DNS, Storage, DBs, Storage…) qui touche à la fois à de l’infra et à de l’applicatif ? Où mettre mon socle d’observabilité ?

Dans ce talk, on va vraiment aborder les aspects importants du day-2. On présentera une approche d’architecture dans un SI pas trop compliqué (pas de multi-régions, pas de multi-tenancy, pas de cluster on-premises) pour que tu puisses repartir avec une grille d’analyse complète (CI / Infra-as-code / Templating / Managed services) que tu pourras rapidement adapter et mettre en place dans ton projet !


Comment fabriquer un émulateur NES

Photo de Guillaume Roche Guillaume Roche
Conférence WTF / autre beginner

 

Émulation, simulation, virtualisation… Ces différents concepts permettent d’exécuter des programmes hors du cadre materiel et logiciel pour lequel ils ont été conçu. Si le cas d’usage le plus populaire aujourd’hui est le rétro-gaming, Il en existe une multitude. Il est d’ailleurs probable que vous utilisiez au quotidien ces technologies.

Passionné par ces aspects, je me suis plus lancé le défi d’implémenter un émulateur d’une console NES. Pourquoi la NES ? C’est une machine relativement simple, extrêmement bien documentée, et de nombreux émulateurs open-source existants peuvent nous aider.

Je vous propose de découvrir avec moi une architecture possible d’un émulateur, et comment en implémenter un en nous focalisant sur le CPU, la mémoire, et les fameuses ROMs. Nous évoquerons également comment rendre notre émulateur le plus fidèle possible. Enfin, nous verrons quelle stratégie de tests peuvent s’appliquer sur des projets d’émulateurs.


Simplifiez la gestion de vos applications sur Kubernetes avec CDK8S

Photo de Amine AIT AAZIZI Amine AIT AAZIZI
Quickie Cloud / Infra / {Dev, Git, Sec}Ops beginner

 

CDK8S (CDK for kubernetes) est un framework de développement open source qui permet de définir des ressources kubernetes en utilisant des langages de programmation familiers: Typescript, JavaScript, Python, Java, et Go

Aujourd’hui, la gestion de ressources K8S est faite la plupart du temps via des fichiers YAML. Plus ces applications évoluent, plus ces fichiers deviennent plus compliqués à gérer et à maintenir. Par conséquent, la réutilisation ou l’utilisation des abstractions devient assez compliquée.

Dans cette session, nous allons découvrir comment utiliser cdk8s et créer des composants réutilisables pour vos équipes afin d’accélérer le développement de vos applications sur K8S.

A la fin de ce talk, vous serez à même de déployer une application sur Kubernetes K8S ou de créer un composant réutilisable avec votre langage préféré.


How To Review Someone’s Code While Not Being A Jerk!

Photo de Maha ALSAYASNEH Maha ALSAYASNEH
Quickie Cloud / Infra / {Dev, Git, Sec}Ops beginner

 

Most of us do code reviews very often if not daily. However, how can we tell whether we are good reviewers or not? Do we review a code as robots? Do we keep in mind that we are reviewing the code of someone who invested time and knowledge to write this code, and thus deserves to get respectful feedback?

In this talk, we present the code review best practices and we answer the following questions: What to look for in a code review? How can we write useful reviews?

Furthermore, we explain the key tips for writing respectful and constructive code review feedback. To discover more about all these points and more, come and see our talk.


Une équipe Tech 100% à distance : ça marche ! / A 100% remote working Tech team : it rocks !

Photo de Virginie J Virginie J
Conférence WTF / autre beginner

 

Je suis passée du côté obscur et je travaille à 100% à distance depuis 1 an dans une équipe de développement au sein d’une startup. L’effet covid a encouragé les entreprises à adopter ce mode de travail d’une manière brutale. Certaines ont été conquise d’autre non. Pour ma part l’expérience est super positive. Dans cette conférence j’aimerais partagé mes retours à la fois personnel en tant qu’employé sur ce que m’a apporté le remote et également en tant que manager de cette équipe, l’une des plus brillante équipe que j’ai rencontré en 15 ans d’expérience. Qu’apporte le remote par rapport à des équipes en présenciel ? Quels mécanisme se mettent en place et sont gage de réussite dans ce contexte? Je n’aurais pas une réponse absolue à ces questions mais je pourrais partager avec vous les éléments qui m’ont paru être la clé de cette réussite.


I’ve gone over to the dark side and have been working 100% remotely for 1 year in a development team at a startup. The covid effect has encouraged companies to adopt this way of working brutally. Some have been won over, others not. For me, the experience has been super positive. In this conference, I’d like to share my personal experience of what remote working has brought me, both as an employee and as the manager of this team, one of the most successful I’ve met in my 15 years of experience. What does remote control bring to the table compared with face-to-face teams? What mechanisms are put in place to ensure success in this context? I won’t have an absolute answer to these questions, but I will be able to share with you the elements that seemed to me to be the key to this success.


Comment débuter dans l’accessibilité numérique ?

Photo de Emmanuelle ABOAF Emmanuelle ABOAF
Conférence UX / accessibilité beginner

 

Vous êtes développeuse ou développeur et vous êtes intéressés par l’accessibilité numérique mais vous ne savez pas par où commencer ? Venez découvrir les bases du développement de l’accessibilité numérique en HTML.


Les super pouvoirs du package java.util.function

Photo de Jérôme Tama Jérôme Tama Photo de Damien Lucas Damien Lucas
Conférence Langages beginner

 

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 !


Plongeons au coeur des frameworks frontend modernes pour comprendre leur réactivité🔬⚛️

Photo de Dedieu Sylvain Dedieu Sylvain
Conférence Web intermediate

 

Le mot « réactivité » est omniprésent dès lors que l’on lise un article ou que l’on écoute un podcast sur un framework frontend.

Mais qu’est-ce que ce terme signifie ? Plus concrètement encore, comment cette réactivité est traduite en code au sein de nos frameworks préférés ?

Je vous propose de pratiquer une opération à coeur ouvert de Vue, React, Svelte et Angular afin de comprendre leurs mécanismes internes de « rafraîchissement » du DOM.

Nous nous attarderons d’avantage sur ce dernier qui est en train de complètement changer sa logique réactive. Le but de ce focus est de vous présenter les challenges auxquels la core team fait actuellement face et surtout le futur proche d’Angular.

Alors si vous voulez être réactif, suivez le guide ! 😉


Explorons nos APIs

Photo de Anne-Laure Gaillard Anne-Laure Gaillard
Conférence Méthodes et outils intermediate

 

Lorsqu’on parle de tester des APIs, nous pensons généralement automatisation. Par exemple, vérifier les codes d’état, les éléments du corps de la réponse, ou encore tester les temps de réponse.

Et si vous exploriez un peu plus les opportunités de tests des APIs ? Les tests exploratoires incontournables en agile s’appliquent également très bien aux APIs. Peu importe le niveau technique de la personne testant, les résultats sont au rendez-vous !

Je vous partage dans cette présentation le processus que nous avons créé et que nous utilisons au sein de mon équipe. Vous aurez ainsi toutes les clés pour explorer vous aussi les APIs.


Une architecture pour tester son front-end

Photo de Alexia Souvane Alexia Souvane
Quickie Web beginner

 

Dans le monde du développement, tout le monde parle de test: « Si tu n’écris pas de test, ton code ne peut pas être de qualité ». 

Cela fait 4 ans que je développe et tout autant de temps que je me pose la question de comment tester unitairement mon frontend. Tester son backend semble approprié car il contient une grande part de logique: le cœur métier. 

Mais est-ce aussi simple côté frontend? – où l’on doit gérer un état global, le garder synchronisé avec des données provenant de diverses sources et afficher le tout à l’utilisateur. Il y a bien quelques logiques d’affichage et transformations de données, mais les tester unitairement ne semble pas couvrir la globalité d’un comportement, de l’interaction utilisateur jusqu’à l’affichage à l’écran.

Après plusieurs années à travailler sur des projets sans tests et d’autres projets où l’on testait individuellement chaque fonction, aujourd’hui je présente une architecture permettant de tester unitairement son front de manière efficace en couvrant les comportements plus que l’implémentation.


Comment inclure l’inclusivité dès les premières étapes de conception d’un service ou d’un produit digital ?

Photo de Noémie M. Rivière Noémie M. Rivière
Quickie UX / accessibilité beginner

 

L’inclusivité gagne du terrain dans le débat public, les marques s’y mettent timidement… comment les services et produits digitaux peuvent-ils se faire les porte-parole des minorités dans le fond comme dans la forme ?

Pour savoir comment l’inclure dans un projet, il faut déjà savoir ce qu’est l’inclusivité et ce qu’elle n’est pas. Et puis forcément on se pose la question des bénéfices qu’elle apporte dans un produit et qui en aura la responsabilité. On rentrera dans le concret pour terminer, parce que pour l’instant ça reste flou : on verra comment a travers des questionnements, des formulaires, des données, des visuels, des mots on peut être inclusif dans un produit. Et comment on peut pérenniser tout ça, parce que oui l’objectif c’est qu’un projet devienne, soit et reste inclusif !


De JavaScript à l’impression 3D, promenons nous dans les jardins de Babylon

Photo de Sylvain Gougouzian Sylvain Gougouzian
Conférence WTF / autre beginner

 

De nos jours, l’impression 3D est de plus en plus accessible, on en voit de plus en plus dans les foyers. Il est facile de télécharger un modèle sur Thingiverse, ou encore Cults3D. Mais, lorsque l’on veut créer nos propres modèles cela devient plus compliqué.

En effet, il faut apprendre à manipuler un logiciel de CAD (Conception Assistée par Ordinateur). Même pour créer des modèles simples, il n’y a pas grand chose sur le marché. Il existe bien OpenSCAD, mais il faut également apprendre un nouveau langage.

D’un autre côté, beaucoup de développeuses et développeurs connaissent le JavaScript et Il existe des bibliothèques comme ThreeJS, BabylonJS, … pour faire de la 3D.

Alors comment faire le lien ?

A travers un projet à destination éducative que j’ai créé pour les enfants, « Kody », j’explique le fonctionnement d’une imprimante 3D, du format STL et de comment, depuis BabylonJS et une librairie codée pour Kody, je peux imprimer des cartes perforées en quelques lignes de codes.


Sous le capot du « docker build »

Photo de Carmen Piciorus Carmen Piciorus
Quickie Cloud / Infra / {Dev, Git, Sec}Ops beginner

 

Comprendre comment le docker build fonctionne sous le capot va vous aider à gérer les erreurs lors du build, à utiliser de manière optimisée le cache et à diminuer la taille des layers. Ce quickie vous permettra de comprendre rapidement comment builder et télécharger une image de manière sécurisée et optimisée, ainsi que les commandes docker clés pour détecter des éventuelles fuites de données.


En 2 min, un hacker vous refait le portrait (numérique)

Photo de fs0c131y fs0c131y
Conférence Big Data / ML / AI intermediate

 

Connaissez vous votre empreinte numérique ?

Tout les jours vous laissez des traces sur Internet à votre insu. Durant cette présentation, Baptiste Robert vous montrera comment une personne malveillante peut, à partir de très peu d’information (nom prénom, pseudonyme, …) connaître toute votre vie ou presque.


L’AGC : retour sur l’ordinateur qui a amené l’humanité sur la Lune

Photo de Olivier PONCET Olivier PONCET Photo de Romain BERTHON Romain BERTHON
Conférence WTF / autre beginner

 

Lundi 21 juillet 1969, l’humanité posait pour la première fois le pied sur la Lune. Cet exploit est le fruit de nombreuses avancées techniques et technologiques, notamment en électronique et dans le domaine de l’informatique alors naissant. Pour mener à bien leurs missions, les astronautes s’appuyaient sur l’AGC, l’ordinateur de bord du programme Apollo qui permettra de réaliser ces exploits.

Embarquez avec nous et découvrons ensemble sa conception et les rôles qu’il devait assurer au cours d’une mission jusqu’à la Lune. Nous nous replacerons dans le contexte historique, aborderons les moyens qui étaient alors à disposition des ingénieurs de l’époque, les avancées technologiques qui ont été nécessaires pour relever ce défi ainsi que les héritages que ce programme nous aura laissé, notamment dans le domaine de l’ingénierie logicielle.


WebGPU and Babylon.js: a fruitful collaboration

Photo de Corentin Wallez Corentin Wallez
Conférence Web intermediate

 

WebGPU is a new Javascript API that allows Web pages to access advanced GPU functionality for fancier graphics and faster scientific computation (like ML) in the browser. The first version of WebGPU was released in Chrome in May 2023 and was extremely well received. Babylon.js is very popular state of the art Web 3D engine developed primarily by Microsoft. Since the Babylon.js 5.0 release it has full support for WebGPU.

In this talk Sebastian Vandenberghe, lead developer of Babylon.js at Microsoft, and Corentin Wallez, WebGPU chair and lead at Google (and Pechabou kid :D) will show practical benefits of aspects of WebGPU through their use in Babylon.js, and will show how the early adoption of Babylon.js shaped part of WebGPU.

Over the many years of WebGPU’s development they both collaborated directly. Sebastian’s extensive feedback contributed to shape WebGPU and in return Corentin helped him get Babylon.js get the gains promised by WebGPU. After some general context we will detail several aspects of Babylon.js’ use of WebGPU to exemplify the benefits of this API, as well as examples where feedback changed the API. If time permits we’ll also give a quick peek at what’s planned in the future.


J’aime le Big-O mais il me trompe

Photo de Valentin Deleplace Valentin Deleplace
Conférence Méthodes et outils beginner

 

Nous apprenons que trier N éléments prend un temps proportionnel à (N log N). Concentrons-nous sur la complexité algorithmique, le reste ce sont des détails d’implémentation! Cette approche universitaire permet en effet d’être rapidement productif en faisant abstraction de l’architecture physique des ordinateurs, du jeu d’instruction du microprocesseur, de la latence du SSD.

Attention, c’est parfois un gros mensonge! Quand vous avez besoin d’améliorer les performances, c’est rarement « Big-O » qui vous y aidera. Je vais montrer plusieurs exemples où l’analyse de la complexité algorithmique ne sert à rien, et quelques cas où elle vous envoie carrément dans le mur. Mieux vaut être terre-à-terre, ne pas ignorer les coefficients multiplicateurs « cachés », apprendre la « compassion mécanique », et surtout mesurer les véritables latences, encore et encore.


40 Minutes pour Construire des APIs REST et GraphQL Serverless

Photo de Maxime Beugnet Maxime Beugnet
Conférence Cloud / Infra / {Dev, Git, Sec}Ops beginner

 

Au début de la pandémie de COVID-19, l’Université Johns Hopkins a travaillé sur la collecte et le raffinage des données provenant de plusieurs sources et a fourni au monde un dépôt Github et un tas de fichiers CSV. Le problème? Il est presque impossible de construire quoi que ce soit à partir de données brutes comme celle-ci.

Dans cette session de codage en direct, Maxime Beugnet, Developer Advocate chez MongoDB, vous montrera comment créer une API REST sans serveur et une API GraphQL basée sur cet ensemble de données en utilisant Python et la plateforme de données MongoDB. Nous allons enfin mettre à profit le serverless et l’offre gratuite d’Atlas App Services.


Ce n’est qu’une histoire de Date

Photo de Renaud Mathieu Renaud Mathieu
Quickie WTF / autre beginner

 

Une tâche courante dans le développement consiste à manipuler des dates.

Pourtant, c’est tout sauf simple…

Il existe différentes contraintes liées à la gestion des dates, telles que différents calendriers, différents fuseaux horaires ou simplement parce que la rotation de la Terre n’est pas uniforme.

Nous profiterons de cette conférence pour examiner l’histoire de la gestion des dates en Java et Kotlin et comment tout cela a évolué au fil du temps pour répondre aux besoins des développeurs. Bien sur, nous discuterons aussi des meilleures pratiques ainsi que la gestion des fuseaux horaires pour améliorer notre quotidien !


« Don’t roll your own crypto »: les méthodes formelles au service de la sécurité

Photo de Theophile Wallez Theophile Wallez
Quickie Méthodes et outils intermediate

 

On entend souvent « don’t roll your own crypto ». Mais pourquoi ? Parce que concevoir et implémenter un protocole cryptographique, c’est très complexe ! Les failles de sécurité peuvent se loger aussi bien dans les primitives cryptographiques (comme le chiffrement ou les signatures) que dans le protocole qui repose sur ces primitives. Ces failles peuvent se trouver non seulement dans le code, mais aussi dans la spécification du protocole ou de la primitive.

Les méthodes formelles fournissent des outils qui permettent de prouver l’absence de telles failles. Ces méthodes, si elles sont utilisées principalement par des chercheurs ont des applications bien réelles pour valider et sécuriser les protocoles que vous utilisez quotidiennement.

Nous verrons comment des failles comme Heartbleed [1], le buffer overflow dans SHA-3 [2], ou encore les multiples failles de Matrix [3] auraient pu être évitées grâce aux méthodes formelles, et je partagerai mon expérience avec l’application de ces méthodes sur le futur protocole de messagerie sécurisé MLS [4].


Développeurs sans frontière : Jetpack Compose pour Android et iOS

Photo de Julien BAJON Julien BAJON Photo de Nicolas Boutin Nicolas Boutin
Conférence Applications mobiles intermediate

 

Développer une application Android /iOS avec une seule base de code, de la logique métier à l’UI, c’est la promesse faite par Jetbrains, les papas de Kotlin!

Voilà maintenant 5 ans qu’ils peaufinent Kotlin Multiplatform pour en faire un outil de développement convaincant, notamment en permettant aux applications Android et iOS natives de partager un même cœur de logique métier écrit en Kotlin.

Cette logique de mutualisation a été poussée encore plus loin avec Compose Multiplatform, initialement disponible pour Android, Desktop et Web uniquement. Mais, lors de la dernière Kotlin Conf, Jetbrains a jeté un grand pavé dans la marre en annonçant la sortie de Compose for iOS, intégrant la pomme à l’écosystème.

La promesse est-elle tenue? Pouvez-vous enfin vous débarrasser de vos développeurs iOS? Venez le découvrir avec nous (présentation garantie sans troll).


Product Management, le futur de l’Agilité ?

Photo de Maria-Eliza Paez Maria-Eliza Paez
Conférence Méthodes et outils intermediate

 

Au début de ma carrière de PO je me suis dit “l’Agilité🤍 C’est super!” et pourtant… sur le terrain, elle était très loin de ce que j’avais imaginé.

Comment délivrer des produits à fort impact et fédérateurs ? Éviter de refaire la même fonctionnalité ? Mettre la qualité au centre ?

Dans ce REX, je vous propose de vous partager mon histoire et de découvrir en quoi le Product Management a transformé mes pratiques et m’a permis de faire face à des organisations qui appliquent l’agilité comme “recette magique”.


Kotlin Multiplatform : The (very) Good, The Bad & The Ugly

Photo de Thomas Salvetat Thomas Salvetat Photo de Alexandre Delattre Alexandre Delattre
Conférence Applications mobiles beginner

 

Kotlin Multiplatform, KMP pour les intimes, est une technologie mobile basée sur l’excellent langage Kotlin, qui permet de mutualiser son code technique et métier entre son application Android et iOS (ainsi que les autres plateformes supportées Linux, Windows, macOS, watchOS et bien d’autres)

Dans ce talk, nous allons vous présenter notre retour d’expérience de développement de deux applications KMP de production.

Nous présenterons brièvement KMP, son historique, ses objectifs et son positionnement dans un écosystème.

Nous verrons alors comment KMP nous a fait gagner du temps sur nos projets, partager les bonnes pratiques issues de nos expérience sur ces deux applications.

Nous verrons également là où le bât blesse, voir les situations ou nous ne conseillons pas KMP.

Pour finir, nous nous intéresserons à l’avenir de cette techno, notamment Compose multiplatform et le support Webassembly.


Machine to machine : jouons un peu avec MQTT, Mosquitto et Paho

Photo de Laurent Guérin Laurent Guérin
Conférence IOT / embarqué intermediate

 

MQTT est un protocole léger basé sur le pattern « Publish/Subscribe » qui s’est imposé pour les échanges M2M et donc l’IoT. Simple et facile à appréhender il peut être utilisé pour des cas d’usage très variés aussi bien avec un Raspberry Pi qu’un serveur Linux ou dans le cloud.

Cette présentation vous permettra de découvrir les principes de base du protocole MQTT, avec des démos utilisant le brocker « Mosquitto » et bien sûr un peu de code avec la librairie « Paho » et différents langages (Java, Python, Go, etc)

Des exemples illustreront différents cas d’usage (smartphone, dashboard, websocket, etc)


Mais non, c’est pas une erreur de CORS

Photo de Christophe Farges Christophe Farges
Quickie Web intermediate

 

Lorsqu’une application Web fait une requête vers un backend, il arrive que l’on rencontre le terrifiant message « Cross-Origin Request Blocked »

On a bien mis « Access-Control-Allow-Origin: * » et on a encore une erreur de CORS ? qu’est ce que c’est que cette histoire ?

Mais qu’est ce qui se cache derrière ce message ?

Est-ce réellement l’erreur que l’on rencontre ?

Nous allons dans cette présentation faire un rappel sur ce mécanisme de sécurité, pourquoi il existe et aussi pourquoi, des fois, ce n’est pas ça l’erreur.


Jay-Z, Maths and Signals ! How to clone Shazam 🎧

Photo de Moustapha Agack Moustapha Agack
Conférence Web beginner

 

J’ai toujours rêver de comprendre comment fonctionnait Shazam.

Cette application qui permet de retrouver l’artiste et le titre d’une chanson juste avec un enregistrement de quelques secondes. Du coup j’ai décider de la re-coder ! Je vous montre tout cela pendant ce talk, et ce sera l’occasion de parler notes musicales, harmoniques, fréquences, signaux, et de transformée de fourrier (et de Jay-Z) pour recréer l’algorithme qui fait tourner le moteur Shazam ⚡️


Cloner ChatGPT avec Hugging Face et Elasticsearch

Photo de Pietro Mele Pietro Mele Photo de Lucian Precup Lucian Precup
Conférence Big Data / ML / AI intermediate

 

Elasticsearch est un moteur de recherche, une base de données NoSQL et un moteur d’analyse de données qui vous permet d’indexer et de visualiser vos données de manière efficace. Hugging Face est la plateforme collaborative pour développer, tester et déployer les meilleurs modèles de Machine Learning Open Source. L’intégration des deux plateformes permet la création d’applications très puissantes augmentant les données et les performances de leur rendu. Dans cette conférence nous montrons quelques exemples et prototypes construits à l’aide de deux technologies. Une occasion pour approfondir Hugging Face, revisiter Elasticsearch et … refaire ChatGPT.


Mesurer et réduire concrètement l’impact de vos applications en prod avec OpenTelemetry

Photo de Vivien Maleze Vivien Maleze Photo de Loïc PINÇON Loïc PINÇON
Conférence Cloud / Infra / {Dev, Git, Sec}Ops beginner

 

Pour toutes les personnes qui travaillent dans un système distribué, il est aujourd’hui vital de monitorer son architecture. L’optimisation d’une architecture passe avant tout par une connaissance accrue de son fonctionnement. C’est à partir de cette problématique qu’est né OpenTelemetry.

OpenTelemetry, c’est quoi ? Quel est le rapport avec l’impact de vos applications ? On passera un peu de temps à vous présenter ce projet, puis on rentrera dans le vif du sujet. Une fois passée l’étape du tutoriel, on se retrouve souvent face à la dure réalité de mettre ça en place sur sa stack en production. Comment faire pour monitorer plus de 400 microservices en prod ? Quelles techniques peut-on utiliser pour concrètement optimiser les ressources dont on a besoin ?

On ressort souvent des conférences avec de belles démo et s’ensuit ce qu’on aime appeler le Hype Driven Development. Mais lorsqu’il faut mettre en place ce monitoring sur une stack existante, comment ça marche ?

A travers un retour d’expérience et des exemples concrets d’utilisation, on vous présentera les enjeux et les bonnes pratiques pour monitorer votre production.


Une autre manière de tester vos microservices

Photo de Leclerc Gwendal Leclerc Gwendal
Conférence Méthodes et outils intermediate

 

Dans une architecture microservices, l’interdépendance entre les microservices et le couplage avec des services externes (base de données, cache, message queue, …) peuvent rendre les tests très compliqués. Les tests unitaires vont souvent nécessiter de mocker beaucoup de choses de manière invasive, pour au final tester peu de code métier, sans pouvoir tout couvrir.

Pour répondre à cette problématique, dans l’équipe domaine d’OVHcloud, nous avons mis en place une manière de tester nos différents services en “boîte grise”. Dans ce talk nous explorerons les concepts derrière cette stratégie de test, ainsi que ses avantages et inconvénients.

Nous verrons comment la mettre en œuvre via quelques outils :

  • Un peu de Shell et de Docker
  • Venom : un test runner déclaratif qui permet de faire des appels HTTP, manipuler des bases de données, et plein d’autres choses
  • Smocker : un server de mocks HTTP déclaratif pilotable via API

Vous découvrirez ainsi comment tester un microservice de manière complètement isolée, puis comment tester un ensemble de microservices interconnectés.


Generative AI par la pratique : cas concrets d’utilisation d’un LLM en Java, avec l’API PaLM

Photo de Guillaume Laforge Guillaume Laforge
Conférence Big Data / ML / AI beginner

 

Les Large Language Models (LLM) sont une nouvelle technologie puissante qui peut être utilisée pour une variété de tâches, notamment la génération de texte, la traduction de texte et la rédaction de différents types de contenu créatif. Cependant, les LLMs peuvent être difficiles à utiliser, en particulier pour les développeurs qui ne sont pas expérimentés en Python, la “lingua franca” de l’IA. Alors, qu’en est-il des développeurs Java ? Comment pouvons-nous tirer parti de l’IA générative ?

Cette présentation vous montrera comment utiliser les LLMs en Java sans avoir besoin de Python. Nous utiliserons l’API PaLM, fournie par les services Google Cloud Vertex AI, pour effectuer une variété de tâches, telles que la recherche dans de la documentation, la génération d’histoires pour enfants, la synthèse du contenu, l’extraction de mots-clés ou d’entités, et plus encore.


CSS renaît de ses cendres: (re)devenez copains avec votre feuille de style

Photo de Yohan Lasorsa Yohan Lasorsa Photo de Olivier Leplus Olivier Leplus
Conférence Langages intermediate

 

On ne va pas se mentir: quand on a commencé notre aventure dans le développement web il y a 15 ans, le CSS et nous, ce n’était pas vraiment le grand amour. Malgré l’arrivée des variables et des nouveaux systèmes de layouts, on n’était toujours pas convaincus, et on ne l’utilisait que par obligation. En 2023, on a décidé de lui donner une nouvelle chance: comme pour le JavaScript, les nouveautés de CSS ont considérablement changé le langage ces dernières années, et on a été agréablement surpris.

Dans ce talk interactif et riche en démos, on abordera les standards existants et ceux à venir qui nous on fait redécouvrir le CSS. Préparez-vous à explorer des fonctionnalités cools telles que :is(), :has(), le nesting, les custom media queries, les custom properties (bien plus puissantes qu’on ne le pense) et bien d’autres innovations encore !

Rejoignez-nous pour donnez une nouvelle chance au CSS, qui pourrait bien devenir votre nouveau copain incontournable dans le développement front-end !


Les enjeux de l’IA Green pour l’embarqué

Photo de Quentin Gasparotto Quentin Gasparotto Photo de Ilo Lefebvre Ilo Lefebvre
Conférence Big Data / ML / AI beginner

 

Le Edge Computing est une technique permettant de réduire la charge de traitement du Cloud computing en distribuant les traitements en bordure du réseau. Ces sujets impliquent dans certains cas de déployer les traitements en sortie des capteurs sur des systèmes embarqués, fortement contraints en termes de ressources. Nous présenterons les travaux que nous menons depuis 3 ans sur l’IA embarquée : Compression et Segmentation d’objets sur images satellites, reconnaissance vocale embarquée et suivi de santé des téléphériques urbains.

Mots clés : Edge Computing, IA, Embarqué, IoT, Green Computing

1. Introduction

Le Edge Computing est une technique permettant de réduire la quantité de données qui transitent, ainsi que la charge de calcul du Cloud computing en distribuant les traitements en bordure du réseau.

On peut faire du Edge Computing soit sur data center local (Cloud Edge), soit sur cluster embarqué (Far Edge) soit directement en sortie de capteur (Device Edge) et dans chacun des cas, on fait face à des contraintes croissantes de :

  • Consommation énergétique limitant fortement les ressources disponibles
  • Réactivité des traitements devant aller au moins aussi vite que l’acquisition pour respecter le temps réel
  • Précision convenable des résultats pour ne pas donner de fausses informations aux opérateurs

Pour déployer de l’IA sur du Edge computing, il est donc nécessaire de maîtriser la chaîne d’intégration de l’IA sur systèmes embarqués et de repenser complètement la conception des modèles ainsi que leur optimisation sur cible finale dans un objectif de frugalité calculatoire important.

Nous vous proposons de présenter les enjeux opérationnels du Edge Computing pour un certain nombre d’applications concrètes de nos clients :

  • Compression d’image et segmentation d’objet à bord des satellites
  • Reconnaissance de la parole en temps réel sur systèmes embarqués
  • Suivi de santé du freinage des téléphériques urbains avec un parc IoT

Nous verrons dans chacun des cas le processus de réflexion et d’expérimentation qui nous a amené à définir notre propre framework de portage IA embarquée pour permettre aux data-scientistes et aux développeurs embarqués de dialoguer et converger vers la meilleure implémentation.

2. Méthodologie

Voici les méthodes spécifiques utilisées pour chacun de nos cas d’usage.

Compression d’image à bord des satellites : entrainement, optimisation et déploiement d’un auto-encodeur convolutif de compression d’image sur une cible FPGA Xilinx à l’aide du framework open-source N2D2 développé par le CEA.

Suivi de freinage des téléphériques urbains sur parc IoT : étude, modélisation et déploiement d’un réseau de neurones sur un parc IoT de téléphériques urbains pour la détection de l’usure lente du système de freinage des remontées mécaniques.

Commande vocale sur systèmes embarqués : entrainement, adaptation et déploiement du réseau de neurones et d’algorithmes de traitement du signal sonore en temps réel sur Raspberry Pi 4 et Arducam Pico 4ML (PicoPi).

Détection de routes à bord des satellites : entrainement, miniaturisation et benchmark de réseaux de neurones pour de la segmentation d’image à l’aide de la distillation de connaissances sur cible Nvidia Jeston Nano.

3. Originalité / perspective

Les compilateurs de deep learning disponibles en Open Source se focalisent sur le déploiement de modèles IA existants sur des systèmes embarqués contraints.

Ils proposent souvent des techniques de quantification ou d’élagage pour réduire l’empreinte mémoire des poids des modèles mais ces techniques peuvent ne pas suffire pour porter des modèles volumineux.

De plus, ils occultent totalement l’adaptation des modèles aux capteurs présents sur les systèmes (ex : échantillonnage des micros).

Notre objectif est de traiter l’intégralité de la chaîne d’intégration de l’IA embarquée, de la conception des modèles incluant la miniaturisation des architectures de réseaux de neurones, à leur optimisation fine pour un matériel d’exécution donné jusqu’aux campagnes de benchmarks sur les cibles d’exécution finales.

L’objectif étant de fluidifier les échanges entre deux expertises très différentes :

  • Data Science : développer des modèles dans un environnement virtuellement illimité
  • Développement embarqué : intégrer des traitements frugaux sur des systèmes très limités en ressources de calcul et peu consommateurs en énergie

Egalement nos cas d’usage couvrent un large spectre d’activités nous permettant d’éprouver notre framework sur des problématiques métiers pourtant très spécifiques.

De plus, de par la diversité de nos cas d’usage ainsi que des clients de Thales Services Numériques, nous avons une position privilégiée dans le groupe pour faciliter le transfert technologique dans toutes nos activités internes militaires comme civiles.

Nous comptons par la suite étudier la réduction de la consommation énergétique de l’IA dans le cloud en utilisant des technologies venant du monde de l’embarqué. Etant donné que nous avons développé notre framework avec de fortes contraintes de consommation énergétique, nous comptons l’utiliser pour proposer des actions de mitigations et fournir des services de Green Computing autour de la Green AI.


Comment automatiser ses tests d’accessibilité ?

Photo de Anthony Le Goas Anthony Le Goas
Conférence UX / accessibilité beginner

 

Les tests d’accessibilités web : on en voit trop peu dans nos chaînes de CI/CD et pourtant, il est possible de faire pas mal de choses ! Les outils et techniques pour automatiser des tests d’accessibilité sont multiples mais relativement méconnus des développeurs web. Que pouvons-nous tester, et comment ? Etudions tout cela ensemble, regardons comment intégrer ces tests dans nos pipelines (Gitlab CI, GitHub Actions, …).


Programme et preuves – Le typage dépendant comme un moyen de structurer sa pensée

Photo de Guillaume Andrieu Guillaume Andrieu
Conférence Langages intermediate

 

Dans le vieux débat typage statique/typage dynamique, le typage statique semble gagner du terrain. Le typage statique s’est introduit dans le monde JS avec Typescript, et même dans Python avec ses « type hints » puis mypy.

Mais les langages à typage statique eux-mêmes lorgnent vers plus de flexibilité, et tous jalousent en secret les capacités d’expression des langages à types dépendants. Même Haskell se voit doter de plusieurs initiatives pour y intégrer des types « liquides » ou carrément des types dépendants.

Le typage dépendant est d’une simplicité conceptuelle radicale: là où de nombreux langages font une séparation nette entre valeurs et types (que des apprenti-sorciers développeurs astucieux s’évertuent souvent à contourner), les langages à types dépendants permettent aux types d’être des valeurs « comme les autres »: des fonctions peuvent renvoyer des types, ou en prendre en arguments, et les types peuvent être paramétrés (ou « indexés », dans le jargon) par des valeurs.

Alors certes, peu de langages ont ces particularités. Pourtant, apprendre à considérer les programmes comme des preuves a des bénéfices mêmes quand on ne dispose pas de ce type de typage dans son activité quotidienne.

Lors de cette présentation, on découvrira les types dépendants à travers deux exemples simples, dans le langage Idris2. Le but est de réfléchir ensemble sur la notion de preuve en explorant les possibilités qu’offrent ce typage, notamment la possibilité d’écrire des preuves formelles. On appliquera notamment cette technique à l’optimisation d’une fonction, en prouvant formellement que notre optimisation n’a pas d’impact sur le comportement de la fonction. Nous en profiterons pour aborder la manière dont on peut s’inspirer de ces techniques dans d’autres langages.


Architecturer en oignon sans avoir les yeux qui pleurent

Photo de Edouard CATTEZ Edouard CATTEZ
Conférence Méthodes et outils beginner

 

Pour délivrer de la valeur chez nos clients, nous sommes amenés à développer des applications numériques. Le code source de celles-ci traduit les fonctionnalités qui vont permettre à nos clients de se différencier des autres, de faciliter les usages de ses utilisateurs, de faire plus de bénéfices, […].

Pour se comprendre, entre équipe produit et métier, nous portons des méthodologies de travail comme le BDD (Behavior-Driven Development). Les besoins deviennent des fonctionnalités, les fonctionnalités deviennent des cas d’usage. Nous pouvons alors entamer les développements. C’est là que nous arrivons à un détail qui à son importance: l’architecture logicielle. La manière de l’aborder peut avoir un impact significatif sur le produit final: sa maintenance, sa résilience, sa qualité.

L’architecture oignon est particulièrement adaptée pour répondre à des besoins métier à forte valeur ajoutée. Mais qu’est-ce que c’est ? Comment ça se traduit dans le code ? Quelle différence avec l’architecture hexagonale et l’architecture n-tiers ?

Revêtons notre plus beau tablier, partons d’un besoin, et découpons notre archi.


Envolez-vous vers le low code!

Photo de Mélanie Bats Mélanie Bats
Conférence Web beginner

 

En tant que développeur, écrire du code n’est pas une fatalité! Aujourd’hui d’autres horizons s’ouvrent à nous! Vous avez déjà l’habitude de vous reposer sur de nombreux frameworks pour vos devs alors pourquoi pas sur un outil low code? Cette session démontre concrètement comment développer, en un battement d’aile, grâce au low code, un outil de création de jeux d’obstacles à la “Flappy Bird”.

Découvrez la plateforme low code open source : Sirius web !

  • Facilité d’utilisation: une appli web prête à l’utilisation,
  • Productivité accrue: le temps d’une session, on crée une plateforme de création de jeux,
  • Flexibilité: c’est vrai pour n’importe quel domaine!
  • Extensibilité: dans low code, il y a code vous pouvez étendre la plateforme basée sur des technos classiques : Spring, Java, React!

Venez faire voler en éclats vos préjugés sur le low code! Le low code n’est pas l’oiseau de mauvaise augure que vous imaginez, mais il peut vous amener vers d’autres cieux.

“Envole-moi, envole-moi, envole-moi Loin de cette fatalité qui colle à ma peau Envole-moi, envole-moi Remplis ma tête d’autres horizons, d’autres mots” JJ Goldman