Devoxx 2012 : interview de Shay Banon, Elasticsearch

Shay Banon était présent ici a Devoxx 2012, ou il a donné une conférence comme il sait les faire : sans slides, juste de la pure démo en CURL. J'en ai profité pour lui poser quelques questions pour la communauté Elasticsearch France.

David Pilato: Elasticsearch devient très populaire. J’ai entendu parler de chiffres assez fous en termes de téléchargements. As-tu une idée sur le nombre de cluster et sur la quantité de données indexées à ce jour par Elasticsearch dans le monde ?

Shay Banon: En fait, je ne sais pas exactement combien il y a d'installations que ce soit sur internet ou en intranet. La plus grosse configuration que j'ai vue à ce jour tourne avec 150 nœuds. C’est juste fou de voir qu'un cluster entier distribue sa recherche sur 150 instances et renvoie les résultats en quelques millisecondes. Il existe quelques configurations avec un volume de 10 milliards de documents indexés. En terme d'espace disque, la plus grosse installation que je connaisse a quelques pétaoctets de données.

David Pilato: Et les téléchargements du projet sur Github ? Tu sais qu'Elasticsearch est l'un des plus gros repository Github Java en terme de nombre de forks, de watchers et l'une des favorites (https://github.com/languages/Java) ?

Shay Banon: C'est juste une folie. Nous avons environ 1.5 millions de téléchargements jusqu'à présent avec un rythme toujours croissant actuellement à 200 000 par mois.

David Pilato: Une question revient souvent de la part des utilisateurs. Puis-je ou devrais-je utiliser Elasticsearch comme une base de données ?

Shay Banon: Pour le moment, ce n'est pas quelque chose que je recommande. Nous devons apporter des fonctionnalités supplémentaires avant d'annoncer cela. Notamment en termes d'outils d'administration. Mais je dois reconnaître que nous n'en sommes plus très loin.

David Pilato: Est-ce que Elasticsearch supportera les transactions ?

Shay Banon: Définitivement non. Cela ne sera pas supporté dans Elasticsearch par souci de scalabilité et de performance. Par contre, si tu as vraiment besoin de transactions, je conseille plutôt d'envisager l'utilisation de queues de messagerie et de faire consommer par Elasticsearch les messages après leur commit dans la queue.

David Pilato: Il y a maintenant une société derrière le projet Elasticsearch. Vous venez de lever 10 000 000 de dollars. Qu'allez-vous faire avec ce budget ?

Shay Banon: Nous allons renforcer les équipes de développement principalement et créer des postes commerciaux et marketing. L'intérêt est de ne plus avoir un seul développeur mais d'avoir un ensemble complet de compétences, telles que des commiters Lucene, des spécialistes Ruby, PHP, PERL ou autres, au-delà de Java.

Nous allons pouvoir fournir d'avantage de support et pouvoir répondre à l'extraordinaire demande à laquelle nous devons maintenant faire face.

Nous aurions pu réaliser toutes ces actions sans lever de fonds, mais là, nous allons pouvoir aller très vite, beaucoup plus vite.

David Pilato: On te voit beaucoup moins sur la mailing liste. Pourquoi ?

Shay Banon: C'est volontaire. Je me suis mis en retrait pour laisser répondre le reste de l'équipe. Je ne veux pas être le "single point of failure" du projet et pour cela, il est essentiel que l'équipe prenne à bras le corps tous les sujets et réponde ! Mais, ce n'est pas parce que je ne réponds pas que je ne lis pas. Je suis très présent en fait et lorsque l'équipe ne peut pas répondre, j'interviens ou j'ajoute mes précisions.

David Pilato: Quelle est ta roadmap ? Qu'y a-t-il dans la version 0.20 qui est en ce moment en Release Candidate ?

Shay Banon: Principalement, nous avons reporté toutes les modifications de la 0.19.11 et nous apportons une meilleure gestion du cluster et une scalablité accrue. Quelques nouvelles API, les warmers qui permettent de "préchauffer" le cluster au démarrage en mettant en cache quelques données de façon a toujours servir nos utilisateurs le plus vite possible. Il y a également la gestion des GeoShapes.

David Pilato: Et dans la version 0.21 ? On voit en ce moment beaucoup de commits relatifs à Lucene4.

Shay Banon: En effet, la 0.21 est tournée vers l'intégration de Lucene 4. Notre objectif étant de fournir dès que possible de nouvelles fonctionnalités apportées par Lucene 4, comme par exemple les codecs. Il est probable que ce soit au final, Lucene 4.1 qui soit intégré dans Elasticsearch 0.21 car la release de la 4.1 ne devrait pas tarder.

David Pilato: Et ensuite ?

Shay Banon: un refactoring dans la gestion des données, une amélioration dans la représentation des données, sans doute une refonte de la gestion des facettes pour en permettre une plus grande flexibilité. Je veux aussi travailler sur les fonctionnalités de snapshot & restore qui nous permettront de donner plus d'outils aux Ops.

David Pilato: Souvent, on me pose la question : il y aura une version 1.x ?

Shay Banon: Dans les faits, la version 1.0 existe depuis bien longtemps. Les versions en production sont déjà très très stables, mais je comprends l'inquiétude que peut soulever la notion de version 0.x. Donc, dès que nous aurons la fonction snapshot & restore et donc des outils d'administration, je passerai le projet officiellement en 1.0. Probablement, la version 0.22 sera en fait la 1.0. Mais encore une fois, c'est juste une étiquette ! Vous pouvez utiliser les versions actuelles en production !

David Pilato: Parlons un peu de la mise à jour des versions. C'est quelque fois difficile de faire une montée de version d'un cluster entier sans stopper le service. Sera-t-il possible à l'avenir de faire des mises à jour nœud par nœud avec interopérabilité des nœuds (compatibilité ascendante) ?

Shay Banon: Nous avons introduit en version 0.20 justement la notion de version de nœud dans les échanges administratifs entre les nœuds. Nous avons donc maintenant toutes les bases pour assurer cela. Il reste encore du travail à faire mais cela progresse bien.

David Pilato: Les utilisateurs se plaignent souvent de l'organisation de la documentation. Tu as prévu quelque chose pour répondre à cette demande ?

Shay Banon: Clairement, oui ! D'ailleurs, le renfort  de l'équipe va nous permettre d'écrire des livres sur Elasticsearch et le site sera revu avec le contenu de ces livres. On devrait y trouver des livres de référence, des cookbooks, des tutoriaux,...

David Pilato: Il y a maintenant beaucoup de plugins développes par la communauté. Tu vas devoir créer un ESStore (comme il existe l’APPStore) ! Non, je plaisante. Sérieusement, que penses-tu de tous ces plugins ?

Shay Banon: Oui, c'est assez incroyable ! J'encourage fortement la création de plugins et notamment, je m'efforce de rendre le plus simple possible la mécanique d'extension d'Elasticsearch.

David Pilato: Envisages-tu de fournir Elasticsearch as a service dans le Cloud ?

Shay Banon: Non. Ça n'est vraiment pas notre métier. Je veux concentrer nos efforts sur le développement du projet. Il existe déjà 3 ou 4 solutions qui répondent à ce besoin.

David Pilato: Nous avons maintenant en France une communauté croissante (plus de 150 développeurs sur la mailing list elasticsearch-fr@googlegroups.com et plus de 200 followers sur Twitter: @ElasticsearchFR). Tu envisages d'apprendre le français ? 😉 As-tu quelque chose à dire à la communauté française ?

Shay Banon: J'adore la France, mais je ne parle pas français. Pourtant, mon père parle très bien le français. Je trouve que l'accueil d'Elasticsearch en France est incroyable, même si pour le moment je n'ai pas encore eu beaucoup de retour sur des installations en production.

Les efforts que vous faites au niveau Elasticsearch France permettent de populariser le projet et c'est vraiment très bien.

Plus globalement, ce qui me fait chaud au cœur, c'est de constater à quel point l'esprit de communauté Elasticsearch est développé et sain. Les gens s'entraident dans les mailings lists et accueillent volontiers les nouveaux arrivants avec beaucoup de patience. Je suis très fier de ça à titre personnel et pour l'entreprise aussi. Le mot "communauté" est vraiment porteur de sens dans le cas d'Elasticsearch.

David Pilato: Merci pour l'interview. Nous espérons te voir plus souvent en France 😉

Shay Banon: Normalement, je vais venir sur Paris pour une session de formation en Janvier. Nous aurons l'occasion sans doute d'organiser une rencontre...

2 commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.