MongoDB invite ses clients à se passer d’Elasticsearch
MongoDB organisait son événement MongoDB.local à Paris en janvier 2020. L’occasion pour l’éditeur de présenter les nouveautés de sa dbPaaS Atlas. Le spécialiste du NoSQL complète sa plateforme cloud et met un pied sur les plates-bandes d’Elastic.
Lors du dernier MongoDB World à New York, l’éditeur éponyme avait montré son outil de recherche plein texte dans MongoDB Atlas, la DBPaaS disponible sur GCP, Microsoft Azure et maintenant sur Amazon Web Services. Il l’a représenté lors de son événement MongoDB.local, à Paris.
Basée sur le moteur d’indexation et de recherche open source Apache Lucene, la fonction « full text search » doit faciliter la recherche de données textuelles dans la base de données hébergée dans le cloud.
Lucene permet grâce à un ensemble de commandes et de classes nommées « analyzers » d’indexer ou non des mots, des conjonctions, des caractères spéciaux, des adresses e-mail et des expressions d’une langue donnée dans des collections (ou groupes) de documents. Dans la version nativement embarquée dans MongoDB Atlas, la fonctionnalité intègre 34 langues (français, anglais, russe, polonais, chinois, entre autres).
Searchbeta, une alternative intégrée à Elasticsearch dans MongoDB
Ensuite, les développeurs effectuent des requêtes de mots-clés dans un champ ou en combinent plusieurs avec différents éléments de scoring. Ils peuvent les mettre en place via le langage de requêtes QPS (Query Perser Syntax) de Lucene. Les requêtes passent par le moteur d’agrégation de MongoDB afin d’ajouter des filtres de sélection, de tri, de regroupement. Ici, il est nommé searchBeta.
Les résultats des recherches peuvent être affinés en ajoutant des champs au fur et à mesure. Les index et les données sont ainsi contenus en base, éliminant de la sorte le besoin d’un intermédiaire.
L’intermédiaire en question est habituellement Elasticsearch. Lors de MongoDB.local à Paris, le groupe Adeo, propriétaire de Leroy Merlin, a présenté la manière dont il combine Atlas et Elasticsearch pour indexer et requêter les fiches des produits au sein de ses catalogues Web. C’est ce type de clients que MongoDB cible en premier lieu.
« Nous avons un client constructeur automobile qui est passé sur MongoDB. Il y gère la documentation technique de ses véhicules depuis notre base de données. Il effectue des recherches via Elasticsearch, mais les performances ne sont pas à la hauteur. Avec searchBeta on pourrait porter la majorité des requêtes dans MongoDB sans les réécrire et pratiquement sans remaniement de l’infrastructure », estime Guillaume Meister, principal solutions architect, chez MongoDB.
Rien de surprenant à cela, Apache Lucene est également au cœur du fonctionnement d’Elasticsearch. Pourtant, l’architecte considère que les clients gagneraient à se passer de cet autre projet open source, dont le principal contributeur est Elastic.
« Le problème avec Elasticsearch est que Lucene est séparé de l’infrastructure de base de données. Il y a toute une couche de synchronisation qui utilise un moteur séparé qui oblige à recalculer systématiquement les index. En ayant Lucene intégré dans le nœud MongoDB, nous maîtrisons beaucoup plus efficacement la chaîne [d’indexation et de recherche] », considère Guillaume Meister.
La fonction de recherche plein texte est accessible en version bêta. Elle sera probablement en disponibilité générale au moment du MongoDB World 2020. Elle demande d’avoir installé MongoDB 4.2 sur Atlas, un cluster M30 (8 Go de RAM, 40 Go de stockage, 2vCPUs) et au moins une collection de documents.
« J’ai déjà des clients en production avec la version bêta », affirme le principal solutions architect. Il note toutefois une « contrainte ». « Environ 20 % de nos clients sont passés en 4,2. Beaucoup de clients utilisent encore la version 4.0 ou 3.6 de MongoDB ».
Par ailleurs, le full text search réclame un travail préparatoire conséquent, mais ne permet pas de faire de l’analyse sémantique, à l’inverse du NLP. « Nous simplifions beaucoup les choses, mais nous sommes encore assez loin du traitement du langage naturel », constate Guillaume Meister.
Guillaume MeisterPrincipal solutions architect, MongoDB
Sur les terres d’Elastic
Cette volonté de concurrencer Elastic se confirme avec la mise en avant d’un autre outil disponible depuis MongoDB World : MongoDB Charts. Celui-ci permet de réaliser des tableaux de bord BI. L’outil de visualisation de données s’intègre directement avec le modèle de documents de MongoDB et ne demande donc pas une conversion SQL comme avec les autres outils BI, dont Tableau. La présentation lors de l’événement parisien prouve que MongoDB s’ouvre davantage aux utilisateurs métiers, tout comme Elastic.
En effet, Elastic propose aussi une suite d’outils pour renforcer l’adoption de sa solution. Dernièrement, l’éditeur a présenté Kibana Lens en version bêta, une simplification de Kibana pour les utilisateurs métiers qui n’auraient aucune connaissance technique d’Elasticsearch. Toutefois, les utilisateurs de Charts devront connaître les particularités du data model de MongoDB pour exploiter au mieux les données, selon la documentation disponible.
Ces deux éditeurs ont en commun d’entretenir un rapport amour-haine avec les géants du cloud. Le SGBD open source de MongoDB est émulé par AWS (Document DB) et Microsoft (Cosmos DB). Amazon Web Services propose une version managée d’Elasticsearch sujette à controverse. Elastic et MongoDB ont donc décidé de modifier les licences des projets open source qu’ils régissent.
« Il faut se protéger d’une certaine façon devant la puissance et les pratiques concurrentielles des éditeurs de Microsoft et d’AWS qui reste par ailleurs d’excellents partenaires. Ils sont nos coopétiteurs », défend Guillaume Meister. « Nous avons modifié notre licence en essayant de garder l’esprit open source ».
Guillaume MeisterPrincipal solutions architect, MongoDB
Atlas : MongoDB entoure sa base de données d’une constellation de services
Chez MongoDB, ce changement de licence qui empêche un fournisseur de cloud de proposer une version managée de la database sans payer un droit à moins de distribuer sa plateforme en Opensource également, lui permet de poursuivre son passage à un modèle DBPaaS.
« Aujourd’hui plus de 200 000 instances MongoDB tournent sur Atlas, un an et demi après la disponibilité générale. Ce produit conduit la croissance de la société », assure le principal solutions architect.
Cette adoption serait en partie due à des raisons de coûts. « Nous obtenons de meilleurs tarifs par VM auprès des fournisseurs de cloud que si nos clients passaient en direct avec eux », vante-t-il.
Et pour soutenir cette croissance, l’éditeur entoure sa technologie cœur de services. Atlas Data Lake, un produit concurrent d’AWS Athena, est en cours de finition sur S3. MongoDB envisagerait de faire une annonce concernant le support d'Azure Blob Storage et Google Cloud Storage d’ici l’été 2020, mais rien n'est encore acté, selon les dires de Guillaume Meister.
MongoDB poursuit également la synchronisation de Realm, sa base de données objets mobile, avec Atlas et compte passer hébergeur de données de santé en France cette année. Il a engagé pour cela une RSSI monde en mars 2019, nommée Lena Smart.
L’éditeur adopte aussi une stratégie multicloud. Atlas est disponible en mode PaaS depuis GCP, AWS et Microsoft. Les utilisateurs peuvent en principe migrer de l’un à l’autre ou avoir des instances chez plusieurs fournisseurs.
Toutefois, les clients sur site « restent assez effrayés par le principe du cloud », constate Guillaume Meister. « Il n’est pas rare que j’aie à remplir des questionnaires concernant 200 points de sécurité contractuels. Il y a beaucoup de méfiance, mais malgré tout, il y a de plus en plus de déploiements dans le cloud ».