Quelques savoirs Elasticsearch acquis à ElasticCC
La première Elastic Community Conference a eu lieu vendredi dernier. Nous y étions et voici – un peu en vrac – les quelques astuces et fonctionnalités que nous avons découvert ou redécouvert lors des quelques talks auxquels nous avons pu assister (24h de contenu en continu, il a fallu dormir à un moment !).
- la réponse à la question universelle : « de combien de HEAP / CPU / espace disque ai-je besoin ? » est toujours : « it depends » 😁 ;
- il y a des utilisateurs d’Elasticsearch qui ajoutent une API GraphQL au dessus du moteur ! Cependant, pour une requête GraphQL, des dizaines de requêtes REST sont nécessaires… La dénormalisation peut régler ce problème si vous avez peu de mises à jour ;
- les Data Streams sonnent la fin des index « fourre-tout » journaliers avec nos logs, nos métriques… Les index sont abstraits et cachés, les performances meilleures, la gestion du cycle de vie facilitée, et comme c’est basé sur ECS (Elastic Common Schema), les dashboards analytics sont pré-construits ;
- il vaudrait mieux avoir de nombreux index mais spécialisés, qu’un seul gros index avec plein de documents de topologie diverses. Le stockage sera moins volumineux et mieux optimisé et donc plus performant ;
- Rally, l’outil de benchmark de la core team, utilisé pour éviter les régressions de performance notamment, est aussi utilisable avec nos propre scénarios. Ça n’a pas l’air si compliqué après avoir vu la démo !
- par exemple, l’auteur a découvert que le type
scaled_float
n’est pas plus rapide quedouble
grâce à un test dans Rally (donc autant utiliserdouble
partout) ; - la recherche dans les snapshots, une des grandes nouveautés de la version 7.11, n’est pas disponible dans la version gratuite du moteur (cela permet de chercher dans des PETABYTES de backup !) ;
- lorsque vous utilisez une clause
script_score
, essayez de lui donner le moins de documents possible en ajoutant unfilter
: moins de documents = moins de calcul = moins de temps ; - quand un cluster est down, la majorité du temps, c’est à cause de l’espace disque qui dépasse le seuil maximum de sécurité – nous avons exactement le même ressenti ! À savoir qu’ajouter de l’espace ne suffit pas, il faut aussi remettre le cluster en « écriture » à la main ;
- il est recommandé de soigner et surveiller les logs du moteur même quand tout va bien. Laisser des WARNING s’empiler c’est accumuler plein de lignes inutiles qui vont gêner quand il y aura vraiment un problème ;
- l’outil de « support diagnostic » permet de sortir rapidement l’ensemble des informations d’un cluster, sous forme de JSON pour analyse manuelle ;
- une offre « Elastic For Startups » va être lancée, offrant des crédits Elastic Cloud à des sociétés sélectionnées ;
- nous avons pu présenter de nouveau la recherche par emoji 🍕 dans Elasticsearch, et nous en avons même profité pour glisser un emoji drapeau Breton (oui, il « existe » déjà) !
L’ensemble des vidéos sont disponibles sur cette playlist Youtube (ou le seront bientôt).
La conférence a aussi été l’occasion d’annoncer les résultats du Elastic Contributor Program pour 2021, et nous vous en parlons car Damien est Elastic Gold Contributor 2021 !
Cette distinction récompense la somme d’articles, conférences, tutoriels, et autres contributions à la communauté Elasticsearch. Ces contributions nous tiennent à cœur – elles sont la base de notre travail avec l’open-source – et il est agréable de voir qu’Elastic travaille à rendre ce travail plus visible et reconnu !
Cet article porte sur la conférence Elastic Community Conference 2021.
Commentaires et discussions
Nos formations sur ce sujet
Notre expertise est aussi disponible sous forme de formations professionnelles !
Elasticsearch
Indexation et recherche avancée, scalable et rapide avec Elasticsearch
Ces clients ont profité de notre expertise
JoliCode accompagne l’équipe technique Dayuse dans l’optimisation des performances de sa plateforme. Nous sommes intervenus sur différents sujets : La fonctionnalité de recherche d’hôtels, en remplaçant MongoDB et Algolia par Redis et Elasticsearch. La mise en place d’un workflow de réservation, la migration d’un site en Twig vers une SPA à base de…
La nouvelle version du site naissance.fr développée s’appuie sur Symfony 2 et Elasticsearch. Cette refonte propose un tunnel d’achat spécialement développé pour l’application. Aujourd’hui, le site est équipé d’une gestion d’un mode d’envoi des faire-parts différé, de modification des compositions après paiement et de prise en charge de codes promotionnels…
Qobuz nous a également sollicité pour la refonte de son moteur de recherche pour employer Elasticsearch, dont JoliCode a une très forte expertise. L’indexation en temps réel et les problématique de droits sur les contenus musicaux ont été les principales difficultés rencontrées. Au final, l’emploi d’ElasticSearch et notre approche technique ont permis…