Notes Devoxx France 2024

Sommaire

Devoxx France, c'est LA conférence française pour les développeurs et l'écosystème IT. Ayant assisté à l'édition 2022 pour les 10 ans, je reviens cette fois en tant que speaker pour cette nouvelle édition. Vous trouverez mes quelques notes de l'événement, qui encore une fois est un événement à ne pas manquer !

On parlera comme d'habitude des conférences, de l'ambiance et mes notes tech ou moins tech. Bonne lecture !

Devoxx France 2024

Cette année, Devoxx France a vu les choses en grand : alors que les années précédentes la conférence se tenait sur 1 étage au Palais des Congrès, cette fois-ci les organisateurs ont osé rajouter 1 étage supplémentaire pour accueillir plus de monde et plus de conférences : jusqu'à 4500 personnes par jour, pour plus de 250 conférences, tout confondu.

Par rapport à 2022, je remarque 2 changements sur le programme :

  1. Il y a des deep-dive & hands-on lab tous les jours, mélangés aux autres conférences plus traditionnelles
  2. On a à chaque fois 30 minutes de pause entre les sujets, le temps d'aller d'une salle à l'autre, et c'est agréable de ne pas devoir courir entre les sessions.

Les hands-on & deep-dive étant plus compliqués à suivre en replay, j'ai alors privilégié d'aller voir ce format lorsque j'hésitais. Dur choix vu les conférences de qualité à côté. L'application mobile devoxx.com était disponible pour faire son agenda, savoir si les salles étaient pleines, et faire des feedbacks, application toujours utile dans ces moments-là !

Contrairement à la KubeCon, je n'ai pas eu de problème de "full room", et c'est plutôt agréable.

Attente de la keynote

Et comme dit en intro, cette année je donne moi-même une conférence, un "Tools-in-Action" sur 2 outils pour vous aider à dimensionner correctement vos déploiements sous Kubernetes. On y reviendra 😉

Les keynotes

Chaque jour, la journée commence avec 2 keynotes, toujours présentées par Arnaud Héritier et Katia Aresti, qui savent mettre le public de bonne humeur !

Malheureusement, je n'ai pu assister à celle du mercredi, étant dans les transports pour venir, mais je n'ai pas loupé les 2 autres.

Le jeudi, Mark Red a d'abord fait le tour de quelques "erreurs" de programmation qui ont pu engendrer des problèmes plus graves qu'un simple core dump, le tout traité avec beaucoup d'humour ! Ensuite, rien à voir avec les bugs, Agnès Crepet et Guillaume Pitron nous ont parlé surtout de l'Indium, présent dans tous les écrans tactiles, enfin c'est ce que j'en retiens 😉

Vendredi, j'ai suivi avec un peu plus d'attention Anatole Chouard qui présentait le rapport Meadows, puis Guillaume Poupard qui nous a parlé de cybersécurité, avec beaucoup d'auto-dérision. Cette dernière est sûrement celle que j'ai préférée !

Les conférences du mercredi

C'est maintenant parti pour le marathon des confs ! je ne présente les notes que celles auxquelles j'ai assistées, cela ne se veut pas un listing des meilleures confs de l'événement, il y a eu en avoir des beaucoup mieux !

Datacenter-as-Code : les arcanes de notre build system omniscient basé sur Nix

On commence par une conférence sur Nix, outil que je suis de près mais dont je n'ai jamais eu d'occasion de mettre en place en "production".

Nicolas Bernard & Xavier Maillard de chez S3ns nous présentent donc Nix, et comment ils l'utilisent pour leur infrastructure.

Après une présentation générale, on apprend comment Nix leur est utile pour construire un système consistant, reproductible & co (ce que tout le monde connait de Nix). Mais le plus intéressant, c'est d'avoir un arbre de dépendance complet de dépendance entre tous les éléments de l'infrastructure : dépôts d'artefacts, sources, etc. Et donc de pouvoir mieux "visualiser" les composants d'infrastructure que l'on souhaite gérer.

Les démos très visuelles avec le suivi des dépendances permettent de mieux comprendre l'intérêt de l'outil.

Datacenter-as-Code : les arcanes de notre build system omniscient basé sur Nix

Le SQL pour les nerds

Même si SQL n'est pas ma tasse de thé, il est toujours bien de voir des sujets avec lesquels on n'est pas le plus à l'aise. Laetitia Avrot nous présente alors comment elle a essayé de résoudre l'Advent Of Code avec seulement du SQL, avec son SGBD favori PostgreSQL, sans extensions. SQL étant un langage Turing-complet, on peut l'utiliser pour ce challenge !

Comme outil, tout sera fait avec psql, parce que c'est simplement le meilleur (autocomplete, historique, aide).

Laetitia nous fait un bilan de ce qu'elle a appris, ce qu'elle en retient (et ce que j'ai noté 😉) :

  • L'advent of code est à faire pour s'amuser. Si vous voulez apprendre à coder avec, ce n'est pas forcément le plus simple, car les exercices deviennent vite complexes (problème d'algo et pas de langage)
  • L'exercice lui a permis par contre de découvrir des fonctionnalités SQL qu'elle n'utilisait pas
  • Pas mal de soucis de performance rencontrés, ne pas hésiter à utiliser les nombreux data types dispo ((données géométriques de type points, polygones, etc).

Elle en profite pour nous donner quelques tips sur la construction de requêtes SQL : création d'indices partiels (create index where), génération de séries et colonnes, Common Table Expressions. Je la crois sur paroles 😉.

Le SQL pour les nerds

On peut retrouver le code des exercices sur son dépôt git.

Session instructive, qui confirme que je ne suis pas un DBA 😁.

Quality & Security Gate dans nos chaines CI⚡CD

L'équipe de "CATS" (pour Crédit Agricole Technologies & Services) nous font un REX sur la mise en place de "gates" de sécurité dans leurs pipelines de CI/CD, pour délivrer du code de plus en plus sûr.

On retrouve une chaine d'intégration assez standard, du GitLab, Sonarqube, Artifactory, Helm & ArgoCD pour déployer sur des clusters Kubernetes.

Pour aider les développeurs, on note 3 niveaux de maturité des applications (environnements): scratch, staging, stable

  1. En scratch : aller le plus vite possible. Jobs en parallèle pour limiter le temps de build.
  2. En staging : cas d'une release : sur création de tag. Même workflow que scratch, mais avec un tag.
  3. En stable : pour la MEP. déclenchement sur une MR.

Les analyses de sécurité se font sur 2 axes :

  1. SCA : Software Composition Analysis : gestion des dépendances (avec JFrog XRay)
  2. SAST : code vulnérable ? (avec Sonarqube)

Au-delà des outils, le rex se fait surtout sur l'activation au fur et à mesure des "gates", sans bloquer les devs. Toujours une histoire d'accompagnement, et de compromis : où positionner le blocage ? Au plus tôt dans la CI ? Avant la CD ?

Quality et Security Gate dans nos chaines CI⚡CD

Ce que je note d'intéressant, c'est que les checks se font au fur et à mesure, avec des "tampons"" tout au long du process d'intégration.

Au niveau de la CD, on ne fait "que" vérifier si l'ensemble des "tampons" des gates est OK.

Michelin(e), 120 ans, est passée à l'IaC

Michelin est un client de ma société, et je les ai découverts lors de projets SRE & Observabilité, et j'ai été bluffé par l'équipe tech, leur maturité & leur humilité. Je me devais d'aller voir ce talk.

Jouant un jeu de ping-pong, Guillaume Hospital et Adrien Gooris nous présentent comment les équipes ont évolués sur la gestion de l'infra, périple que nombreuses sociétés ont vécu avec plus ou moins de succès.

On démarre avec les fameux tickets pour créer des environnements jamais ISO, la mise en place d'outils & de process, migration vers le cloud, pour terminer sur du platform engineering & portail self service. Belle histoire racontée avec les challenges, les succès & échecs. Un rex toujours intéressant !

Michelin(e), 120 ans, est passée à l'IaC

Les équipes distribuées, ça peut marcher?

On change des REX techniques, un sujet plutôt organisationnel cette fois !

Bertrand Delacretaz, fait un tour d'horizon des solutions pour travailler facilement avec des équipes distribuées. Ayant été longtemps dans la fondation Apache, il nous donne pas mal d'exemples.

On commence d'abord par ce qui fait mal : le temps perdu, en réunion (souvent peu productives) coûtent cher et doivent être "précieuses", le 'maker schedule' vs le 'manager schedule' (un artisan qui colle une chaise ne peut être interrompu, sinon il doit tout refaire - le dev c'est presque pareil).

Il propose alors plusieurs solutions pour éviter des réunions inutiles, j'en ai noté 2 :

  • les décisions asynchrones : on discute en asynchrone avant, on prépare & on choisit. On ne se réunit que pour valider la décision.
  • on utilise un canal partagé pour échanger / annoncer les décisions

Bien sûr, il faut des outils : avant, la Mailing List était très pratique, si bien utilisée. Maintenant on utilise surtout des issues / tickets. Attention néanmoins au contenu des messages :

  1. Soyez clair dans le message. On écrit pour un public, pas pour soi.
  2. Attention à la lecture multi niveaux & différence de niveau de langage : soyez concis.
  3. Exprimez vos intentions, plutôt que de demander l'autorisation (exemple des Merges Requests)

Enfin, il parle du "problème" de la multi-culture : Utilisez un langage simple, phrases courtes, pour éviter les confusions et effets de style. Partez du principe que l'interlocuteur a été bienveillant.

Tout cela reste du bon sens, mais c'est toujours bien de le rappeler !

Les équipes distribuées, ça peut marcher?

(Neo)Vim en 2024

Premier "Tools-In-Action" de cette année ! Utilisateur de vim, et aussi vscode quand j'ai la flemme, je me dis toujours que je devrais prendre le temps de basculer sur NeoVim. Justement une session dessus, c'est l'occasion !

Swann Castel nous présente alors l'outil, et ses différences avec Vim. On notera le support natif des LSP (Language Server Support), les plugins manager comme "Lazy", Treesitter et autres plugins (telescope).

Il nous confie qu'avoir une configuration NeoVim peut prendre du temps, mais qu'il existe des solutions prêtes à l'emploi (lazyvim, astronvim).

Même si je comprends l'intérêt de l'outil, je reste un peu sur ma faim, ayant eu un peu de mal à voir la vraie plus-value par rapport à ce que j'utilise aujourd'hui. Il faut vraiment que je passe un peu de temps sur un setup !

Dimensionnez correctement vos déploiements Kubernetes

Dernier slot de la journée de mercredi, c'est à mon tour !!

Je présente 2 outils pour aider les devs à dimensionner leur déploiement sur Kubernetes (requests & limits).

Pour la dernière conf de la journée, la salle est pleine, le public réceptif et les démos se déroulent sans accrocs !

Très satisfait de la présentation et de l'accueil du "public", bons feedbacks après la conf et tout le reste de l'événement, ça rebooste !!

Pour celles & ceux ayant manqué, ma présentation est disponible ici.

Note : j'ai bien galéré pour le CSS des slides (oui c'est du HTML grâce à Marp !).

Les conférences du jeudi

la première journée était bien remplie, cette seconde le sera un peu moins, j'assiste a des sessions plus longues 😉.

GatewayAPI, 10 ans de maturation pour une nouvelle API Kubernetes

Kevin Davin de chez Gradle présente la nouvelle API disponible dans kubernetes, "Gateway API", qui permet de résoudre certaines limitations que nous pouvons avoir les ressources Ingress.

Les ingress ne sont apparus dans Kubernetes que depuis la version 1.10, et sont pensés HTTP first. Avec l'utilisation de gRPC et des flux plus classiques en TCP, la gestion des certificats TLS and co, l'ingress se voit limité. On a aujourd'hui 22 Ingress Controlers avec des implémentations différentes, ça devient compliqué d'avoir quelque chose de commun.

La Gateway API est alors définie comme spécification pour prendre le problème dans son intégralité, avec 4 concepts :

  • Orienté par rôle
  • Portabilité : guide pour implémenter la spec
  • Extensibilité : pas de CRD DANS k8s, donc possible d'installer sur n'importe quelle version de k8s
  • Expressif : HTTPRoute, TCPRoute, etc.. On sait quel protocole c'est

On a donc plusieurs ressources, qui seront utilisées par un public différent (administrateur infra, sécu, développeur) :

  • GatewayClass : Plusieurs définitions en fonction de l'usage : mono/multicluster par exemple.
  • Gateway : instancie une GatewayClass. Chaque gateway peut créer un LB, car défini dans la GatewayClass. Expose les ports à l'extérieur. Gérées plutôt par les Ops.
  • Routes : Possibilité de s'accrocher à plusieurs gateways, par ex 2 url interne/externe, avec filtres & co. Gérées plutôt par les Devs.

On notera des fonctionnalités avancées comme la règle sur les PATHs, ler verbes (GET, PUT), les headers, la possibilité de faire du mirroring de flux (RequestMirror), spltting (canary release).

GatewayAPI, 10 ans de maturation pour une nouvelle API Kubernetes

Conférence super intéressante donnant un aperçu complet de la spec et son utilisation. Je crois une de mes sessions préférées !

Au cœur de la ruche eBPF!

Allez un peu de réseau et sécurité avec eBPF ! On commence à connaître la techno avec les équipes d'Isovalent et leur CNI Cilium, mais je voulais avoir une présentation moins biaisée, ici fait par Mohammed Aboullaite de chez Spotify.

Mohammed donne une présentation claire et assez simple (et en français !) de la technologie, avec des démos pour appuyer ses exemples. Le code présenté était en Python, avec des librairies qui vont bien pour appeler du code eBPF. Côté Java, à noter le projet "panama".

Au cœur de la ruche eBPF!

J'ai noté quelques remarques intéressantes :

  • "eBPF, tout le monde en parle, mais peu développent avec"
  • "eBPF pour le kernel, c'est comme Javascript pour le browser"

Pulumi, ou comment gérer votre infrastructure avec votre langage préféré

Un deep dive de 3 heures sur Pulumi, présenté par le trio Julien Briault, Idriss Neumann et Alexis Fala, il fallait voir cela ! La techno m'intéresse, et je voulais voir comment cela pouvait être mis en pratique "en vrai", avec les limites que cela peut avoir.

On commence par une introduction à l'IaC, au DevOps, et le besoin d'avoir des outils comme Ansible, Terraform pour industrialiser le déploiement d'infrastructure.

Pulumi est arrivé en 2019, avec une approche orienté développeur, qui permet de coder son infra avec le langage de son choix, avec sa puissance (boucles, conditions, héritage, intégration avec d'autres libs, etc.).

Après une comparaison avec Terraform et ses limites, l'équipe de speaker nous fera quelques démos, pour enfin arriver à un cas d'usage très concret sur la plateforme d'Idriss, Comwork Cloud.

Pulumi, ou comment gérer votre infrastructure avec votre langage préféréumi

Les 3 heures sont vite passées, les explications claires et argumentées (pas mal de questions, des réponses pertinentes). 2 remarques mineures, la pause est arrivée très tard, et Idriss n'a pas été assez clair sur la transition Pulumi & sa plateforme, certains ont pu perdre le fil (on en a discuté après, un oubli dû au stress !).

Maintenant, vais-je l'utiliser ? Pas sûr, je suis très typé "infra", j'ai encore du mal à me dire qu'il faut coder pour déployer de l'infra. À suivre...

Orchestrer ses workflows métiers avec Temporal

Après 3 heures d'infra as code, quoi de mieux que de l'orchestration de workflows as code ??

Et bien c'est fait avec Nathan Castelein de chez Shodo qui nous présente Temporal.

Présentation originale du concept en faisant l'analogie d'une chanson de Miley Cyrus (déso mais on n'a pas du tout les mêmes goûts musicaux).

Après une définition des concepts de workflows et orchestrateurs, on parle de Temporal : orchestrateur de workflows créé par Uber en 2020, avec de gros contributeurs comme Datadog, Strip, OVHCloud, Hashicorp.

Temporal introduit 4 concepts :

  • Workflows
  • Activities
  • Retry Policies
  • Workers

Quelques notes brutes :

  • Les workflows sont "as code", peuvent être développés en go, mais pas que.
  • Si une activité se termine bien 1 fois, elle n'est jamais ré-exécutée
  • Au final, du code avec un peu de "sucre" autour pour gérer la robustesse des workflows.

Orchestrer ses workflows métiers avec Temporal

Créer un meetup ? mais quelle drôle d'idée !

Dernier meeting de la journée, un BOF avec l'équipe de TADx sur comment créer un meetup et le gérer.

Cet échange était plutôt là pour savoir comment chacun gérer les meetups, la plupart des gens présents étant organisateurs (moi-même ayant rejoint l'équipe d'orga du meetup DevOps Aix-Marseille).

Au travers d'un jeu de questions réponses, ont été abordés divers thèmes comme les sujets de meetups, leur fréquence, les lieux, le financement, tech ou pas tech, du sponsoring d'entreprises, etc.

Je note pour moi surtout la création d'asso qui peut éviter des problèmes d'assurance.

Échanges bon enfant, avec des avis divers et toujours constructifs (promis un jour je viendrai à TADx !) !

Les conférences du vendredi

Dernière journée, et ce n'est pas encore fini ! Comme jeudi, je vais privilégier des longues sessions, désolé pour les autres !

Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes

Après les keynotes, on démarre la journée avec Katia Himeur pour 2 heures de workshops sur du Serverless.

Une rapide introduction sur ce qu'est le serverless, Katia nous présente l'outil Openfaas, comment l'utiliser, ses atouts & limites.

C'est un lab, donc on enchaine les exercices :

  • installation d'openfaas
  • création d'une première fonction en python
  • déploiement d'une 'stack'
  • exploration d'openfaas avec la gestion des substitutions, des secrets, etc.
  • utilisation avec du message queuing RabbitMQ pour déclencher des fonctions

Serverless : Éviter le vendor locking en construisant sa propre plateforme FaaS avec OpenFaaS et Kubernetes

Alors, accrochez-vous, un workshop avec Katia ça va viiite, il faut suivre ! Sujet intéressant, mais on a pu voir quelques limites à openfaas, la prochaine fois on regardera SlimFaas !

Vous retrouverez les exercices du lab ici (Attention, certains exercices ne passent que sur Mac, à cause des images docker arm).

Des silos au Platform Engineering en passant par le DevOps : adopter GitOps et aller au-delà de l’hype

Encore un deep-dive de 3 heures pour parler DevOps, GitOps & Platform Engineering... J'avoue que j'ai hésité, mais Horacio González m'a fortement suggéré de venir... Et je n'ai pas été déçu !

Le duo retrace avec humour et auto-dérision les différentes périodes des Mises en Production, du fichier à télécharger en FTP sur un serveur jusqu'à ce qu'il se fait aujourd'hui, personne n'est épargné : les devs, les ops, les devops, les agilistes. Bref on se régale à les écouter et on se retrouve forcément dans un des personnages qu'ils décrivent.

Après de longues tirades que je n'oublierai pas ("Kubernetes c'est comme le stagiaire"), on aborde les sujets d'opérateurs kubernetes comme bon pattern pour le Platform Engineering, et Sébastien Blanc terminera la session par une démo de ce qui se fait aujourd'hui en termes de déploiement, à base d'ArgoCD et de Kratix

Et, cerise sur le gâteau, je suis un peu leur fil conducteur dans leur présentation avec une phrase maintenant devenue culte (au moins pour moi) : "Bash will still be used".

Bash will still be used

Tout ce que vous avez toujours voulu savoir sur les CNI (Container Network Interface) dans Kubernetes

Après autant de workshops & deep-dive, vous pensiez que j'allais m'arrêter là ? Et bien non, encore un tools-in-action à voir avc Mickael Roger qui nous explique comment ça marche une CNI !

Cette session n'est pas une présentation des diverses CNI (Calico, Cilium, etc.), mais vraiment une explication de comment ça fonctionne, "en vrai".

la présentation est didactique, avec un pas à pas de ce qu'il se passe sur vos nodes lorsqu'un pod démarre.

Bon, j'avoue il commençait à être tard, je devrais regarder la session en replay, et dommage que Mickaël se soit un peu emmêler les pinceaux sur une démo (lui aussi devait être fatigué :)).

Tout ce que vous avez toujours voulu savoir sur les CNI (Container Network Interface) dans Kubernetes

Les "à-coté"

Biensûr, DevoxxFR ce n'est pas "que" des conférences, ce sont aussi des stands de partenaires, du networking, des discussions, des verres & des goodies !

Côté stand, j'ai passé pas mal de temps avec les copains de R2Devops, discuté avec les gens d'OVHCloud, S3ns, Clever Cloud, Michelin, et évidemment l'équipe d'Accenture Clermont-Ferrand qui était là en force. Il faudra que je me motive pour les prochains événements d'aller voir les sociétés que je connais moins bien...

Le jeudi, c'est Meet & Greet en plus des "BOF", et j'ai eu le plaisir de rencontrer IRL certaines personnes avec qui j'échange sur les réseaux (coucou Mazlum 😙), squatter un peu sur le stand de S3ns avec les clones de Guilhem 🧥 et leur tireuse 🍻. Je ne peux pas nommer tout le monde, ce post est déjà bien trop long 😁.

Enfin, j'ai découvert le Canadian Embassy Pub, passage obligé après la conférence, où l'on débriefe jusque tard dans la soirée (coucou Steven & Laurent 😇) !

Bilan

Encore 3 jours très enrichissants, tant au niveau technique qu'humain !

D'un côté, j'aime toujours découvrir de nouveaux sujets, ou confronter mes avis / expériences pour découvrir de nouveaux usages, des solutions ou alternatives à des problèmes que j'ai pu rencontrer. En tant que speaker, c'est aussi l'occasion de transmettre mon expérience à celles & ceux qui viennent. C'est donc gagnant-gagnant.

D'un autre côté, c'est un booster niveau relations sociales, on rencontre de nouvelles têtes, on croise des habitués, des collègues (anciens, nouveaux, futurs), et lorsqu'on est en full télétravail comme moi c'est toujours agréable de discuter "IRL" avec nos pairs.

Bilan donc très positif, à refaire très probablement !

Stands DevoxxFR vides

D'autres en parle...

Voici ci-après d'autres articles de blog sur l'événement, n'hésitez pas à me contacter pour rajouter le vôtre !