Profit.co scale la recherche et la gestion des logs avec Elasticsearch pour offrir des expériences utilisateur exceptionnelles
Profit.co conçoit des logiciels de gestion des objectifs et des résultats clés (OKR), dont le but est d'aider les responsables à établir des mesures de progrès et à en suivre l'évolution. Accompagnant aussi bien des start-ups que des entreprises du Fortune 500, Profit.co propose une plateforme avec une vue originale pour gérer les objectifs, les ressources et les performances d'une entreprise, afin que les clients puissent atteindre les résultats escomptés.
Comment Profit.com a-t-elle augmenté la productivité de ses clients tout en proposant des fonctionnalités pour booster l'implication ? L'entreprise était à la recherche d'une solution de recherche full-text capable de scaler. C'est pourquoi elle s'est tournée vers Elasticsearch, le moteur puissant auquel les produits et solutions Elastic sont adossés. Profit.co a ainsi pu optimiser son expérience de recherche. Suite à ce premier succès, l'équipe de Profit.co a décidé de migrer la gestion centralisée de ses logs sur Elasticsearch.
Aujourd'hui, Profit.co se sert d'Elasticsearch pour créer des expériences de recherche positives et rationaliser la gestion des logs, tout en optimisant continuellement ses performances afin de répondre aux besoins des utilisateurs. Découvrez comment Elastic a aidé Profit.co à relever les défis rencontrés.
Elasticsearch est un produit incroyable. D'autres équipes de mon domaine utilisent d'autres produits, comme MongoDB, etc. Mais la conception d'Elastic Platform, ses fonctionnalités, les API et les intégrations qu'elle permet de prendre en charge en font un outil vraiment exceptionnel.
Bastin Gerald, PDG de Profit.co
La stagnation de Postgres
Au départ, Profit.co a testé différentes solutions. "Nous avons commencé avec MySQL", déclare Kumar Devarakonda, vice-président et responsable de l'ingénierie chez Profit.co. "Puis, nous sommes passés à Postgres, car il présentait des fonctionnalités supplémentaires par rapport à MySQL."
Mais l'inconvénient de Postgres, c'est qu'il avait des difficultés à scaler. Or, les utilisateurs de Profit.co avaient besoin de faire des recherches sur plusieurs champs, d'obtenir des résultats rapidement et de trier ces résultats selon leur pertinence. Profit.co a réalisé que, pour répondre à leurs attentes, il lui fallait une solution de recherche full-text. "Postgres était associé à chaque tableau que nous souhaitions interroger", explique Kumar Devarakonda. "Lorsque nous stockions un objet, nous devions capturer l'ensemble des données dans tous les domaines, puis les stocker dans une colonne unique. Mais c'était un processus très lent. Et qui ne donnait pas de résultats précis, notamment le degré de pertinence."
Au fur et à mesure de ses recherches, l'équipe de Profit.co s'est rendu compte que la plupart des solutions étaient très lentes et n'offraient pas la précision requise par les clients. Puis, elle a découvert Elasticsearch, et c'est en 2014 qu'elle a effectué le changement.
"Elastic nous a aidés pour la scalabilité des applications", indique Kumar Devarakonda. La transition vers Elastic s'est faite lentement. "Nous avons commencé avec la recherche full-text, en maintenant un double stockage dans Postgres et dans Elasticsearch", poursuit-il. "Nous stockions l'enregistrement dans Postgres et transmettions les données à Elasticsearch également.
Je me suis alors demandé s'il était vraiment nécessaire de maintenir un double stockage et si nous ne pourrions pas directement passer à Elasticsearch." En stockant toutes les données dans Elasticsearch, Profit.co a pu gagner en rapidité et rationaliser l'expérience non seulement pour les utilisateurs, mais aussi pour les équipes internes.
Un besoin de rapidité
La vitesse a été la principale raison pour laquelle Profit.co a effectué le changement. Mais, comme le concède Kumar Devarakonda : "nous avons commencé à chercher une solution qui pourrait nous permettre d'attribuer un score de pertinence. Sans Elastic, nous aurions encore des clients frustrés, passant du temps à rechercher les informations dont ils ont besoin. Et ces informations n'auraient même pas été précises."
La lenteur de Postgres avait affecté toutes les ressources le long de la chaîne. Les utilisateurs passaient leur temps à attendre. Les équipes d'ingénierie subissaient des retards dès qu'elles essayaient de mettre en œuvre des changements. Mais avec Elastic, tout s'est accéléré. Jusque-là, une requête de recherche prenait généralement plus de 10 secondes avec une base de données traditionnelle. Avec Elastic, les requêtes complexes (impliquant une recherche sur plusieurs champs) renvoyaient des résultats en moins de 100 millisecondes.
Une incapacité à scaler
En plus d'améliorer les expériences de recherche, la transition vers Elastic a permis à Profit.co de scaler. "Auparavant, les limites que nous imposait Postgres au niveau du nombre de connexions possibles nous compliquaient la tâche", indique Kumar Devarakonda. "Grâce à la scalabilité horizontale d'Elastic, le nombre de clients à pouvoir se connecter en même temps n'est pas limité. Tout dépend de la disponibilité des ressources de l'infrastructure, non pas d'un nombre prédéfini de connexions."
Désormais, Profit.co peut avoir de nombreux clusters sans avoir à se soucier de répartir les utilisateurs entre ces clusters. Elastic permet également de prendre en charge les champs imbriqués. Profit.co peut stocker toutes les données qui se trouvent dans un document, même un document volumineux. Pour les équipes de Kumar Devarakonda, c'est un avantage, car elles n'ont pas besoin d'analyser les données avant de les stocker. Cela leur permet de gagner un temps précieux au niveau du développement et de pouvoir se consacrer à des tâches à valeur ajoutée.
Pourquoi choisir Elastic ?
Outre la rapidité et la scalabilité que proposent les solutions Elastic, pourquoi Profit.co les a choisies ? Kumar Devarakonda avait besoin d'une certaine fonctionnalité afin que ses équipes puissent briller. "Le fait de pouvoir exécuter des requêtes sur des champs imbriqués est aussi l'une des raisons pour lesquelles nous avons choisi Elastic", indique-t-il. "Ainsi que la prise en charge des intégrations, qui nous a fait définitivement sauté le pas."
Pour les équipes, la transition s'est faite en toute simplicité. "Les solutions Elastic sont si faciles à prendre en main pour les développeurs", explique Kumar Devarakonda. "Nous pouvons être opérationnels très rapidement." En outre, Elastic offre une sécurité suffisante qui va au-delà des attentes en la matière. Grâce à Elastic, Kumar Devarakonda exerce un contrôle strict sur le codage, ce qui n'était pas le cas lorsqu'il utilisait le SQL normal. "Nous n'avons pas besoin d'écrire de requêtes personnalisées", poursuit-il. "Tout est disponible comme dans une API, ce qui réduit le nombre d'erreurs lors du codage." Et qui dit moins d'erreurs, dit de meilleures fonctionnalités et une expérience utilisateur plus positive.
Gestion centralisée des logs
Profit.co a commencé à utiliser Elastic pour la recherche et s'est vite rendu compte des autres avantages que les solutions pourraient offrir. La combinaison Elastic + Google Cloud l'a aidée à rationaliser sa gestion des logs, par exemple. "Avant de passer à Google Cloud, nous cherchions à avoir un système de logging centralisé", déclare Kumar Devarakonda. "Avec Elastic, nous pouvons nous servir d'un script automatisé et repérer les fichiers log nécessaires pour le débogage, etc., le tout avec simplicité."
Bastin Gerald, PDG et fondateur de Profit.co, a constaté également une immense valeur. "Tout ce qui entre et qui sort est consigné dans une base de données dans un cluster Elastic dédié que nous avons l'habitude de consulter", indique-t-il. Aujourd'hui, les équipes peuvent utiliser Elastic pour identifier les pertes de données, prévenir les risques, et bien d'autres aspects, sur près de 2 millions de requêtes par jour. Avec Elasticsearch, les équipes de Profit.co économisent environ 90 % du coût total. Les logs ingérés à partir des nœuds des applications et des microservices représentent seulement 5 Go de stockage par jour.
"Dans le cadre du monitoring, nous consignons toutes les requêtes et réponses qui entrent et qui sortent dans un cluster dédié", explique Bastin Gerald. "Si les performances d'un client spécifique sont mauvaises ou que le volume des données générées est particulièrement volumineux, nous analysons les requêtes qui y sont associées." En ayant une vue générale sur les performances, il est possible de gérer les points problématiques rencontrés par les clients avant qu'ils ne prennent des proportions plus graves.
L'avenir de Profit.co
Profit.co accompagne actuellement près de 500 clients. Or, sa clientèle continue à prendre de l'essor, et donc, les solutions Elastic aussi.
Nous adorons Elastic. Nous utilisons Elasticsearch depuis huit ans. Le produit, le développement, le déploiement... Pour moi, Elastic fait partie de nous.
Bastin Gerald, PDG de Profit.co
Envie d'en savoir plus sur Elasticsearch pour le déployer sur votre cloud préféré ? Lancez-vous avec un essai gratuit de 14 jours. Inscrivez-vous dès aujourd'hui.