14 KiB
| title | date | draft | resources | images | topics |
|---|---|---|---|---|---|
| Red Hat Summit Connect France 2024 | 2024-10-08T00:00:00+02:00 | false | [*.jpeg *.png *.mp4] | [open-code-quest-microservices.png rhel-booth-mission-impossible-demo.jpeg rhel-booth-mission-impossible-demo-3.jpeg] | [Developer Relations Site Reliability Engineer Artificial Intelligence Edge Computing] |
Le 8 Octobre 2024, j'ai participĂ© au Red Hat Summit Connect France 2024 đŸ Ă double titre :
- Je me suis occupé du Leaderboard de l'atelier Open Code Quest et j'ai assuré le rÎle de SRE pour la plateforme de cet atelier.
- J'étais présent sur le stand RHEL pour présenter notre démo "Mission Impossible" avec le train Lego.
Open Code Quest : Une aventure technologique et héroïque
L'atelier Open Code Quest a rassemblĂ© des passionnĂ©s de technologie dans un cadre immersif oĂč se mĂȘlaient innovation technologique et univers de super-hĂ©ros. L'objectif Ă©tait d'offrir aux participants une dĂ©couverte approfondie de Quarkus, OpenShift, OpenShift AI, saupoudrĂ©s d'une pincĂ©e de sĂ©curitĂ© et avec une expĂ©rience dĂ©veloppeur sans couture. Le tout en les plongeant dans une aventure captivante oĂč chaque exercice impliquait des super-hĂ©ros.
Lors de cet atelier, les participants devaient développer pas moins de quatre micro-services pour construire une application de simulation de combat entre super héros et super villains.
{{< attachedFigure src="open-code-quest-microservices.png" >}}
Les micro-services ont Ă©tĂ© dĂ©veloppĂ©s en Quarkus, le framework Java natif pour le cloud, en dĂ©montrant comment il peut transformer le dĂ©veloppement dâapplications en alliant rapiditĂ© de dĂ©veloppement, lĂ©gĂšretĂ© et performance. En particulier, Quarkus rĂ©duit considĂ©rablement l'empreinte mĂ©moire des applications, tout en permettant un dĂ©marrage quasi instantanĂ©.
Nous avons Ă©galement positionnĂ© en tĂȘte de pont Red Hat Developer Hub, la distribution Red Hat de Backstage, une plateforme open source dĂ©veloppĂ©e par Spotify pour amĂ©liorer la gestion des environnements complexes. Red Hat Developer Hub a captivĂ© l'attention des participants en offrant une interface unifiĂ©e pour centraliser la gestion des microservices, pipelines CI/CD et autres outils essentiels au dĂ©veloppement. Son extensibilitĂ© a permis d'intĂ©grer facilement des plugins adaptĂ©s aux besoins de l'atelier, simplifiant ainsi le cycle de vie des applications. Pour les dĂ©veloppeurs comme pour les architectes, Red Hat Developer Hub s'est rĂ©vĂ©lĂ© ĂȘtre un outil prĂ©cieux, facilitant la collaboration et apportant une vision claire de l'infrastructure tout en amĂ©liorant la productivitĂ©.
Lors de l'Open Code Quest, nous avons également mis en lumiÚre Red Hat Trusted Application Pipelines, un produit conçu pour sécuriser et automatiser la chaßne de construction des applications. Basé sur les technologies Tekton Chains et SBOM (Software Bill of Materials), ce produit offre une traçabilité complÚte et garantit l'intégrité des composants logiciels à chaque étape du pipeline CI/CD. Les participants ont pu découvrir comment ces outils permettent de renforcer la sécurité des déploiements en fournissant des preuves de conformité et en assurant la transparence sur les dépendances utilisées dans les applications.
Je vous laisse découvrir la liste complÚte de l'outillage utilisé dans l'atelier Open Code Quest :
{{< attachedFigure src="open-code-quest-namespaces.png" >}}
Avant et pendant l'Open Code Quest, la gestion de la plateforme a jouĂ© un rĂŽle clĂ© dans la rĂ©ussite de l'Ă©vĂ©nement. En tant que membre organisateur, jâai eu la responsabilitĂ©, avec SĂ©bastien Lallemand, de prĂ©parer, dimensionner, installer et configurer les huit clusters OpenShift nĂ©cessaires au bon dĂ©roulement des ateliers. Cela comprenait un cluster central, un dĂ©diĂ© Ă l'IA, et six autres rĂ©servĂ©s aux participants pour leurs missions. Cette phase cruciale de prĂ©paration a permis de garantir une infrastructure stable et performante. Pendant lâĂ©vĂ©nement, mon rĂŽle de SRE (Site Reliability Engineer) consistait Ă surveiller de prĂšs les mĂ©triques critiques, telles que l'utilisation des ressources, afin d'assurer une expĂ©rience fluide et optimale pour tous les participants. GrĂące Ă cette surveillance proactive nous avons pu offir une disponibilitĂ© constante des environnements et ainsi faciliter le bon dĂ©roulement de l'atelier.
{{< attachedFigure src="open-code-quest-clusters.png" >}}
Un autre défi que j'ai relevé pour l'Open Code Quest a été la création d'un Leaderboard destiné à favoriser l'émulation entre les participants. Ce projet m'a demandé de sortir des sentiers battus, car j'ai dû utiliser des outils tels que Prometheus et Grafana pour une tùche à laquelle ils ne sont pas destinés : départager les participants par ordre d'arrivée. En contournant les limites de ces technologies de monitoring, j'ai fait preuve de créativité pour concevoir un systÚme de classement en temps réel. Malgré la complexité technique, le résultat a dépassé nos attentes : le Leaderboard a stimulé la compétition (amicale) entre les participants, ajoutant une dimension dynamique et engageante à l'événement.
Pour nous, l'Open Code Quest a Ă©tĂ© bien plus quâun simple atelier. CâĂ©tait une journĂ©e oĂč experts et dĂ©butants ont pu Ă©changer, apprendre et sâamuser ensemble, tout en dĂ©couvrant des technologies utiles aux dĂ©veloppeurs et architectes. Que ce soit pour lâaccĂ©lĂ©ration du dĂ©veloppement avec Quarkus, la fluiditĂ© de l'expĂ©rience dĂ©veloppeur avec Red Hat Developer Hub, la gestion de la sĂ©curitĂ© de la supply chain avec Red Hat Trusted Application Pipelines ou l'utilisation de lâIA avec Quarkus, chaque outil a apportĂ© une valeur concrĂšte, dĂ©montrĂ©e au fil des exercices.
Nous avons Ă©galement eu l'occasion de crĂ©er un environnement propice au rĂ©seautage, oĂč les participants ont pu Ă©changer avec des experts et leurs pairs.
En tant que membre de l'Ă©quipe organisatrice, je suis extrĂȘmement fier du succĂšs de l'Open Code Quest. Ce workshop a montrĂ© que lâon peut allier apprentissage technique et divertissement dans un cadre immersif et stimulant. Nous remercions tous les participants pour leur engagement et leur enthousiasme, ainsi que nos partenaires pour leur soutien. Nous espĂ©rons vous revoir lors de nos prochains Ă©vĂ©nements pour continuer Ă explorer ensemble les innovations technologiques qui transforment notre monde.
Envie d'en savoir plus sur le Leaderboard ? Comment j'ai pris en compte les spécificités de Prometheus pour concevoir le Leaderboard ? Comment j'ai calibré les bonus et accélérateurs pour favoriser la compétition et l'émulation ?
Tout est expliqué dans ces deux articles :
- {{< internalLink path="/blog/behind-the-scenes-at-open-code-quest-how-i-designed-leaderboard/index.md" >}}
- {{< internalLink path="/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/index.md" >}}
Démo "Mission Impossible" : Lego, AI & Edge Computing
Une partie de la journée, j'étais sur le stand RHEL, accompagné de Adrien, Mourad et Pauline pour installer la démo "Mission Impossible" et répondre aux questions du public.
Cette dĂ©mo, nous l'avons conçue pour l'Ă©vĂ©nement {{< internalLink path="/speaking/platform-day-2024/index.md" >}} sur le thĂšme du dernier opus du film Mission Impossible: Dead Reckoning. Dans cette dĂ©mo, Ethan Hunt a besoin d'aide pour arrĂȘter le train Lego City #60337 avant qu'il ne soit trop tard ! Rien de moins que le sort de l'humanitĂ© est en jeu !
{{< attachedFigure src="mission-impossible-plot.png" >}}
Le scĂ©nario nĂ©cessite que Ethan Hunt monte Ă bord du train pour y connecter une carte Nvidia Jetson Orin Nano au rĂ©seau informatique du train et y dĂ©ploie une IA qui reconnaitra les panneaux de signalisation et arrĂȘtera le train Ă temps avant qu'il ne dĂ©raille ! Une console permettra d'avoir une vue dĂ©portĂ©e de la camĂ©ra de vidĂ©o surveillance du train, avec les rĂ©sultats de l'infĂ©rence du modĂšle d'IA incrustĂ©s.
{{< attachedFigure src="mission-impossible-scenario.png" >}}
Pour mettre en oeuvre cette démo, nous avons équipé le train Lego d'une carte Nvidia Jetson Orin Nano, d'une webcam et d'une batterie portable. La carte Nvidia Jetson Orin est un System On Chip (SoC), elle comprend tout le matériel dont Ethan Hunt a besoin pour sa mission : CPU, RAM, stockage... Ainsi qu'un un GPU pour accélérer les calculs ! Le Jetson reçoit le flux vidéo de la caméra embarquée et transmet les ordres au Hub Lego via le protocole Bluetooth Low Energy. Il est alimenté via une batterie portable pour la durée de la mission.
{{< attachedFigure src="rhel-booth-mission-impossible-demo.jpeg" >}}
Nous sommes dans un contexte de Edge Computing. Sur le Jetson, on a installĂ© Red Hat Device Edge. Câest une variante de Red Hat Enterprise Linux adaptĂ©e aux contraintes du Edge Computing. On y a installĂ© Microshift, le Kubernetes de Red Hat taillĂ©e pour le Edge. Et dans Microshift, on a dĂ©ployĂ© over-the-air les microservices, un broker MQTT et le modĂšle dâintelligence artificielle.
Le Jetson est reliĂ©, pour la durĂ©e de la mission, Ă un cluster OpenShift dans le cloud AWS via une connexion 5G. Dans le cloud AWS, on a une VM RHEL 9 qui nous permet de construire les images Red Hat Device Edge pour le SoC Jetson. Dans le cluster OpenShift, l'application application de vidĂ©o surveillance qui diffuse le flux vidĂ©o de la camĂ©ra embarquĂ©e du train. Le flux vidĂ©o est relayĂ© depuis le Jetson au travers dâun broker Kafka ! Il faut ajouter Ă cela des pipelines MLops pour entraĂźner le modĂšle dâIA. Et enfin des pipelines CI/CD pour construire les images de conteneur de nos micro-services pour les architectures x86 et ARM.
{{< attachedFigure src="mission-impossible-hardware-architecture.png" >}}
Pour permettre Ă Ethan Hunt de mener Ă bien sa mission, il a fallu garantir la transmission de la donnĂ©e de bout en bout. Pour cela, nous avons implĂ©mentĂ© cinq services qui communiquent via un systĂšme dâenvoi de messages asynchrone (MQTT).
Le premier service capture dix images par seconde Ă intervalle rĂ©gulier. Chaque image est redimensionnĂ©e en 600x400 pixels et encapsulĂ©e dans un Ă©vĂ©nement avec un identifiant unique. Cet Ă©vĂ©nement est transmis au modĂšle d'IA qui lâenrichit avec le rĂ©sultat de la prĂ©diction. Ce dernier est transmis Ă un service de transformation qui a pour rĂŽle d'extraire l'action du train, la transmettre au contrĂŽleur de train pour ralentir ou stopper le train et en parallĂšle envoyer l'Ă©vĂ©nement au service de streaming (Kafka) dĂ©ployĂ© sur un Openshift distant, qui affiche en temps rĂ©el, les images et la prĂ©diction.
{{< attachedFigure src="mission-impossible-software-architecture.png" >}}
Et enfin, il nous a fallu construire dâun modĂšle dâintelligence artificielle. Pour cela, nous avons suivi les bonnes pratiques pour gĂ©rer le cycle de vie du modĂšle, câest ce quâon appelle le MLOps :
- AcquĂ©rir la donnĂ©e : Nous avons utilisĂ© un jeu de donnĂ©e open source comprenant des donnĂ©es provenant dâune camĂ©ra embarquĂ© sur une voiture, qui ont Ă©tĂ© annotĂ©es avec les panneaux rencontrĂ©s sur son trajet. Les photos ont Ă©tĂ© prises sur des routes dans lâunion europĂ©enne et montrent donc des panneaux de signalisation "normalisĂ©s" (potentiellement un peu diffĂ©rents des panneaux Lego).
- DĂ©velopper un modĂšle dâIA : Nous avons choisi un algorithme dâapprentissage et procĂ©dĂ© Ă l'entraĂźnement du modĂšle sur un cluster OpenShift avec des GPU pour accĂ©lĂ©rer le calcul.
- DĂ©ployer le modĂšle : Nous avons dĂ©ployĂ© le modĂšle dans un serveur dâinfĂ©rence pour le consommer via des APIs. Il a fallu intĂ©grer le modĂšle Ă lâarchitecture logicielle (via MQTT).
- Mesurer les performances et rĂ©-entraĂźner : En observer le comportement du modĂšle, nous avons pu mesurer la qualitĂ© des prĂ©dictions et constater que tous les panneaux Lego n'Ă©tait pas bien reconnus. Nous avons pris la dĂ©cision de rĂ©entrainer le modĂšle en lâaffinant avec un jeu de donnĂ©es enrichi.
{{< attachedFigure src="mission-impossible-ai.png" >}}
Si vous n'avez pas pu venir nous voir sur le stand, je vous propose une session de rattrapage dans la vidĂ©o ci-dessous (capturĂ©e lors du {{< internalLink path="/speaking/platform-day-2024/index.md" >}}). On y voit le train s'arrĂȘter lorsqu'il dĂ©tecte le panneau de signalisation correspondant.
{{< embeddedVideo src="mission-impossible-demo.mp4" autoplay="true" loop="true" muted="true" width="1920" height="1080" >}}
Cette démonstration permet de démontrer la pertinence des solutions Red Hat pour mener à bien des projets informatique combinant Intelligence Artificielle et Edge Computing, et ce à large échelle.
Conclusion
Ă travers l'atelier Open Code Quest et la dĂ©monstration captivante du train Lego, les participants ont pu explorer des solutions innovantes pour le dĂ©veloppement dâapplications, l'Intelligence Artificielle, le Edge Computing et la sĂ©curitĂ© de la Supply Chain. Tout le travail autour de la plateforme ainsi que l'originalitĂ© du Leaderboard ont permis de dynamiser lâĂ©vĂ©nement, renforçant la compĂ©tition amicale entre les participants tout en leur offrant une expĂ©rience technique et humaine que l'on espĂšre inoubliable.
Pour moi, ce Red Hat Summit Connect a Ă©tĂ© l'occasion de mettre en valeur l'importance de technologies comme Quarkus et OpenShift, mais aussi de partager une aventure collective oĂč chaque participant a pu repartir avec de nouvelles compĂ©tences, de l'inspiration, et l'envie de continuer Ă explorer ces solutions. Nous espĂ©rons pouvoir continuer Ă faire Ă©voluer cet Ă©vĂ©nement pour offrir toujours plus de dĂ©fis et d'innovations aux communautĂ©s de dĂ©veloppeurs, architectes, et ingĂ©nieurs. Ă trĂšs bientĂŽt pour de nouvelles aventures technologiques !