Devoxx FR 2021 - Dans les 👟 de sega - Jour 1

Introduction - Dans mes 👟

Pour ce CR de la Devoxx, je parle en disant “je”, je donne mon ressenti Ă  moi, j’essaie de retranscrire l’ambiance
 De mon point de vue, l’intĂ©rĂȘt d’un article exhaustif et objectif est rĂ©duit : il aurait fallu que j’assiste Ă  6 crĂ©neaux * 5 tracks * 3 jours = 90 talks ! Alors asseyez-vous confortablement, et Ă©coutez mon histoire.

Imagine.

Nous sommes un jeudi matin de Septembre, je suis parti Ă  8h de chez moi, pour me frayer un chemin Ă  vĂ©lo jusqu’au Palais des CongrĂšs, dans le tumulte des klaxons parisiens.

Et surtout, il fait 10°C.

Une seule chose pouvait me donner l’énergie d’ĂȘtre lĂ , Ă  ce moment prĂ©cis : le retour de Devoxx France.

ApartĂ© - Devoxx, c’est quoi ?

Devoxx, c’est une confĂ©rence internationale, qui a lieu en Angleterre, en Ukraine, en Belgique, et donc Ă©galement en France. Elle parle historiquement de Java, et de bien d’autres sujets tech (Big Data, DevOps, IoT, Mobile, SĂ©curitĂ© 
) sous des formats Ă©galement variĂ©s (keynote, university, quickie, tools-in-action, confĂ©rence).

8h45, Ă  l’accueil, les visages des quelques motivĂ©s arrivĂ©s comme moi en avance sont fatiguĂ©s, et laissent transparaĂźtre la mĂȘme question.

“Ils sont oĂč les croissants ??“

Pas de croissants, mais bien les grands sourires des nombreux bénévoles déjà présents.

Ne me laissant pas abattre par l’abandon de l’idĂ©e d’un petit-dĂ©jeuner, je file en Amphi Bleu, tout au bout du 2Ăšme Ă©tage. L’objectif : avoir les meilleures places pour assister Ă  la Keynote.

💡 Keynote - Pourquoi l'Open Data ne dispense pas de quelques notions de statistiques par Guillaume Rozier et Sacha Guilhaumou

Description du talk - Lien du replay

Jeudi est déjà le second jour de Devoxx France. Néanmoins, ce Jeudi 30 Septembre à 9h30, ce sont bien les 826 places de l'Amphithéùtre Bleu qui sont remplies.

Pourquoi ? En apprendre un peu plus sur ce projet qui a bouleversĂ© la France durant la pĂ©riode COVID, et avec encore plus de force l’Open Data : covidtracker.fr

C’est tout devant, assis en plein milieu, que j’ai la chance de dĂ©couvrir l’intro musicale de l’équipe des “gilets rouges” de Devoxx, remix de “Je rĂȘvais d’un autre monde”. S’ensuit une prĂ©sentation des speakers relativement inutile pour Guillaume, mais qui nous permet de dĂ©couvrir Sacha, Ă©tudiant en pharmacie, et dĂ©veloppeur Python, parce que pourquoi pas.

Sacha et Guillaume nous parlent donnĂ©es, donc, mais sous le prisme de leur interprĂ©tation, pour changer ! L’Open Data est fortement dĂ©veloppĂ©e en France (cocorico), mais attention, son analyse peut parfois mener Ă  des interprĂ©tations biaisĂ©es, et donc fausses.

Je découvre grùce à eux le biais lié aux échelles, la différence entre corrélation et causalité, le théorÚme de Bayes, le biais de confirmation, le paradoxe de Simpson, ou encore le biais de faible effectif.

Des maths, mais fidĂšles Ă  eux-mĂȘmes, expliquĂ©s avec pĂ©dagogie et exemples gagnants.

🍿 ConfĂ©rence - L’intelligence artificielle au secours de l’accessibilitĂ© par AurĂ©lie Vache et Guillaume Laforge

Description du talk - Lien du replay

30 minutes de pause, suffisantes pour aller dire bonjour aux copains du stand Accenture (coucou Nick !), et pour récupérer des bonbons par-ci par-là.

Et aprĂšs m’ĂȘtre perdu dans les couloirs du Hall Paris et du Hall Neuilly, me voilĂ  en 252 pour assister Ă  la premiĂšre confĂ©rence.

AurĂ©lie dĂ©bute le talk par une introduction sur l’IA, traduite en direct en langage des signes par Guillaume. Le ton est donnĂ©, nous parlerons accessibilitĂ©.

Le joli t-shirt Google de Guillaume et leur disclaimer “nous sommes des devs” viennent Ă©galement confirmer que nous verrons aujourd’hui plus de pratique que de thĂ©orie sur l’Intelligence Artificielle.

Google donc, qui propose de nombreuses solutions sur-étagÚre, comme celles que Guillaume nous fait découvrir dans cette démo impressionnante de leur confection.

De son cĂŽtĂ©, AurĂ©lie nous apporte la vision utilisateurs, Ă  l’aide de cas d’usages intĂ©ressants et parfois surprenants.

L’Intelligence Artificielle apporte quatre outils pour aider les utilisateurs en situation de handicap, comme ceux pour qui ce n’est pas le cas (pensez rampe d’accùs, ça aide tout le monde !).

  1. Speech-to-Text : pour transcrire un fichier audio en texte
  2. Text-to-Speech : pour transcrire un texte en fichier audio
  3. Vision : pour décrire une image
  4. Translate : pour traduire un texte dans une autre langue

Les cas d’usages sont tous extrĂȘmement remarquables, mais certains me marquent plus que les autres :

  • Speech-to-Text : certains tĂ©lĂ©phones rĂ©cents (comme le Google Pixel) permettent de transcrire en live un appel tĂ©lĂ©phonique, Ă  l’aide de sous-titres.
  • Text-to-Speech : Numerama offre dĂ©sormais sur la plupart de ses articles la possibilitĂ© de l’écouter plutĂŽt que de le lire

AurĂ©lie nous partage ensuite les “couacs” des outils modernes. Cela peut ĂȘtre une “fancy font” sur un tweet qui empĂȘche sa lecture par un lecteur. Ou encore des appareils comme Alexa ou Siri qui reconnaissent plus facilement une voix d’homme plutĂŽt qu’une voix de femme bĂšgue (par exemple).
Des initiatives voient justement le jour pour contrer les biais de donnĂ©es : Common Voice (Mozilla), Project Euphonia (Google), SEP-28K (Apple), ou encore Voiceitt (Amazon). Le fait qu’AurĂ©lie nous prĂ©sente ces projets et les teste avec sa propre voix a un impact trĂšs fort.

đŸ„Ș  BBL - Full-remote : comment rĂ©ussir Ă  travailler en Ă©quipe ? par Lise Quesnel

Description du talk - Lien du replay - Lien des slides

Retour aux stands, pour dĂ©couvrir la file d’attente de 500 personnes qui attendent pour rĂ©cupĂ©rer leur panier repas. Pas le temps de traĂźner, je file en Amphi Maillot pour le BBL qui me donnait l’espoir d’enfin bien travailler en remote.

Devant un public de 350 personnes mĂąchant leur sandwich, Lise se prĂ©sente : dĂ©veloppeuse chez Zenika, sur le projet de l’état Pix.fr, elle tĂ©lĂ©travaille depuis Nantes, et ce depuis 2019. Hors, 2019 c’est l’an -1 avant COVID-19, nous avons donc affaire Ă  une pionniĂšre !

En 15 minutes, Lise arrive Ă  traiter les risques (solitude, flemme, Ă©quilibre pro/perso), et les clĂ©s (communication, confiance, qualitĂ© de l’environnement) classiques. Des choses simples comme dire Ă©crire bonjour (et au revoir !), faire du pair programming, se voir de temps en temps, avoir un bon matĂ©riel sonore ...

Mais la valeur du talk réside en deux autres points.

Le premier, c’est la pyramide de la communication que nous prĂ©sente Lise.

crédit : slide du talk (slides ici)

Le message derriĂšre cette image, c’est que monter dans la pyramide est un levier pour amĂ©liorer la communication : si un quiproquo ou un malentendu s’installe, il faut monter.

Cela paraĂźt Ă©vident, mais demande Ă  ĂȘtre attentif Ă  ceux-ci pour ne pas les laisser grandir.

Ce qui amùne au second point 



 qui est l’effort nĂ©cessaire pour bien tĂ©lĂ©travailler. Oui le tĂ©lĂ©travail c’est du travail, et souvent mĂȘme plus difficile, surtout au dĂ©but. Le conseil de Lise est donc “faites l’effort” : de communiquer, de se rendre disponible, de mettre en place un bon environnement de travail, de jouer le jeu en fait.

🎓 University - Build a photo sharing application with Google Cloud serverless technologies par Guillaume Laforge

Description du talk - Lien du replay - Lien du codelabs

Vite vite ! En courant, j’arrive avec 30 minutes de retard au second talk de Guillaume Laforge. Bien sĂ»r que 45 minutes n’étaient pas suffisantes pour un dĂ©jeuner au restaurant avec les copains de Vite Ma Dose ...

Heureusement, le format “UniversitĂ©â€ correspond Ă  un TP de 3 heures, sur une technologie spĂ©cifique. J’arrive donc au dĂ©but du second lab sur un total de six, et je me rassure en me disant que je pourrai rattraper le cours sur le codelabs de Google Cloud.

Pourquoi ce talk ? Parce que c’est un sujet que j’ai dĂ©jĂ  explorĂ© il y a deux ans, et je veux savoir oĂč en est Google Cloud dĂ©sormais.

En bon Developer Advocate et fier reprĂ©sentant de Google (attention, il sait aussi ĂȘtre critique parfois !), Guillaume fait du 100% Google Cloud durant ce talk.

Besoin d’un terminal avec les bons binaires ? Utilisons Google Cloud Shell !

Besoin d’un moteur de containers Docker et d’un registre d’images ? Utilisons Google Cloud Build et Google Container Registry !

L’application que nous produisons consiste en un site de partage de photos, qui analyse automatiquement celles-ci, entre autres traitements, tous serverless.

schĂ©ma d’architecture de notre application - source : codelabs

Cloud Functions

Le premier lab du cours a pour objectif d’analyser chaque nouvelle image ajoutĂ©e au bucket Cloud Storage, Ă  l’aide de Cloud Functions. C’est le cas d’usage classique du serverless, celui du Functions-as-a-Service (FaaS pour les pros), bien entendu.

C’est simple, on Ă©crit un bout de code en Node.js, qui rĂ©cupĂšre les metadata reçues en paramĂštre, et rĂ©alise un appel API Ă  Cloud Vision, pour tout dĂ©poser dans une base de donnĂ©es Cloud Firestore.

OĂč est-ce que ça tourne ? Comment j’assemble mon image Docker ? Comment j’expose ma mini-API ? On s’en fiche, c’est Google qui rĂ©gale. Simple, on a dit.

Attention par contre, je pense dĂ©jĂ  Ă  des inconvĂ©nients tout de mĂȘme, comme par exemple le fait de n’avoir du feedback sur son bout de code qu’une fois dĂ©ployé 

Cloud Run

Dùs le second lab, on a besoin de plus de performance, plus de compute. Bref, plus qu’un bout de code qui tourne dans un mini container de 256Mb, avec un timeout au bout d’une minute.

Ici, on fait du traitement d’images, et c’est plus gourmand qu’un ou deux appels APIs. On utilise donc le service de Container-as-a-Service (CaaS, oui vous l’avez maintenant) de Google Cloud. BasĂ© sur knative, l’outil est dĂ©sormais utilisable en production, avec une haute disponibilitĂ©, depuis dĂ©jĂ  deux ans.

Qu’avons-nous Ă  faire dĂ©sormais ? Toujours notre bout de code, et y ajouter un fichier Dockerfile qui dĂ©crit le contenu de l’image du container. Puis on mĂ©lange bien avec un gcloud run deploy, et c’est bon. Bon, ça demande un peu plus de travail, mais ça va.

App Engine

Finalement arrive le moment de faire un front pour l’application (ndlr, c’est dingue comme on nĂ©glige tout le temps le front
).

Guillaume a prĂ©vu une SPA en VueJS, parce qu’on est quand mĂȘme en 2021, et la dĂ©ploie Ă  l’aide d’App Engine.

Qu’est-ce ? Un PaaS, comme le sont Ă©galement Heroku, Scalingo, ou AWS Elastic Beanstalk. Et pour ceux qui ne connaissent pas le principe, c’est encore une fois trĂšs simple : tu lui donnes ton code, en prĂ©cisant le langage utilisĂ© (quoique parfois facultatif !), et le PaaS le fait tourner lui-mĂȘme.

App Engine possĂšde moins de fonctionnalitĂ©s qu’un PaaS spĂ©cialisĂ©, mais prĂ©sente l’avantage d’ĂȘtre serverless dans sa version standard. Ce qui signifie de maniĂšre pragmatique, aucun frais si aucun visiteur n’accĂšde au site.

Une commande plus tard, notre SPA est exposée au monde entier, en haute disponibilité.

🍿 ConfĂ©rence - Choreography vs Orchestration in serverless microservices par Guillaume Laforge

Description du talk - Lien du replay - Lien des slides

Complùtement amoureux du monsieur, j’enchaüne sur le dernier talk du “marathon Guillaume Laforge”. En plus, sans aucun remords, je l’assaille de questions à la fin de son university, ce qui fait que lui comme moi mangeons la maigre pause de 30 minutes.

Le premier exemple d’architecture est celui de tout bon noob des microservices : une succession d’appels Ă  des APIs REST enchaĂźnĂ©s. Dans ce cas-lĂ , chaque service devient un SPOF, et il y a un couplage Ă©vident.

Je retrouve ensuite le concept de chorĂ©graphie, relativement commun dans de nombreux projets informatiques modernes, et une solution extrĂȘmement efficace pour dĂ©coupler ses services.

Le premier service effectue sa tùche et publie un événement dans un message broker, et le suivant réagira à cet événement, pour effectuer sa tùche et publier un autre événement, et ainsi de suite.

Ça scale bien, mais il est difficile de monitorer le systĂšme dans sa globalitĂ©, et de savoir si tout notre processus mĂ©tier a fonctionnĂ©.

Finalement, je dĂ©couvre complĂštement le principe d’orchestration dans ce talk.

Alors oui, nos services sont indĂ©pendants, notre logique mĂ©tier est suivie de bout en bout, on fait du REST tout simple. MAIS. Nous avons un nouveau SPOF : l’orchestrator.

Alors que choisir ? Et bien, Guillaume me rĂ©pond avec un “ça dĂ©pend đŸ€·â€â™‚ïžâ€.

Dans tous les cas, pour l’outillage, nous sommes plus que servis sur la chorĂ©graphie : SQS/SNS, Pub/Sub, Kafka, RabbitMQ 


En revanche, pour l’orchestration, je ne connais rien Ă  part Apache Airflow
 jusqu’à ce que Guillaume me prĂ©sente Workflows.

L’outil semble trĂšs prometteur, dans l’éventualitĂ© oĂč on veut bien faire du 100% GCP. En tout cas, Guillaume m’a convaincu avec sa dĂ©mo, et avec le peu d’énergie qu’il lui restait Ă  ce moment-lĂ , cela en dit long sur les promesses de l’outil.

🛠 Tools-in-Action - Les phoques au secours des baleines - À la dĂ©couverte de Podman par Benjamin Vouillaume

Description du talk - Lien du replay

Tout comme le speaker du talk prĂ©cĂ©dent, mon Ă©nergie commence Ă  baisser. Alors, forcĂ©ment, lorsque le titre d’un talk parle d’animaux (et de devops), c’est celui-ci que je choisis.

Alors les baleines, ok c’est Docker, mais les phoques, je ne connais pas.

Pour introduire le sujet, Benjamin présente Podman : un concurrent de Docker, open source, en golang, poussé par Redhat.

J’ai instantanĂ©ment l’eau Ă  la bouche lorsqu’il nous dit que l’outil vise Ă  ĂȘtre prochainement disponible sur OS X et Windows 
 (Ă  l’inverse de Docker, qui devient payant sur ces systĂšmes).

NB : la rédaction a vérifié par la suite, Podman déclare sur le sujet

Podman presently only supports running containers on Linux. However, we are building a remote client which can run on Windows and macOS and manage Podman containers on a Linux system via the REST API using SSH tunneling.”

Puis, pour démarrer tranquillement, Benjamin nous fait une démonstration classique des fonctionnalités de Docker. docker build par-ci, docker run par-là.

Une fois celle-ci terminĂ©e, plot twist incroyable, il nous montre que sa machine n’a pas docker installĂ©, remplacĂ© par un subtil alias docker=”podman”...

On retrouve donc les mĂȘmes fonctionnalitĂ©s sur Podman que sur Docker, avec un CLI 100% compatible. Sur le comment, Podman s’appuie sur la spec OCI, et sur runc, son implĂ©mentation de rĂ©fĂ©rence.

Plus spĂ©cifiquement encore, Docker lance 3 services pour son moteur : dockerd, containerd et donc runc. De son cĂŽtĂ©, Podman n’a pas de daemon en arriĂšre plan. Il est plus performant, et expose une surface d’attaque plus restreinte que Docker.

Et dans un dernier Ă©clat de concentration, je retiens que Podman utilise buildah pour construire une image, et Ă©galement qu’un podman generate kube permet simplement de dĂ©ployer un pod avec son container.

Conclusion de la journée, et retour à la maison

A 18h, je me sens Ă©puisĂ©. Les talks sont tous extrĂȘmement intĂ©ressants, on est bousculĂ© dans ses idĂ©es, on a envie de tester plein de nouveaux outils.

Au bout de cette journĂ©e, j’ai l’impression d’en avoir vĂ©cu plusieurs.

Alors, je n’écoute pas la vicieuse culpabilitĂ© qui me rappelle qu’il reste encore un talk, je sors du Palais des CongrĂšs en traĂźnant les pieds et le sourire aux lĂšvres, et je rentre chez moi.

Sur mon vélo, je me promets une chose : je me suis assez fait plaisir avec des sujets devops sur ce premier jour, demain sera la journée des découvertes !

Mais demain, c’est un autre jour.