Raspberry Pi, ça vous parle ?
Jeudi 22 janvier dernier au 43 rue Beaubourg, Mobiskill fut ravi d'accueillir le 51e meet-up du Paris Scala UG.
Le sujet du jour ? Applications réactives sur Raspberry Pi.
Vous y étiez et vous voulez un récap' ? Vous n'étiez pas et vous voulez aussi un récap'? Cet article tentera de vous donner toutes les informations délivrées durant ce meet-up. Laissons nos 2 interlocuteurs nous (re)dévoiler leur actualité sur notre chère technologie.
Qui êtes-vous ?
Alexandre Delègue : Je travaille pour Serli depuis un peu plus d’un an. Je suis essentiellement un développeur java, javascript avec un intérêt comme beaucoup pour le NoSQL et les applications scalables. Je fais du scala « le soir » depuis environ un an et j’apprécie particulièrement ce que propose ce language.
Mathieu ANCELIN : Développeur chez Serli depuis 5 ans, je fais du Scala en on/off depuis 3 ans (et plus sérieusement depuis 2 ans). Je fais beaucoup de Java et Javascript professionnellement et le soir beaucoup de Scala. Je suis le lead développeur du projet ReactiveCouchbase qui est un driver réactif pour la base de données noSQL Couchbase écrite en Scala.
➔ Pourquoi VOUS êtes aujourd’hui le speaker de ce meet-up ?
On a vu de la lumière alors on est entré :-) En fait, il semblerait que le sujet de notre présentation ait plu aux organisateurs du meetup, donc nous sommes ici pour présenter notre magnifique cluster de Raspberry Pi !
Quelles sont les problématiques principales soulevées aujourd’hui ?
Ce talk a pour objectif de montrer comment implémenter une application web qui devra tourner sur un cluster de Raspberry Pi.
L’application doit répondre aux contraintes suivantes :
- supporter la charge
- résister aux pannes
- répondre aux utilisateurs
- être référencée par les moteurs de recherche
- élasticité : être capable de répondre à une montée en charge par la scalabilité horizontale mais également de revenir en arrière quand la charge diminue.
- réagir aux pannes : l’application ne doit être mise en péril lorsqu’un des composants est défaillant
- message driven : l’application fonctionne par échanges de message et par conséquent elle doit être asynchrone
- réagir aux utilisateurs : l’application doit garantir de bon temps de réponses même sous charge
- approche micro service
- applications stateless
- base de données noSQL (ElasticSearch et Cassandra) : scalables et résiliantes
- utilisation du cache (cache navigateur, pré-génération de fragments html dans elasticsearch)
- utilisation de la techno akka : envoi des messages même à distance (cluster akka)
- utilisation de play : asynchrone, intégration d’akka, web socket …
- mise en place d’une librairie de services pour faciliter l’utilisation du cluster akka
- event sourcing : il existe deux modèles de données: un pour l’écriture et un pour la lecture.
- Pour l’écriture, les événements véhiculés dans l’application sont précisées dans un journal et peuvent être rejouées si besoin.
- Pour la lecture, on calcule l’état courant à partir des événements reçus.