Elasticsearch dans une application native cloud
Conseil
Ce contenu est un extrait du livre électronique, Cloud Native .NET apps for Azure (Architecture d’applications .NET natives cloud pour Azure), disponible dans la documentation .NET ou au format PDF à télécharger gratuitement pour le lire hors connexion.
Elasticsearch est un système de recherche et d’analytique distribué qui permet des fonctionnalités de recherche complexes sur différents types de données. Il est open source et largement populaire. Tenez compte de la façon dont les entreprises suivantes intègrent Elasticsearch à leur application :
- Wikipédia pour la recherche en texte intégral et incrémentiel (recherche à mesure que vous tapez).
- GitHub pour indexer et exposer plus de 8 millions de référentiels de code.
- Docker pour rendre sa bibliothèque de conteneurs détectable.
Elasticsearch est basé sur le moteur de recherche en texte intégral Apache Lucene. Lucene fournit l’indexation et l’interrogation de documents à hautes performances. Il indexe les données avec un schéma d’indexation inversé ; au lieu de mapper des pages à des mots clés, il mappe les mots clés aux pages comme un glossaire à la fin d’un livre. Lucene dispose de fonctionnalités de syntaxe de requête puissantes et peut interroger des données par :
- Terme (mot complet)
- Préfixe (commence par le mot)
- Caractère générique (à l’aide de filtres « * » ou « ? »)
- Phrase (séquence de texte dans un document)
- Valeur booléenne (recherches complexes combinant des requêtes)
Là où Lucene fournit la structure de bas niveau pour la recherche, Elasticsearch propose le serveur qui se trouve au-dessus de Lucene. Elasticsearch ajoute des fonctionnalités de niveau supérieur pour simplifier l’utilisation de Lucene, y compris une API RESTful pour accéder aux fonctionnalités d’indexation et de recherche de Lucene. Il fournit également une infrastructure distribuée capable d’une extensibilité massive, d’une tolérance d’erreur et d’une haute disponibilité.
Pour les applications natives cloud plus volumineuses avec des exigences de recherche complexes, Elasticsearch est disponible en tant que service managé dans Azure. La Place de marché Microsoft Azure propose des modèles préconfigurés que les développeurs peuvent utiliser pour déployer un cluster Elasticsearch sur Azure.
À partir de la Place de marché Microsoft Azure, les développeurs peuvent utiliser des modèles préconfigurés conçus pour déployer rapidement un cluster Elasticsearch sur Azure. À l’aide de l’offre gérée par Azure, vous pouvez déployer jusqu’à 50 nœuds de données, 20 nœuds de coordination et trois nœuds maîtres dédiés.
Résumé
Ce chapitre a présenté un aperçu détaillé des données dans les systèmes natifs cloud. Nous avons commencé par contraster le stockage de données dans les applications monolithiques avec des modèles de stockage de données dans des systèmes natifs cloud. Nous avons examiné les modèles de données implémentés dans les systèmes natifs cloud, notamment les requêtes inter-services, les transactions distribuées et les modèles pour traiter les systèmes à volume élevé. Nous avons contrasté SQL avec les données NoSQL. Nous avons examiné les options de stockage de données disponibles dans Azure, notamment les options centrées sur Microsoft et open source. Enfin, nous avons discuté de la mise en cache et d’Elasticsearch dans une application native cloud.
References
Modèle de séparation des responsabilités en matière de commande et de requête (CQRS)
Tout ce que vous avez vraiment besoin de savoir sur les bases de données open source (blog IBM)
Modèles de saga | Comment implémenter des transactions commerciales à l’aide de microservices
Getting Behind the 9-Ball: Cosmos DB Consistency Levels Explained
Sur les bases de données RDBMS, NoSQL et NewSQL. Entrevue avec John Ryan
DASH : Quatre propriétés des bases de données natives Kubernetes
Elasticsearch: The Definitive Guide (Elasticsearch : le guide de référence)