Dans la grande famille des moteurs de recherche (Elasticsearch, Algolia, Typesense, Meilisearch ou encore Solr), très peu d’acteurs français occupent le devant de la scène : Exalead est passé sous la coupe de Dassault et Qwant n’a jamais été capable de boxer dans cette catégorie. Un challenger baptisé Quickwit - installé à San Francisco et fondé par des Français - entend toutefois changer la donne sur le marché des moteurs de recherche et d’indexation à destination des entreprises exploitants des big data – les logs notamment - dans un simple bucket S3 ou à plus grande échelle avec Kafka ou RedPanda. Créé en 2020 par Adrien Guillo, François Massot et Paul Masurel, Quickwit a été pensé dès l’origine pour les big data. L’histoire a commencé il y a un peu plus de trois ans avec un POC capable de rivaliser avec les Elasticsearch, Splunk et Datadog sur le marché de l’observabilité. Développé avec le langage de programmation Rust, Quickwit utilise le moteur de recherche Tantivy qui, selon François Massot, est le framework de recherche open source le plus rapide disponible. Le cofondateur nous a présenté sa solution lors d'un IT Press Tour à Rome début avril.

L’approche de Quickwit est toutefois très différente de celle d’Elastic avec une architecture séparant le calcul et le stockage. Si la solution est donc avant tout un moteur de recherche, qui s'appuie sur un index inversé, la start-up a également mis en œuvre un système de stockage optimisé pour l’objet. Les données issues de l’indexation sont en effet conservées dans un système de stockage on-premise ou distribué dans le cloud, chez Amazon S3, GFS, Azure, Minio, Garage, IBM, et les clouds chinois) afin d’optimiser les coûts et de gagner en flexibilité. Rappelons que dans Elasticsearch, les données sont stockées dans des segments, qui font ensuite partie de shards (des instances). Ces derniers, ainsi que leurs répliques, sont distribués sur différents nœuds de données physiques dans le cluster. Chaque nœud du cluster est responsable à la fois du calcul et du stockage des données d'index.  

Kafka, Pulsar, Google Pub/Sub supportés

Pour les métadonnées (informations sur les index, les schémas et d'autres détails pertinents), Quickwit utilise un système de stockage distinct, qui s'appuie sur PostgreSQL, Aurora ou une autre base de données similaire. Côté calcul, les nœuds d'indexation sont responsables du traitement et de l'indexation des données entrantes. Ces nœuds ne détiennent pas les données proprement dites, mais effectuent les calculs nécessaires à l'indexation. En complément, les nœuds de recherche traitent les requêtes de recherche et récupèrent les données du stockage de l'index. Comme les nœuds d'indexation, ils sont sans état et ne stockent aucune donnée. Quickwit prend en charge la mise à l'échelle horizontale des nœuds de recherche, ce qui permet d'ajouter ou de supprimer des nœuds en fonction des exigences de la charge de travail. Cette flexibilité contribue à l'évolutivité globale du système.  

Quickwit supporte différentes sources de données : Kafka, Pulsar, Google Pub/Sub ... et propose sa propre API d'ingestion. Il est également possible d'utiliser l'offre avec un datastore sur S3. Les clients ayant déjà leurs données dans Kafka ou RedPanda bénéficient d'une intégration native dans Quickwit, leurs données n'ont pas besoin d'être copiées/répliquées. En ce qui concerne l'interface utilisateur, le choix est assez large avec le support de Jaeger ou Grafana. 

Plus de 200 clients à ce jour

À titre d’exemple, François Massot nous a indiqué qu’un client spécialisé dans les cryptoactifs avait migré d’OpenSearch (fork d'Elastic et de Kibana) vers sa solution et réussi à diviser les coûts du compute par 5 et du stockage par 2, tout en augmentant par 10 ses capacités de rétention. Le cluster mis en service a digéré 40 Po de données, dont 7,5 Po sur S3 sur plus de 500 instances. Pour la feuille de route pour 2024 et au-delà, Quickwit travaille sur la possibilité d'une migration transparente depuis OpenSearch, les requêtes basées sur des tubes de type Splunk SPL et un  moteur de stockage pour les données de séries chronologiques. Signalons pour conclure que Quickwit travaille en direct et avec des partenaires comme les fournisseurs de services cloud. Une version communautaire est disponible via sa distribution open source. La start-up revendique aujourd’hui plus de 200 clients.