Comme promis, voici un deuxième article sur Devoxx France 2015, concernant la journée du mercredi 8 avril. Je vous dévoile ici le contenu de certaines sessions auxquelles j’ai participé, et surtout les slides de présentation.

Consulter le premier article daté du 20 avril.

Hands on Lab : Initiation à Spark avec Java 8 et Scala

par Hayssam Saleh (EBIZNEXT) et Olivier Girardot (Lateral-Thoughts.com)

Objectif : se familiariser par la pratique au traitement massif et distribué dans le domaine du data crunching et du machine learning.

Sujets abordés:

  • Les Resilient Data Sets (RDD)
  • les patterns de transformations et d’actions offerts par l’API
  • les API de chargement et de stockage de données
  • l’analyse et le reporting via Spark SQL
  • l’analytique temps-réel avec Spark Streaming

Le contenu : http://www.ebiznext.com/devoxx2015/

Les slides : https://www.gitbook.com/book/ssaboum/initiation-a-spark-avec-java-8-et-scala/details

=> Intéressant mais difficile de coder et d’absorber autant de concept en même temps. A refaire tranquillement.

Hands on Lab : RxJava, les mains dans le code

Par  Simon Baslé et Laurent Doguin  de Couchbase

Objectif : découvrir RxJava et la programmation réactive fonctionnelle.

Le contenu: https://github.com/simonbasle/practicalRx

Les slides : https://speakerdeck.com/simonbasle/atelier-rxjava-les-mains-dans-le-code-devoxxfr2015

=> Sympa. Ils vont venir refaire le HOL à Genève (le 19 mai?), dans le cadre des JDuchess Suisse. Abonnez-vous @duchessswiss sur Twitter pour avoir la date exacte.

Tools In Action : HAProxy level 2 – des bases aux problématiques de scaling

Par Nicolas Helleringer (Criteo)

Load balancer.

Tools to connect : Hatop, KeepAlived

Intérêt :

  • Pas besoin de changer la config réseau.
  • Capacité de régler les « capabilities » par serveur

Feedback Criteo:

  • benchmark ok, très flexible et opensource + possibilité de « scaler »
  • Evite la configuration réseau que de la configuration logicielle xml/http, RabbitMQ
  • Limite le nombre de requête par cpu (rajout de matériel n’était pas l’objectif)

Il y a  un CLI donc possibilité d’interagir

Bon support de HAProxy

Tools in Action : Un Jenkins amélioré avec Docker, Mesos et Marathon

Par Jean-Louis Rigau (Xebia)

Objectifs :

  • Simplifier la gestion de Jenkins en le containérisant avec Docker et en le déployant au sein d’un cluster Mesos avec le framework Marathon (Jenkins peut être consommateur en ressources et parfois pénible au niveau des plugins.)

  • Utiliser les ressources du cluster Mesos pour créer des slaves Jenkins à la demande en s’appuyant sur les conteneurs Docker.

Docker est développé en Go

Mesos (créé à la base par Twitter) permet d’optimiser les resources, possibilité d’ajouter filte + constraint

Pour la demo, 1 seul Jenkins Master, mais on pourrait en avoir plusieurs

La version « weekly » de Jenkins est utilisé (+ récente + robuste)

Au sein de Mesos, comment faire si le jenkins est déployé ailleurs ? Utiliser un file system partagé entre les différent slaves. Permet de récupérer la configuration des plugins et des jobs.

Jenkins Scheduler est un framework mesos. ou plus exactement, c’est un plugin mesos qui contient le jenkins scheduler.

La création des slaves ne passent pas par Marathon.

Source du TIA : https://github.com/jlrigau/ci-mesos

Source de la configuration du cluster Mesos : https://github.com/WeScale/mesosphere-walking-tutorial

Source d’inspiration : http://www.ebaytechblog.com/2014/04/04/delivering-ebays-ci-solution-with-apache-mesos-part-i/#.VTEiTFxQl5A

Tools In action : Elasticsearch – De l’importance du mapping

Par Jérome Mainaud (Ippon)

Elasticsearch est « schemaless ». C’est pratique pour démarrer rapidement une application et la faire évoluer facilement. Pourtant, dans le cas d’Elasticsearch, le mapping, influence fortement les résultats de la recherche.

Comprendre pourquoi utiliser le mapping

  • Mapping -> nom, type, indexation + analyseur
  • Le mapping, c’est ce qui permet de changer la qualité de la recherche

Analyse et indexation – nécessité d’avoir un bon analyseur.

  • Ex: Passionné (default) passio (french)

Marvel: Permet de donner 1 découpage, permet de comprendre ce qui se passe.

  • Demo avec 1 erreur -> Nécessite d’ajouter un mapping.

Il faut essayer d’enlever le bruit. Donc il faut essayer de l’analyser.

Quand il y a du « nested » (elastic search), il faut l’aider et lui dire où il faut chercher.

  • Algo pour tronquer. (algo de lemmatisation)
  • 3 différents algo peut les règler.

Analyser: filtrer (Exemple: Enlever les balises), tokenizer (découpage, très important)

  • Appliquer un certain nombre de filtres (exemple enlever les articles)
  • Le bonus montre qu’on peut changer les requêtes rien qu’en changeant l’analyseur.

On part en général avec les réglages par défaut, ensuite on progresse peu à peu.

Attention: changer les analyseurs en route, cela veut dire qu’on va tout ré-indexer.