28 octobre 2015 Technique

Lancement de Elasticsearch 2.0.0 GA

Par Clinton Gormley

Avec 2 799 contributions réalisées par 477 nouveaux committers depuis le lancement d'Elasticsearch 1.0.0, nous sommes fiers d'annoncer le lancement d'Elasticsearch 2.0.0 version GA, basé sur Lucene 5.2.1. Comme cela ne suffisait pas, nous lançons également la version 2.0.0 des plugins de sécurité Shield et d'alertes Watcher, un tout nouveau plugin de monitoring Marvel simplifié et désormais gratuit pour l'utilisation en production, ainsi qu'un nouvel éditeur Sense open source.

Vous pouvez télécharger Elasticsearch 2.0.0 et découvrir les principales nouveautés dans 2.0.0 (en anglais) ici. La liste complète des modifications se trouve ici :

Les logs de modifications pour les plugins commerciaux se trouvent ici :

Nouveauté d'Elasticsearch

Elasticsearch 2.0.0 vous apporte des nouvelles fonctionnalités fantastiques, entre autres :

Pipeline d'agrégations

Il s'agit de la possibilité de réaliser des agrégations, comme des dérivées, des moyennes glissantes ou des suites arithmétiques, à partir des résultats d'autres agrégations. Ces calculs ont toujours été réalisables côté client, mais le fait de les déplacer dans Elasticsearch facilite l'élaboration de requêtes analytiques plus performantes tout en simplifiant considérablement le code côté client. Cette fonction ouvre la voie aux analyses prédictives et à la détection d'anomalies. Pour en savoir plus sur les Pipelines d'agrégations, suivez les liens suivants :

Fusions requête/filtre

Oubliez les filtres. Toutes les clauses de filtres sont désormais remplacées par des clauses de requêtes. Lorsqu'elles sont utilisées dans le contexte d'une requête, elles agissent sur le score de pertinence, et lorsqu'elles sont utilisées dans le contexte d'un filtre, elles permettent simplement d'exclure les documents qui ne correspondent pas aux critères, comme le font les filtres actuels. Cette restructuration signifie que l'exécution des requêtes peut être automatiquement optimisée pour se dérouler dans l'ordre le plus efficace. Par exemple, les requêtes lentes, comme des recherches de texte ou de localisation géographique, procèdent tout d'abord à une phase rapide mais approximative, puis affinent les résultats grâce à une deuxième phase plus lente et plus précise. Dans le contexte d'un filtre, les clauses souvent utilisées seront mises en cache automatiquement dès que cela sera pertinent. Pour en savoir plus lisez : «Une meilleure exécution des requêtes bientôt avec Elasticsearch 2.0 ».


Compression de stockage configurable

Les champs stockés tels que _source peuvent être compressés soit avec LZ4 pour sa rapidité (par défaut), soit avec DEFLATE pour une taille d'indexation moins importante. Ceci est surtout utile au moment du logging, où les vieux indexes peuvent basculer sur best_compression avant d'être optimisés. Pour en savoir plus lisez : « Compression de stockage dans Lucene et Elasticsearch ».


Renforcement

Elasticsearch s'exécute désormais sous Java Security Manager, marquant ainsi une grande étape en termes de sécurité. Le Security Manager renforce la protection d'Elasticsearch contre toute exploitation et restreint considérablement l'impact qu'un hacker pourrait avoir sur votre système. Elasticsearch a également été renforcé du point de vue de l'indexation :

  • Les documents sont désormais synchronisés fsync avec le disque avant que les requêtes d'indexation ne soient validées, ce qui rend les écritures durables par défaut.
  • Tous les fichiers sont vérifiés par checksum pour détecter rapidement toute corruption.
  • Les modifications des noms de fichiers sont toutes atomiques afin d'éviter qu'un fichier soit partiellement écrit.

Enfin, une modification très demandée par les administrateurs systèmes afin d'empêcher qu'un nœud non configuré ne puisse se joindre à un réseau public : Elasticsearch est désormais relié uniquement au localhost par défaut, et le multicast a été supprimé pour laisser la place à l'unicast.


Performance and résilience

Outre les éléments ci-dessus, une multitude d'autres petites modifications ont été apportées aussi bien à Elasticsearch qu'à Lucene, le tout pour un système plus stable, fiable et facile à configurer. Par exemple :

  • L'utilisation réduite de la heap avec le paramètre doc-values-by-default, a ainsi réduit l' utilisation de la mémoire au cours des fusions, et la compression des bitsets pour la mise en cache des filtres.
  • Des exceptions lisibles et structurées.
  • Plus de dépendance sur les loops de feedback plutôt que sur les paramètres pour l'auto-régulation.
  • Un grand nettoyage des mappings des types pour les rendre plus sûrs, fiables et non ambigus.
  • Des diffs sur l'état du cluster pour une propagation des modifications plus rapide et plus de stabilité des gros clusters.
  • L'amélioration de la compression des "norms", qui prenaient jusque là beaucoup d'espace heap.
  • La limitation automatique des fusions sans avoir besoin de peaufiner des paramètres compliqués.
  • Les rapports de mémoire Lucene sont plus précis.
  • La relation parent/enfant est réécrite afin de bénéficier d'une exécution optimale des requêtes.
Les plugins de base

Les plugins de base officiellement pris en charge sont désormais envoyés au même moment et avec le même numéro de version que la version d'Elasticsearch de base. Vous n'aurez plus besoin de consulter un tableau compliqué des versions pour connaître la version requise du plugin à installer. Les plugins de base peuvent être installés comme suit :

bin/plugin install analysis-icu
                

Les nouveautés de Shield et Watcher

Nos plugins commerciaux sont livrés avec des fonctionnalités très sympa, entre autres :

Shield

  • Contrôle des accès au niveau du champ et du document.
  • Impersonification d'identité.
  • Domaines d'authentification extensibles sur mesure.
Watcher

  • Activer/Désactiver certains Watchs.
  • Notifications dans Slack et Hipchat.

Pour en savoir plus sur ces fonctionnalités, suivez le lien « Shield, Watcher et Marvel 2.0.0 version GA ».

Tout comme les plugins open source de base, nos plugins commerciaux ont été lancés au même moment et avec le même numéro de version que la version d'Elasticsearch de base - ils peuvent être installés comme suit :

bin/plugin install license
bin/plugin install shield
bin/plugin install watcher
        

Marvel 2.0.0 gratuit pour l'utilisation en production

Le plugin de monitoring Marvel a été d'une aide précieuse à nos clients, les aidant à diagnostiquer les problèmes après qu'ils aient eu lieu mais aussi à les déceler alors qu'ils sont en cours. Nous avons bien réfléchi aux possibles améliorations et avons revu Marvel de fond en comble :

  • L'interface utilisateur de Marvel repose désormais sur la toute nouvelle plateforme Kibana.
  • Les tableaux de bord ont été simplifiés pour afficher les indicateurs de mesure les plus importants et ainsi repérer les problèmes plus facilement.
  • Marvel prend désormais en charge le monitoring de clusters multiples dans une même installation, en tant que fonctionnalité commerciale.

Et ce qu'il y a de mieux, c'est que Marvel est désormais gratuit pour une utilisation en production par les utilisateurs d'Elasticsearch. Une licence est nécessaire, mais celle-ci est disponible à tous les utilisateurs gratuitement. Si vous souhaitez bénéficier du monitoring de clusters multiples, il s'agit là d'une fonctionnalité commerciale.Pour en savoir plus à propos de Marvel, suivez le lien « Shield, Watcher et Marvel 2.0.0 version GA ».

Editeur Sense open source

Sense, l'éditeur de requêtes Elasticsearch et DSL basé sur navigateur, est désormais disponible à tous sous forme d'application open source reposant sur la plateforme Kibana. Cette nouvelle version s'accompagne de ces excellentes fonctionnalités :

  • Coller plusieurs requêtes cURL pour les convertir en syntaxe Sense.
  • Copier plusieurs requêtes Sense dans une syntaxe cURL.
  • Exécuter plusieurs requêtes d'un seul coup.
  • La base de données à remplissage automatique a été mise à jour pour prendre en charge Elasticsearch 2.0.

Sense peut être installé en tant qu'appli Kibana comme suit :

./bin/kibana plugin --install elastic/sense
        

Pour en savoir plus à propos de Sense, suivez le lien « L'histoire de Sense - Lancement de Sense 2.0.0-beta1 ».

Plugin Migration Elasticsearch

Le plugin Migration d'Elasticsearch est le meilleur point de départ si vous souhaitez mettre à niveau votre ancienne version Elasticsearch 1.x pour la version 2.0. Ce plugin s'installe comme un plugin de site sur n'importe quel cluster Elasticsearch 1.x et décèle tous les problèmes devant être résolus avant la mise à niveau, par exemple de vieux indexes Lucene 3 et des mappings problématiques (voir « La grande refonte des mappings ») qui ne fonctionneront plus dans Elasticsearch 2.0.0.

Vous trouverez des instructions pour ce plugin dans le dépôt Migration d'Elasticsearch.

Conclusion

Veuillez télécharger Elasticsearch 2.0.0, testez-le et dites-nous ce que vous en pensez sur Twitter (@elastic) ou dans notre forum. Vous pouvez signaler tout problème sur la page de problèmes de GitHub.