Présentations
Keynote
JUG Summer Camp Team & guest Keynote / Keynote / beginner 09:30 - 10:00 Salle Casoar Tadorne
J'ai déployé mes apps sur Minikube... maintenant je fais quoi ?
Horacio Gonzalez (LostInBrittany) Conférence / DevOps / beginner 10:00 - 11:00 Salle Chanchardon
Ces derniers mois Kubernetes est partout, en terme de buzz word on peut difficilement faire mieux. Et comme souvent lorsqu'un sujet est si populaire, vous avez des tutoriels, billets de blog et talks par milliers, expliquant comment bien démarrer sur Kubernetes. Tout va donc bien dans le meilleur des mondes, non ?
Et bien non, pour être honnête. Car l'immense majorité de ces tutoriels, articles et talks s'arrêtent juste après le Hello Kube, lorsque vous avez quelques applications tournant sur votre MiniKube sur le laptop. Et là, c'est pas la fin, mais à peine le principe…
Dans ce talk je vais parler de cet écart entre MiniKube et une infra de production, de l'intérêt des infrastructures Kubernetes managées, des pièges et du vendor locking, de comment arriver à faire assez confiance dans sa solution pour faire tourner du Kubernetes sur Kubernetes et d'autres sujets de ce type.
React en 2019
Benjamin Cavy Yvonnick Frin Conférence / Web / intermediate 10:00 - 11:00 Salle Casoar Tadorne
React 16 a apporté son lot de nouveautés mais a aussi préparé le terrain pour des changements plus importants comme la refonte du cycle de vie des composants. Sans parler des annonces faites récemment à propos de Suspense… Vous l’aurez compris le monde React bouge beaucoup en ce moment. Il est temps de faire le point.
Ensemble, parcourons les nouveautés comme la Context API, la gestion des références, lazy et memo mais aussi les propositions encore à l’écriture comme l’API Hooks ou Suspense. Nous présenterons ces concepts au travers d’explications théoriques appliquées à la migration d’une application React 15.
Créons notre première API avec NestJS
Aurélien Loyer Emmanuel Demey Lab / Web / beginner 10:00 - 13:00 Hall de l'espace Encan
Depuis le temps que vous allez à des conférences, vous avez sûrement participé à des codelabs JavaScript essentiellement sur vos framework frontend.
Depuis peu, un nouveau framework sort du lot, et c’est un framework backend : NestJS.
Simple à prendre en main, respectant les principes d'Angular et sa facilité d'utilisation, NestJS sera réconcilier les “insatisfaits” de Node, Express et ses plugins grâce aux principes de Controllers, Providers, Modules, ou encore Middlewares qui vous aideront à organiser votre projet.
Pendant ce codelab, mettons en place notre premier backend à base de NestJS et ses bonnes pratiques poussées par la communauté de ce framework.
#Node.js #Express #TDD #Beer #NestJS #Angular
CI/CD FIVE MILLION WORKERS
Richard LT Guiheux Steven Coenen Benjamin Conférence / DevOps / beginner 11:00 - 12:00 Salle Chanchardon
Venez découvrir comment toutes les applications du SI OVH sont construites, testées et déployées. Aujourd'hui après avoir fait un bilan de l'année 2018 nous avons comptabilisé 5,7 millions de jobs qui ont été lancés sur notre infrastructure sur une année. Pour en arriver là nous avons donné naissance à CDS, un outil de CI/CD totalement opensource développé en Go qui nous permet chez OVH de scale sur différentes infrastructures sans compromis. Au travers de workflows et de pipelines, découvrez une nouvelle façon de tester, construire et déployer vos applications. Plate-forme CI/CD évolutive, scalable, multi-tenant, self-service. Définissez vos workflows comme vous l'entendez et soyez prêts à déployer une multitude de services en un clic.
Mots clés: opensource, ci/cd, continuous delivery, kubernetes, openstack, golang, workflow, pipeline, devops.
Comment se faire hacker bien comme il faut!
Julien Topçu Conférence / Architecture / beginner 11:00 - 12:00 Salle Casoar Tadorne
Et encore une fuite de numéros de cartes de crédit sur internet! https://www.infoq.com/news/2018/11/british-airways-data-breach
C'est révoltant n'est-ce pas ? Mais attends, qu'est-ce qu'on fait nous pour s'assurer que notre appli n'est pas une passoire?
Dans cette live-coding-hacking session, venez découvrir les erreurs les plus communes en sécurité, que la grande majorité d'entre nous font sans même le savoir!
Après cela, vous ne verrez plus votre application de la même manière…
3 techniques faciles de manipulation
Marie Viley Quickie / Random / beginner 12:00 - 12:15 Salle Casoar Tadorne
Qui ne s’est jamais fait manipulé ? Évidemment, on est tous allé à une soirée alors qu’on en avait pas envie, on a tous acheté un truc sans en avoir besoin et on a tous été influencé par ses proches.
L’idée de cette présentation est de vous ouvrir les yeux sur les relations et les influences entre les gens. Je vous exposerai les mécanismes de prise de décision au travers de 3 techniques simples de manipulation.
A la sortie de ce talk, vous devriez être moins influençable et maître de vos décisions (voir même manipuler les autres).
Kubernetes, attention aux apprentis magiciens
Louis Tournayre Quickie / DevOps / beginner 12:00 - 12:15 Salle Chanchardon
La promesse de kube est belle : Déployer et manager vos applications. Mais est-ce réellement si simple ?
Dans cette présentation je vous partagerai 5 points qui me semblent importants avant de basculer sous K8S :
- Vous devez comprendre et connaître les différentes typologies d’applications de votre SI, attention au golden hammer !
- Vos applications doivent être “kube friendly”, qu’est-ce que cela signifie et implique ?
- Votre (ou vos) cluster doit être supervisé, comment, par qui/quoi ?
- Kube peut/va tomber en panne, comment allez vous gérer ces pannes ?
- Tous les 3 mois une nouvelle release de kube est disponible, vous allez arriver à suivre (sans compter les potentiels CVE qui exigent de mettre à jour le cluster…)?
CORS, XSS, CSRF, SQL injection #BackToTheBasics
Adrien PESSU Quickie / Web / beginner 12:15 - 12:30 Salle Chanchardon
Pas besoin d'être RSSI ou DevOpsSec pour se soucier de sécurité. Que l'on soit développeur back ou front, la sécurité est l'affaire de tous. Pourtant, on l'a confit souvent aveuglement à nos frameworks. Mais alors comment vérifier la sécurité de nos données et de nos utilisateurs. A travers quelques démos, nous allons voir les failles les plus basiques : CORS, XSS, CSRF et SQL injection
Gagner des super pouvoirs avec le terminal
Siegfried Ehret Quickie / Random / beginner 12:15 - 12:30 Salle Casoar Tadorne
Nous allons parcourir le monde merveilleux du terminal, en démarrant par le shell pour aller vers quelques applications bien pratiques comme abook, feh, fzf, httpie, pass, ranger, thefuck, tig…, pour faire de vous la seule personne capable d'utiliser votre ordinateur.
Note: je ne répondrais pas au débat ultime: (neo)vim vs emacs :-P
Project Loom : la concurrence au bout du fil
Arnaud Bos Quickie / Langages / intermediate 13:20 - 13:35 Salle Casoar Tadorne
Le domaine de la programmation concurrente utilise le champ lexical de la filature et nous met les nerfs en pelote avec des concepts qui s'entrelacent : fibers, threads, lightweight-threads, green threads, loom…
Peut-être avez vous également entendu parler de coroutines ? Rassurez-vous, tout est lié.
En 15 minutes je vous donnerai un aperçu de ce que le projet Loom ambitionne d'apporter à la JVM et de quelle façon vous pouvez déjà en profiter, sans trop tirer sur la corde, avec Quasar.
REX : entamer une migration Kotlin dans une DSI Java
Jean-Phi Baconnais Quickie / Langages / beginner 13:20 - 13:35 Salle Chanchardon
Au sein de la DSI de Pôle emploi, les infrastructures back end sont depuis une dizaine d’années faites en Java et le choix des langages n’est pas (encore) déterminé par les équipes de développement.
Kotlin utilisant la JVM, il est désormais possible d’intégrer du Kotlin dans des projets java. Dans ce REX je vous présenterai la manière dont nous avons pu entamer l'intégration du Kotlin dans nos composants back end Java, les problématiques rencontrées, mais aussi les opportunités qui s'ouvrent à nous pour la suite.
Event loop et asynchronisme en JavaScript
Benjamin Cavy Quickie / Langages / intermediate 13:35 - 13:50 Salle Casoar Tadorne
Sans utilisation des web workers, JavaScript est un langage monothread, qui offre toutefois la possibilité d'exécuter du code de manière asynchrone.
A travers une exploration du fonctionnement de la stack, des diverses queues et de l'event loop, ce quickie sera l'occasion de mieux comprendre le fonctionnement et les limitations de cette gestion l'asynchronisme en JS.
Postgresql + json : bye bye JPA et passe le bonjour à mongo
Delegue Alexandre Quickie / -- / beginner 13:35 - 13:50 Salle Chanchardon
- Quelqu'un : Les ORMs c'est vraiment de la @%ù%$, franchement moi j'en utilise pas
- Moi : à ouais tu utilises quoi alors? Par exemple pour gérer ton mapping objet quand il y a des relations
- Quelqu'un : Au fait, t'as pensé quoi du dernier épisode de game of throne ?
Une des features star de JPA, c'est la possibilité de mapper les relations entre objets. Malheureusement tout le monde sait que cette feature amène aussi beaucoup de souffrance.
Dans ce talk 100% (ouais ok 80%) live coding, je vous proposerai une alternative à JPA en utilisant le support json de postgresql. On parlera requêtage json, aggrégations json et on ira jusqu'à stocker et indexer du json voir même faire des jointures entre json. Tout ça afin de pouvoir gérer facilement le mapping objet côté java.
101 - Self-Marketing for Developers
Julien Landuré Conférence / Random / beginner 14:00 - 15:00 Salle Casoar Tadorne
Nous sommes tous curieux et passionnés dans les communautés de dev. Nous aimons partager nos connaissances, présenter nos idées et challenger l'existant avec notre ouverture d'esprit.
Comment diffuser cela plus largement à l'extérieur ? Quelles sont les bases pour créer "sa" marque ? Comment initier cette démarche ?
L'idée est de présenter quelques concepts du Self-Marketing et d'imaginer ensemble une déclinaison pour nous développeur.
A la découverte de la réalité augmentée avec ARCore
Jérémy Voisin Christophe Jollivet Conférence / Mobile / beginner 14:00 - 15:00 Salle Chanchardon
Avec les annonces de l'arrivée de la réalité augmentée (ou RA) dans Google Maps et Google Search sur Android lors de Google IO 2019, nous constatons que la RA va prendre une place de plus en plus importante dans notre quotidien. La sortie d'ARCore en mars 2018 sur Android a simplifié le développement d’application en RA sur Android.
Au cours de cette session, nous vous proposons de découvrir ARCore, via l’utilisation dans un navigateur, des applications natives ou des moteurs 3D comme Unity ainsi que les CloudAnchors qui permettent la persistance et le partage de positions d’objets dans les scènes de réalité augmentée, y compris avec des utilisateurs d’iOS.
Après une initiations aux concepts liés à la RA (meshes, 6 DoF,…), nous présenterons les différentes fonctionnalités d’ARCore. Nous discuterons aussi des différentes approches d’utilisation, de leurs limitations et avantages au travers d'une application de cartographie 3D en réalité augmentée.
Apprenez à sécuriser votre cluster kubernetes par la pratique
Eric Briand Pierre-Yves Aillet Lab / Architecture / advanced 14:00 - 17:00 Hall de l'espace Encan
Habituellement, lors d’un challenge de sécurité type CTF ( https://ctf101.org/ ) l’objectif est de trouver la faille. Nous vous proposons de faire l’inverse : sécurisez un cluster kubernetes pour faire face à des mauvaises pratiques et failles courantes.
Lors de cet atelier, vous aurez à disposition un cluster kubernetes soumis à différentes attaques. Vous serez alors accompagnés pour mettre en place les bonnes contre-mesures et sécuriser votre cluster.
Prérequis : avoir son ordinateur, être à l’aise avec le shell et connaître les concepts de kubernetes et des conteneurs
Du load balancing sans load balancer
yan bonnel Tools in Action / DevOps / intermediate 15:00 - 15:30 Salle Chanchardon
Tous le monde n'a pas les moyen de s'offrir du "vrai" load balancing.
Nous verrons comment mettre en place un load balancing à l'aide des DNS tout en ayant du fail over.
Leaflet: it’s time to leave GoogleMaps
Guillaume Soldera Tools in Action / Web / beginner 15:00 - 15:30 Salle Casoar Tadorne
Pour afficher une map sur le web, la plupart des développeurs pense directement à GoogleMaps. Mais il existe une vraie alternative gratuite : Leaflet.
Leaflet est une lib JavaScript open source qui offre de nombreuses possibilités, permettant des cas d'utilisation basiques comme des scénarios plus avancés. Durant cette session, je présenterai les bases de cette lib et je montrerai sa simplicité d'utilisation avec différents exemples.
Micronaut, le framework JVM ultra-light du futur
Olivier Revial Tools in Action / Langages / beginner 15:30 - 16:00 Salle Casoar Tadorne
Temps de démarrage proche de la seconde, empreinte mémoire de 10 MB, pas de réflection, approche orientée "cloud native" : autant de caractéristiques qui font du framework Micronaut le compagnon idéal de développement de vos microservices Java/Kotlin.
DESCRIPTION COMPLETE
Si des frameworks comme Spring Boot ont grandement facilité l'écriture d'applications en permettant de générer des applications standalone et auto-configurées, ils souffrent néanmoins de l'historique Spring et de sa "lourdeur". En effet, l'injection de dépendances au runtime et la réflection rendent plus longs les temps de démarrage et font grossir l'empreinte mémoire de nos applications.
En partant de 0, Micronaut prend le contre-pied de ses prédécesseurs en se passant de la réflection et en utilisant la "Ahead-Of-Time compilation" (AOT) pour des temps de démarrage en dessous de la seconde !
Nous verrons également que le framework Micronaut a été pensé de base pour supporter et faciliter le développement de microservices et d'applications serverless : il offre par défaut le support de nombreux providers et outils cloud, il est basé sur Netty qui permet l'écriture d'applications réactives, il rend les applications (très) facilement testables… bref, il apporte tout ce dont on a besoin pour développer des applications modernes !
web-crypto, end-to-end encryption et privacy: le lab
Fedy Salah Mathieu ANCELIN Tools in Action / Web / beginner 15:30 - 16:00 Salle Chanchardon
Depuis 2017, des apis de crypto bas niveau sont disponibles directement dans le navigateur via quelques lignes de javascript. Déjà qu'on est pas forcément habitué à faire de la crypto côté serveur en Java, le faire côté client semble d'autant plus fou et peut être un peu aberrant. Cependant, la privacy devenant de plus en plus importante dans les applications que nous auront à réaliser dans le futur (voir dès maintenant), une petite introduction semble assez opportune.
Durant ce lab, après avoir revu quelques bases de cryptographie ;), nous verrons comment appréhender les apis fournies par le navigateur, quels wrappers choisir pour en simplifier l'usage et comment les utiliser concrètement dans une application de messagerie chiffrée de bout en bout écrite en React.
Back to Basics : Ne perdez plus votre Temps avec les Dates
Frédéric Camblor Conférence / Web / beginner 16:15 - 17:15 Salle Chanchardon
La gestion du Temps sur une application client/serveur peut sembler simple de prime abord, mais se révélera beaucoup plus complexe au fur et à mesure des usages : timezones multiples, heures récurrentes, heure d'été/d'hiver, traitements cron, leap seconds sont des exemples parmi tant d'autres.
Saviez-vous même que la Commission Européenne envisage d'abolir le passage en heure d'hiver ? Quels impacts cela aurait sur nos applications ?
Mon objectif : qu'à partir de lundi prochain, vous vous posiez les bonnes questions à chaque fois que vous travaillerez sur une date ou une heure dans vos applications.
Pour cela, reprenons les bases du Temps en informatique : composantes d'une date, norme ISO 8601, Timezones et IANA.
Une fois ces bases posées, nous verrons, au travers d'un certain nombre de cas d'utilisation issus de la vraie vie, les bonnes questions qu'il convient de se poser pour mettre le doigt sur les complexités d'implémentation et éviter de tomber dans une faille spatio-temporelle lors du prochain changement d'heure.
Ce talk est accessible à tous et ne se focalisera pas sur un langage / une API en particulier : les concepts prévaudront sur le code.
Benchmark HTTP grandeur nature
Julien Viet Conférence / Web / intermediate 16:15 - 17:15 Salle Casoar Tadorne
Le benchmark TechEmpower compare plus de 400 frameworks web écrits dans différents languages. La compétition est féroce et tout le monde veut être le premier!
Eclipse Vert.x est un boite à outil populaire pour écrire des applications réactives sur la JVM, reconnu pour sa scalabilité et qui participe à cette compétition depuis de nombreuses années.
Les benchmarks de performances sont souvent utilisés pour comparer des serveurs HTTP ou des frameworks web ainsi que pour faire un choix. Nous étudierons ce que ces benchmarks veulent dire et mesurent vraiment.
Cette présentation révèlera les secrets de fabrication de Vert.x qui ont un impact direct sur ces benchmarks, depuis l'optimisations réseaux jusqu'au compilateur à la volée de bytecode de la JVM.
20 choses à connaitre quand on fait du Kubernetes
Alain Regnier Conférence / Cloud / beginner 17:15 - 18:10 Salle Chanchardon
En quelques années, Kubernetes s’est imposé comme l’orchestrateur incontournable quand on utilise des containers. Mais avec la maturité est venu la complexité: il est difficile de maitriser Kubernetes en détails et on se pose souvent des questions, notamment quand on se lance.
Cette présentation est un retour d’expérience autour de bonnes pratiques, d’astuces et d’erreurs à éviter pour utiliser Kubernetes plus efficacement. Bref des choses qu’il vaut mieux connaitre le plus tôt possible quand on fait du Kubernetes.
Streaming Apps Poison Pill: Comment Kafka-Streams compte faire passer la pilule
Loïc Divad Conférence / Big Data / intermediate 17:15 - 18:10 Salle Casoar Tadorne
Kafka-Streams, la librairie de traitement de données en temps réel de Apache Kafka permet de traiter une grande quantité de messages avec de très faibles latences. Les messages peuvent avoir des formats différents, des schémas différents et même être sérialisés de manières différentes. Alors que se passe-t-il quand un message indésirable se retrouve dans un flux ? Ces applications de stream processing ne peuvent pas se permettre d’attendre une remise en route manuelle. Comment notre librairie de stream processing gère donc ces événements?
Ce talk propose d’explorer l’API Stream DSL de Kafka-Streams. Des techniques comme les sentinel values ou encore les dead letter queues y sont proposées. Voyons ensemble comment elles rendent possible la gestion des messages erronés, appelés aussi poison pills.