Blog

23 October 2018

Reactive Summit : résumé de la journée 1

L'équipe Lunatech est arrivée à Montréal pour participer à la conférence Reactive Summit. La 3ème édition se déroule sur 2 jours, dans le centre de Montréal au Canada. Organisée par Lightbend, la conférence propose 3 tracks autour du thème des architectures Reactive.

La keynote d'ouverture, de Colin Breck de Tesla a montré le parcours nécessaire pour passer d'une plate-forme type Fast Data à un outil d'aide à la décision dans le cadre d'une organisation. L'approche Fast Data c'est mettre en place de quoi streamer les données. Par rapport au Big Data, cela consiste à se focaliser sur la mise en place d'un cycle court, entre la génération d'une donnée et son exploitation pour l'entreprise. Imaginez un client qui achète un livre sur un site marchand ou dans un magasin. Cela déclenche la mise à jour d'une métrique de vente, peut-être que cela déclenche l'activation du bonus d'un manager, et met en place une commande pour renouveler le stock... l'approche Fast Data c'est imaginer des systèmes qui fonctionnent en permanence (contrairement à des batchs) pendant des semaines ou des mois sans s'arrêter...

Après une soirée pour l'ensemble des participants, nous nous retrouvons le lendemain. La conférence débute par une autre keynote d'ouverture, avec la présentation d'Evan Chan, d'Apple. Il présente FiloDB, un projet utilisé entre autre chez Apple. Il s'agit d'une base open-source distribuée destinée à stocker des séries temporelles ou des événements, avec un accent fort sur la performance. Pour cela, le moteur s'appuie sur Apache Cassandra et sur Apache Kafka, pour offrir d'une part un stockage rapide (cassandra) et d'autre part des possibilités de lire rapidement, en dénormalisant massivement les données.

FiloDB is an open-source distributed, real-time, in-memory, massively scalable, multi-schema time series / event / operational database with Prometheus query support and some Spark support as well.

Présentation intéressante, nous pensons plus qu'il s'agit d'un projet destiné aux projets à la recherche de traitement de données temporelles massives (I.o.T, dashboards, statistiques). Mais l'architecture est un bon exemple de l'approche Reactive.

Un peu de théorie ensuite, et retour sur les bancs de l'Université pour (re)voir le fonctionnement des protocoles de consensus comme Paxos ou Raft. La présentation d'Heidi Howard, chercheur à l'université de Cambridge, permet de découvrir l'approche théorique, et les évolutions dans les différentes protocoles de consensus. Ces systèmes sont indispensables pour les architectures Reactive.

La présentation sera une bonne révision pour la présentation qui suit, de Manuel Bernhardt. Développeur indépendant, Manuel balaye pendant les mécanismes indispensables lorsqu'une application est déployée en cluster sur plusieurs machines. Detectors, techniques de dissémination et algorithmes de consensus : sa présentation est très poussée. Il sera aussi orateur à Scala.IO, et nous vous recommandons d'aller découvrir SWIM, Paxos ou les techniques mises en place sur Akka-cluster.

Après une pause, nous avons décidé d'aller découvrir les Coroutines en Kotlin, présenté par Konrad Kamiski. Qu'est-ce qu'une coroutine ? Il s'agit d'une routine, dont le type de retour n'est pas un résultat, mais un pointeur vers un futur résultat. Important dans les architectures asynchrones, le concept date des années 60. L'intérêt de cette présentation est de découvrir l'approche dans le langage Kotlin.

A l'aide d'un mot clé du langage, il devient facile de marquer une fonction, afin qu'elle soit gérée différemment par le système. L'orateur compare durant sa présentation l'approche prise par Kotlin, à des exemples codés avec RxJava. Les Coroutines sont donc une alternative à la programmation reactive. L'approche prise par Kotlin est simple et intuitive. Elle semble plus facile à appréhender, et il est clair que nous devrions entendra parler des Coroutines sur Kotlin dans les mois qui suivent. A découvrir sur les excellents tutoriaux de Jetbrains.

Nous décidons de nous intéresser ensuite aux tests, et plus particulièrement à un retour d'expérience d'une équipe de développement, sur Lagom. Lilit Yenokyan présente la solution mise en place chez Pivotus, pour adresser l'automatisation des tests de performance. Basé sur Jenkins, avec des tests écrit avec JMeter, l'ensemble des données est envoyé vers InfluxDB. Des tableaux de résultat avec Grafana permettent d'analyser facilement les données. Jenkins permet d'automatiser les tests, mais aussi de lancer des campagnes de test avec différents réglages ou sur des branches particulières du projet. L'important est de fixer des objectifs, de ne pas consommer trop d'énergie à vouloir sur-optimiser, pour garder du temps sur l'industrialisation de ces tests.

En conclusion de cette première journée, nous terminons les sessions par une présentation d'Edward Hsu de Mesosphere. A retenir : le projet CNCF Cloud Native Interactive Map visible en ligne sur https://landscape.cncf.io/.

Le bilan de cette première journée : beaucoup de présentations d'architecture, des sujets aussi autour de la méthodologie et de l'approche pour aller vers les architectures Reactive. Nous reviendrons avec d'autres remarques sur un prochain article de blog.

A demain !