Archives Mensuelles: mai 2011

What’s next

Ce vendredi 27 Mai était l’occasion de découvrir l’avenir de notre métier à la conférence What’s Next organisée à Paris. De beaux locaux (le Grand Rex) et de bons speakers étaient au rendez vous !

Neal Gafter
Pour entamer la journée, un talk de Neal Gafter qui commence par rappeler l’histoire de Java, l’origine des disputes avec Google etc… Il nous parle ensuite des nouveautés de Java7 et des possibilités de Java8. Pas forcément la peine d’entrer dans le détail, rien de très nouveau ici. Sa conclusion : c’est mieux d’avoir quelqu’un comme Oracle qui dirige l’innovation et les progrès sur la plateforme Java, et que les efforts soient concentrés sur un seul projet open source (OpenJDK). Cela va dans la bonne direction et il pense que nous assistons a un renouveau de Java. Thomas Conté, architecte chez Microsoft, termine en nous parlant de Azure qui se veut ouvert non pas seulement a .Net mais aussi a Java, Ruby, Python, Php. L’intégration à l’IDE semble aussi bien penser. Pour plus détails si vous êtes intéressés, consultez le whitepaper Azure pour les javaistes.

Rob Harrop
On enchaine avec Rob Harrop qui nous présente RabbitMQ. Cette présentation est probablement l’une de mes préférées de la journée, on a vu des concepts et des démos, le tout dans 5 langages différents (Java, Python, Ruby, Erlang, Javascript !). RabbitMQ se base sur le protocole de messaging AMQP et supporte également STOMP, protocole de plus bas niveau. RabbitMQ est écrit en Erlang et fait partie du portfolio VMWare. Les démos s’enchaine avec des consumers/producers de messages dans des langages différents, avec des protocoles différent. La dernière démonstration montre un serveur node.js qui récupère des messages d’une queue et utilise le protocole websocket pour afficher en live les messages dans le browser.
Speaker très impressionnant et intéressant, si vous avez l’occasion de le voir, je le recommande chaudement !

Theo Schlossnagle
Si le nom du speaker m’était inconnu, son activité n’en est pas moins impressionnante : contributeur à une vingtaine de projets open source, dans différents langages, il est là pour nous parler architecture scalable. Son point de vue est intéressant car il a également travaillé dans les teams ‘ops’ et pas seulement ‘dev’. Il rappelle que le cloud et NoSQL ne sont pas des solutions miracles et que nos applications doivent avant tout être bien pensées pour scaler.
Il prône un modèle d’application ou chaque composant est entièrement découplé et communique avec les autres composants par messages déposés dans des queues. On retrouve là les propos du speaker précédent. Ce découplage permet ensuite de tester chaque partie en isolation, et ainsi grâce à la puissance du cloud, de vérifier des hypothèses sur le dataflow, le cheminement de vos données dans les traitements.
Il faut également vérifier la consistance du comportement en effectuant plusieurs fois la même action : si cela se passe mieux ou moins bien que prévu, il faut enquêter pour trouver la cause et on apprendra forcément quelque chose sur le fonctionnement de l’application. Il insiste également beaucoup sur les traitements asynchrones afin que l’expérience utilisateur soit fluide. Le monitoring (nombre de messages, de connections parallèles, etc…) est également important. Pour terminer il rappelle le ‘Fail often, fail early’ pour garder une expérience utilisateur la moins dégradée possible. Speaker intéressant également !

Michael Chaize
La présentation tourne autour de Flex 4.5, un peu la même que l’on avait pu voir dans nos JUGs. Il faut dire que Michael est français (le seul à nous faire une conférence dans la langue de Molière!) et que c’est un habitué des présentations Flex. Sa démo, un client Twitter, réalisé en live, nécessite très peu de code. Le déploiement peut se faire sur de nombreuses plateformes : navigateurs évidemment mais aussi tablettes android, playbook, ios…
La présentation se termine par le retour d’expérience d’un développeur Flex. Pas mal, un peu de UI ca change…

Jonas Boner
Créateur du framework Akka, travaille maintenant pour TypeSafe (pour ceux qui n’ont pas suivi voir article précédent). Scala est intéressant pour faire des applications… scalables! Et Akka permet de tirer profit de la puissance a notre disposition (Boner vient d’acheter une machine 48 coeurs pour tester pour 5000$, un prix relativement faible pour une telle machine). Petite déception pour ma part, la présentation est à peu près la même que celle de Viktor Klang à Devoxx. Celle ci étant disponible sur Parley’s, je vous conseille d’y jeter un oeil si vous êtes intéressés. La première partie nous présente le fonctionnement des acteurs, puis la seconde des ‘remote actors’ qui permettent de faire du distribué (basé sur NIO, Netty plus précisement et ProtoBuf). Akka 2.0 permettra de faire des ‘clustered actors’ et de gérer notamment la configuration de déploiement.

Shay Banon
La présentation portait sur Elastic Search un moteur d’indexation et de recherche très puissant. On pourrait dire que c’est un SolR sous stéroïdes. Pour tous ceux qui ont travaillé avec un outil de ce genre, la présentation est passionnante : aucun slide mais un enchainement de petits cas pour montrer la puissance de l’outil. Tout commence par le démarrage d’une instance d’Elastic Search en console, puis un enchaînement de commande ‘curl’ pour l’utiliser ! Elastic Search est en effet entièrement exposé par une API REST à laquelle on envoie du JSON, que ce soit pour ajouter des documents à indexer ou faire des requêtes. On passe ensuite en mode distribué en ajoutant plus de noeuds ce qui déclenche une répartition automatique de la charge ainsi que la réplication des données. Tout cela sans que cela dérange vos requêtes : impressionnant ! Si on coupe un noeud, la charge est bien évidement à nouveau répartie de manière uniforme entre les nœuds restants. Point marrant : les instances d’Elastic Search sont nommées aléatoirement à leur création pour simplifier leur suivi : nous avions donc Docteur Sun, Torso et Pasco lors de la démo. Un ajout de document ne nécessite pas de déclaration des différents champs : ES se charge pour vous d’interpréter de quel type est chaque champ. Mais il est également possible de faire cette configuration par l’API REST et de définir soi même les types. L’indexation peut faire appel à un ensemble d’analyzer : phonétique, ngram, etc (on retrouve les analyzer Lucene). Les requêtes offrent elles une véritable DSL qui permet de combiner filtre, analyzer etc… On retrouve également la gestion des facettes : par terme (nombre de fois ou chaque terme est utilisé), statistiques sur un champ (min, max, moyenne, etc…), valeur dans un intervalle donné, histogramme (voir blog ES). La dernière fonctionnalité présentée est le ‘percolator’ qui permet d’enregistrer les requêtes et voir si un document répond à l’une d’entre elles (le document n’est pas indexé mais renvoie les requêtes matchées). Une solution à surveiller si vos besoins d’indexation exige de la scalabilité (le speaker annonce des temps de requêtes de l’ordre la centaine de ms pour plusieurs millions de documents).

Kohsuke Kawaguchi
La journée se termine par une présentation de Koshuke Kawazaki sur Jenkins et son futur. On retrouve pas mal d’idées autour de la gestion des DVCS, les builds distribués exploitant la puissance des machines, les outils de revue de code comme Gerrit. Rien d’exceptionnel mais il est bon de voir que le papa de Jenkins est encore plein d’idées pour la suite !

Une belle journée donc, avec bien sûr l’occasion de rencontrer les fidèles des conférences autour d’un café à la pause. Merci à la société Zenika qui prenait en charge l’organisation de cette journée !

Cast-it : le podcast !

Oyez, oyez !

La team du Lyon JUG est heureuse de vous présenter son podcast Cast-it, où l’on parle actus Java mais pas que !

Dans l’esprit de la conférence Mix-it, nous tenons à ce que tous les passionnés puissent s’exprimer sur Java, l’agilité ou le l’IT en général : si vous avez envie de venir au micro faites nous signe !

L’équipe de ce pilote est constituée de :
Agnes Crepet
Cyril Lacote
Laurent Petit
Alexis Hassler
moi même
et de notre speaker JUG du mois, Fabien Bousquet.

Nous avons parlé de What’s Next et Google IO, du tweet de la semaine et de nos coups de coeur. Vous pouvez le télécharger sur le site et bientôt sur iTunes. Et surtout , dites nous ce que vous en pensez, par exemple sur twitter @cast_it !

TypeSafe : Scala vers l’entreprise et au delà

La semaine dernière a eu lieu l’annonce officielle de la création de l’entreprise TypeSafe et de la mise à disposition de leur stack en téléchargement. Cette stack est conçue pour développer en Scala en entreprise, avec notamment le framework Akka, l’outil de build SBT et des outils pour coder. Que des trucs trendy !

Logo Typesafe

TypeSafe a une équipe assez exceptionnelle, jugez plutôt :
Martin Odersky, créateur de Scala
Jonas Boner, créateur de Akka
– Mark Harrah, créateur de SBT
Victor Klang, développeur sur Akka, speaker a Devoxx .

Comme conseillers de l’entreprise, on compte James Gosling et Doug Lea. Comme investisseurs, des exécutifs de Facebook, Google, Linkedin, Foursquare et Redhat. Bref, du lourd, du très lourd.

TypeSafe veut fournir aux développeurs une stack complète, gratuite et open source pour faire des applications scalables avec Akka pour middleware, et vise notamment les applications “cloud”. Il y aura également une activité de support sur cette stack, ainsi que de la formation et du conseil. Un installeur izpack (excellent produit open source, par le non moins excellent Julien Ponge) vous amène le nécessaire sur votre machine pour vous lancer dans l’aventure !

Scala doit on le rappeler, a été créé il y a maintenant 8 ans, et est en version 2.9.0. Le but avoué de ce langage est de combler les failles de Java tout en s’appuyant sur ses forces. La dernière version amène notamment une amélioration globale des performances et le support des collections parallèles.

Akka est un framework basé sur le modèle de communication par acteur lesquels échangent des messages asynchrones. Viktor Klang était speaker à Devoxx et avait donné un talk très intéressant, qui donne un bon aperçu de la puissance de Akka. Ce talk est d‘ailleurs disponible gratuitement sur Parley’s

Les acteurs sont des processus légers, isolés et non bloquants, qui ne partagent aucun état avec les autres processus. Chaque acteur a une boite aux lettres qu’il utilise pour recevoir les messages des autres acteurs. Ce système permet d’éviter plus simplement les problèmes de deadlock, starvation… Il peut toujours y avoir des problèmes mais il est plus simple de les éviter.

Akka vous offre aussi le support des transactions, des services REST, des Websockets, de Apache Camel, de Spring, de AMQP et de OSGi… Si avec tout ça vous ne trouvez pas votre bonheur !

Une fois l’installation réalisée, un petit tutorial est fourni pour calculer les décimales de Pi, en utilisant Akka depuis Scala ou Java. Le tuto présente également comment installer Scala IDE 2.0, dernière version du plugin pour Eclipse. Le support de Scala s’est bien amélioré dans l’IDE, même si la complétion est encore parfois un peu perdue.

Un récent article sur Akka avec une belle métaphore sur la pièce ‘En attendant Godot’ permet de se plonger plus en douceur dans les concepts du produit.

Un dernier mot, le site de TypeSafe est réalisé avec Play! Framework (comme le site de Mix-it d’ailleurs). Puisqu’on vous dit que c’est trendy !

Suivre

Recevez les nouvelles publications par mail.

Rejoignez 1 076 autres abonnés