post-thumb

Breizhcamp 2022

Introduction

Du 29 juin au 1er juillet 2022 a eu lieu la dixième édition de Breizhcamp. Cette conférence a réuni l’écosystème breton pendant trois jours.

BreizhCamp se présente comme « la conférence à l’Ouest ». Si c’est indéniable sur le plan géographique, sur le fond, c’est au contraire une conférence résolument pragmatique « par les tech et pour les tech » qui reflète bien les enjeux du moment.

Breizhcamp logo

Nous avons particulièrement apprécié son contenu qui était principalement basé sur des retours d’expérience. Mis à part la keynote d’ouverture qui parlait de la diversité dans notre profession ainsi que l’évolution de l’implication des femmes au fil des ans, le contenu était très technique.

Worldline était présent à double titre :

  • en tant que sponsor de l’évènement grâce à nos collègues de Rennes qui sont historiquement attachés à l’événement,
  • en tant que conférenciers puisque nous avons eu la chance d’être sélectionnés lors du Call For Paper.

Nous vous proposons donc un retour sur cette expérience bretonne.

Keynote

L’inclusivité numérique était le sujet de la keynote d’ouverture. Les deux présentateurs Arthur Tarroux et Mélissa Cottin ont décrit l’évolution de la proportion homme/femme depuis les années 60. Au début, la proportion de femmes dans l’industrie était plus importante. Près de la moitié étaient des femmes. C’est difficile à croire aujourd’hui. En effet, c’était un travail qui n’était pas considéré comme “prestigieux” et perçu comme peu professionnalisé. Bref, l’informatique avait alors une image négative.

A partir des années 80, la profession est montée en prestige. Les hommes ont par conséquent investi la filière. Cela s’est encore accentué avec l’apparition de l’ordinateur personnel et d’Internet.

Les enjeux actuels sont multiples. Au delà de la présence féminine dans notre profession, la reproduction de biais dans l’ intelligence artificielle est aussi un soucis.

Les solutions proposées par les présentateurs sont deux types : collectives et individuelles.

Pour les solutions collectives, j’ai pu noter la production de données non genrées, développer une culture commune et de s’appuyer sur des lois et actions.

Enfin en ce qui concerne les solutions individuelles, j’ai noté le fait de libérer la parole, et de faire attention à l’humour et notamment les blagues qui peuvent être discriminantes.

Kubernetes pour les développeurs

Lors de cette présentation, Erwann Thebault nous a présenté comment il développait des applications pour Kubernetes et quels sont les outils qu’il utilise au quotidien. J’ai bien aimé cette conférence. Elle a permis de faire un tour d’horizon des différents outils qui peuvent être utiles aux développeurs tels que K9S ou SKAFFOLD .

Il a notamment fait un tour d’horizon des solutions qui permettent d’exécuter Kubernetes sur son poste de travail:

Et si on faisait le tour de CORS ?

Cédric Gatay a présenté dans ce Back to Basics l’un des grands chauchemards des développeurs Web : le CORS .

Après avoir abordé les différentes notions autour de la “Same Origin Policy” , Cédric nous a présenté les impacts sur la gestion du cache, comment expliciter une requête crossorigin dans les balises HTML telles que img ou script.

Ensuite on a exploré la Content Security Policy .

Bref, je recommande ce talk à toutes celles et ceux qui développent des applications web et qui “luttent” à un moment donné avec le CORS.

Spécifier ses API asynchrones avec AsyncAPI

Cette présentation était très intéressante. On parle souvent d’OpenAPI pour les APIs REST. Mais qu’en est-il pour les services asynchrones ? Le besoin de spécifier les données et queues/topics/adresses est tout aussi important.

Sébastien Lecacheur a présenté la spécification AsyncAPI qui est basé sur OpenAPI . Cette spécification permet de concevoir des services basés sur JMS, Kafka, RabbitMQ, Websocket ou Server Send event. Les messages décrits peuvent être soient sous la forme JSON ou AVRO.

Aussi, j’ai pu apprécier la démonstration du studio AsyncAPI ainsi que les fonctionnalités de génération de code et de mocks.

Micronaut AOT

En tant que passionné de frameworks Java, j’avais entendu parler de Micronaut sans avoir pris le temps de vraiment m’y intéresser. Cette présentation était donc l’occasion de faire un premier pas.

Pour faire simple, Micronaut est une une solution moderne pour développer des applications Java cloud-natives et micro-services. Il offre des caractéristiques similaires à SpringBoot et Quarkus :

  • facilité et rapidité de développement
  • configuration simplifiée, centralisée et extensible
  • optimisation des temps de démarrage et de chauffe
  • empreinte mémoire réduite
  • exécution en mode JVM classique et natif via GraalVM

Micronaut est sorti en 2018, un an avant Quarkus, à l’initiative de Greame Rocher fondateur de Ruby on Rails. Une belle référence … Sa proximité avec GraalVM est soulignée par le fait qu’Oracle est sponsor de la fondation Micronaut qui porte ce projet OpenSource. D’ailleurs la présentation était assurée par Cédric Champeau de Oracle Labs.

En fait la présentation ne portait pas sur Micronaut en général mais sur son extension AOT (Ahead of Time Compiler) qui permet d’optimiser (encore plus !) l’exécutable produit (jar ou binaire natif). Le principe consiste à précalculer lors du packaging de l’application des informations qui sont normalement connues au runtime (analyse dynamique).

Par exemple :

  • convertir les fichiers de configuration yaml en configuration Java, évitant ainsi de parser des fichiers au démarrage de l’application
  • remplacer la sérialisation Jackson par celle de Micronaut beaucoup plus rapide
  • optimiser le chargement des classes via le service loader : très lent car se fait en mode serial
  • cacher les variables d’environnement dont la lecture met en oeuvre de coûteux locking
  • éviter les Class.forName, souvent utilisés par les frameworks, qui s’avèrent très lourds du fait des stack traces générées
  • récupérer le schéma openid très couteux sur la première requête.

Bref, l’enjeu est de grignoter les précieuses milisecondes au démarrage qui vont faire la différence en poduction pour les traitements micro-services et serverless.

Cette présentation a été l’occasion de rencontrer Cédric Champeau qui est fort abordable et sympathique. Vous pouvez le suivre sur Twitter (@CedricChampeau) où il partage par ailleurs ses magnifiques photos d’astronomie. Cédric nous a honoré de sa présence à notre présentation « Java dans le cloud». Merci à lui pour son attention bienveillante.

Infrastructure as code : hell or heaven?

Guillaume Tinon et Victor Clogenson nous ont partagé un retour d’expérience sur leur pratique de l’Infrastructure as Code (IaC). Pour faire simple, l’IaC consiste à gérer son infrastructure sous forme de code (qui décrit l’état souhaité de l’infrastructure) en réutilisant les méthodes et les outils de développement classiques, notamment la gestion de version Git. En théorie, cette pratique apporte une grande rigueur en terme de traçabilité des changements, de test et de reproductibilité. Mais la promesse est-elle bien au rendez-vous ? C’était justement le sujet de cette présentation …

En l’occurrence Guillaume et Victor nous ont expliqué comment ils en en sont arrivés à l’IaC :

  • Ils sont d’abord déployé « à la main » leur SI sur AWS en Europe,
  • Face au besoin de répliquer ce SI en Asie, ils ont décidé de mettre en œuvre l’IaC sur la base de la solution AWS Cloud Development Kit , en privilégiant ainsi l’efficacité au détriment de la portabilité. Le travail a été laborieux car il a fallu repartir d’une infrastructure complexe gérée à la main depuis son origine. Comme souvent en informatique, l’enfer est dans les détails ! Par ailleurs même en restant dans l’écosystème AWS, certaines ressources ne sont pas prises en compte. Ils ont clairement sous-estimé l’effort de migration et galéré pour respecter les délais clients,
  • Quelques mois plus tard, il a fallu refaire l’exercice pour les Etats Unis. Qu’à cela ne tienne, l’effort a déjà été fait ! Cette fois, ça va aller vite … Et bien pas tant que ça ! Il y a encore eu des surprises notamment sur des aspects mal documentés.

Bilan des courses : est-ce que ça vaut le coup l’IaC ? Dans leur cas, oui. Clairement l’investissement s’est avéré rentable malgré les difficultés. En revanche, ils ne recommandent pas l’effort de l’IaC sur un projet tout neuf et encore incertain ou un Proof of Concept.

Guillaume et Victor ont su rendre leur expérience tout à fait intéressante à travers cette présentation. On sent qu’ils ont vraiment vécu les choses à fond, ce genre de témoignage est très appréciable !

Et les speakers Worldline?

Nous étions présents pour présenter deux conférences:

  • Jean-François JAMES : “Architecture microservice et cohérence des données : mais on fait comment pour de vrai ?”. Découper les monolithes en micro-services c’est bien, assurer la cohérence des données c’est mieux ! Cette présentation décrit comment répondre à cette probmématique à travers 2 technologies : la spécification MicroProfile Long Runing Action d’une part et les SAGA avec les framework Eventuate d’autre part,
  • Jean-François JAMES & Alexandre TOURET : “Java dans le cloud : Avec Spring ou Quarkus ?”. Spring a longtemps regné maître incontesté au sein des frameworks Java en mettant au premier plan l’expérience dévéloppeur. Depuis 3 ans, un challenger “Supersonic et Subatomic” est apparu : Quarkus. Cette présentation propose une comparaison objective : ce qui les rapproche, ce qui les distingue et comment choisir dans votre contexte projet.

{% include gallery id=“gallerySpringQuarkus” caption=“Java dans le cloud : Avec Spring ou Quarkus ?” %}