Xebia accueille la 19ème soirée du Paris Scala User Group

Article publié par David Galichet le 25 janvier 2012.

Catégorie(s) : Java / JEE

 

Aucun commentaire »

scala-logo

La prochaine session du Paris Scala User Group aura lieu jeudi 26 Janvier à 19h30 dans les locaux de Xebia.

À cette occasion, Stéphane Landelle nous présentera Gatling qui est un outil de stress test écrit en Scala et reposant sur les frameworks akka et Netty. En seconde partie, il nous donnera un retour d’expérience sur l’utilisation de Scala pour développer l’outil.

Il reste encore des places. Si vous souhaitez y assister, pensez à vous inscrire pour la logistique.

Notez bien l’adresse :
Xebia
156 boulevard Haussmann à Paris
Immeuble A – 7e étage

Java NIO et Framework Web Haute performance

Article publié par Séven Le Mesle et Julien Buret le 9 novembre 2011.

Catégorie(s) : Java / JEE, Performance

 

8 commentaires »

Comme nous l’avons déjà évoqué sur le blog, à l’occasion du challenge USI 2011, nous nous sommes intéressés à différents serveurs et framework web NIO en Java. Le principe était simple en mettant à plat la spécification du challenge, nous avons identifié quelques besoins techniques :

  • Une solution pour le marshalling JSON
  • Un serveur web NIO supportant le long polling
  • Une solution pour la persistence et le partage des données

Notre démarche a été de réaliser des POCs implémentant la création des utilisateurs et le long polling pour retenir la meilleure solution. La solution devait être simple et rapide à implémenter, et tenir une charge conséquente en la testant à l’aide de ab l’outil de benchmark Apache et de la librairie Async Http Client. Pour le JSON, nous nous sommes tous rapidement mis d’accord sur l’utilisation de la librairie Jackson. Nous étions tous convaincus qu’il nous faudrait un serveur web NIO sans passer par la case Servlet. C’est à partir de là que notre tour d’horizon des API NIO en Java a commencé.

Lire la suite de cet article »

L’équipe Xebia remporte le challenge USI 2011

Article publié par Séven Le Mesle, Pablo Lopez, et Julien Buret le 8 juillet 2011.

Catégorie(s) : Java / JEE

 

5 commentaires »

Nous avons déjà eu le plaisir d’annoncer sur ce blog que nous figurions parmi les trois équipes finalistes. Et nous sommes fiers d’annoncer que l’équipe Xebia, menée par Julien Buret et Séven Le Mesle, a remporté, mardi dernier, lors de l’USI, le challenge « Et si vous codiez une application qui supporte 1 milliard d’utilisateurs ? ».

Nous sommes certes restés loin du milliard… Mais sur 10 Vms (le challenge devait aboutir à un portage sur 100 vms, qui n’a pu être réalisé, faute de temps), l’application de quizz développée pour l’occasion offrait toujours des temps de réponses acceptables avec plus de 200 000 utilisateurs simultanés (des problèmes d’infrastructure ont empêché de monter la charge plus avant).

L’équipe Jaxio & Friends, ainsi que l’équipe Avricot (2 étudiants branchés C) complètent le podium.

Ce challenge donnera lieu à une rétrospective complète lors d’une soirée du Paris Jug, à la rentrée. Néanmoins, nous pouvons d’ores et déjà révéler certains choix architecturaux qui ont permis d’atteindre ces performances. Tout d’abord, fidèles à notre « ADN », l’application a été développée 100% en Java. Pour le reste, voici quelques uns des choix que nous avons faits :

  • un frontal NIO, utilisant Netty. Etant données les contraintes du challenge, une architecture non bloquante était une nécessité. Après un phase d’intense prototypage, Netty est ressorti comme le serveur NIO répondant le mieux à nos besoins en terme d’utilisateurs simultanés et de temps de réponse. Les points qui nous ont fait pencher en sa faveur sont nombreux (100% Java, mise en œuvre simple et rapide, code source disponible et compréhensible, documentation correcte). Nous aurons l’occasion de développer ce choix et les différentes expérimentations que nous avons mené dans un article ultérieur.
  • un cache et une persistance distribués reposant sur le produit commercial Gemfire, fournis dans les instances vFabric de VmWare. En utilisant Gemfire en mode peer-to-peer, la persistance et la distribution des données sont gérées de manière quasi transparente pour le client Java, et l’accès aux données n’est pas plus couteux (en terme de performance comme de complexité) que l’accès à une Map en mémoire.
  • un choix de ne pas spécialiser les Vms : chacune des 10 Vms utilisées en phase finale était un clone de notre Vm initiale. Nous avons ainsi gagné en facilité de déploiement, d’administration et de débogage (et donc d’optimisation).

Ce challenge a donc été riche d’enseignements, tant au niveau de la technique (avec la mise en œuvre de produits assez inédits dans les architectures d’entreprise standard) qu’au niveau infrastructure (avec le déploiement sur un large cluster virtualisé).

Mais au delà de ces considérations, c’est avant tout une grande joie d’avoir pu exprimer notre savoir faire face à la crème des javaistes français.

Quelques liens :

 

Page optimized by WP Minify WordPress Plugin