Moteur de recherche juridique, Doctrine permet aux professionnels du droit d’explorer la jurisprudence en consultant une base de données de 7 millions de décisions de justice qui donne également accès aux textes de loi et aux commentaires d’arrêts, ainsi qu’à des statistiques sur le contentieux des entreprises et sur les avocats. Lancé début 2016, le site web spécialisé compte à ce jour 2 000 abonnés. Pour renforcer la pertinence des recherches effectuées par ses clients, connaître les fonctionnalités les plus sollicitées et améliorer l’expérience utilisateur, Doctrine analyse les données liées à l’exploitation de son moteur de recherche (basé sur Elasticsearch). Ces données d’usage augmentent rapidement avec la fréquentation croissante du site web et il était devenu trop lent d’effectuer les requêtes sur la base Postgres utilisée dans ce cadre. Dans un blog, Raphaël Champeimont, responsable de l’architecture chez Doctrine, avait eu l'occasion d'expliquer comment passer à l'échelle avec Postgres. A la suite de ce billet, Snowflake entre en contact avec lui pour faire valoir les propres capacités de passage à l'échelle de son datawarehouse cloud, hébergé au choix sur AWS ou Azure (et bientôt GCP). La start-up de documentation juridique décide alors de l’évaluer pour y réaliser ses analyses. Elle y transfère son stock de données d’usage.
« Nous avons fait un PoC en mettant la solution en concurrence avec Amazon Athena », nous a expliqué Raphaël Champeimont, lors d’un entretien sur la conférence Snowflake world summit à Londres, le 3 octobre. L’un des avantages souvent mis en avant dans l’offre de Snowflake est son parti pris de séparer les ressources de stockage des ressources de calcul. C'est aussi ce que permet le service de requête interactif Athena d’AWS qui accepte un stockage important sur S3 avec une puissance de calcul déployée à la demande lors des requêtes. « Nous avons besoin de peu de calcul et de beaucoup de stockage », rappelle le responsable de l'architecture de Doctrine. C’est la raison pour laquelle l’entrepôt de données Redshift n’a pas été évalué, pourtant cité comme concurrent frontal de Snowflake, à l’instar de Big Query de Google, souvent mis en concurrence avec lui. « Avec Redshift, nous aurions dû mettre une puissance de calcul démesurée alors que notre besoin porte sur du stockage et pas sur un nombre colossal de requêtes simultanées », pointe le responsable de l’architecture.
Des requêtes 100 fois plus rapides
Pendant un mois, le flux de données d’utilisation du moteur de recherche Doctrine est branché sur le datawarehouse de Snowflake. Des benchmarks sont réalisés à partir des requêtes types effectuées par les utilisateurs en interne - pour analyser le trafic, savoir quelles sont les décisions de justice les plus consultées, calculer la disponibilité du service, etc. « Nous avons comparé les performances avec celles que nous avions sur notre précédente base de données et, à la fin du mois, sommes arrivés à la conclusion que Snowflake permettait d’exécuter 100 fois plus rapidement ces requêtes et qu’il répondait mieux à notre besoin que l’autre solution testée », nous a exposé Raphaël Champeimont.
Depuis la mise en place du datawarehouse, hébergée sur AWS (à Francfort), la disponibilité du service a pu être entièrement automatisée. « Nous pouvons également faire des analyses sur la fréquence de consultation des décisions alors qu’auparavant, ce genre de requêtes étaient tellement longues, plusieurs heures, que les data scientists en interne trouvaient une autre manière de faire, ou bien s’en passaient », relate le responsable de l’architecture. De manière inattendue, cette possibilité a attiré d’autres utilisateurs en interne. « Au début, la solution ciblait les product managers et les data scientists, mais cela a également intéressé le département financier de faire des analyses, par exemple sur les fonctionnalités les plus utilisées par nos clients. Et nous avons donc pu faire ces statistiques-là de manière très efficace », décrit Raphaël Champeimont. Chez Doctrine, entre 20 et 30 personnes accèdent ainsi en interne à la solution cloud.
Stocker et analyser les logs de performance
En mode non compressé, le volume des données sur lesquelles s’effectuent les requêtes pour analyser l'utilisation du moteur de recherche représente 1 To. « Une fois dans Snowflake, il est fortement compressé, ce qui divise par 10 le stockage utilisé », précise le responsable de l’architecture. Le datawarehouse s’appuie sur le service de stockage objet S3 d’AWS. Un 2ème projet est mené sur des volumes beaucoup plus importants. « Nous avons maintenant déployé Snowflake pour d’autres utilisations, par exemple pour stocker les logs de performances ». Ces derniers génèrent quotidiennement près de 1 To. « Quand un utilisateur fait une recherche, nous stockons précisément les temps de calcul de chacune des sous-opérations de façon à pouvoir ensuite faire des optimisations de performances. Ces données très fines, nous ne les gardions auparavant qu’un mois parce qu’elles étaient beaucoup trop grosses. Alors que nous pouvons maintenant nous permettre de les conserver indéfiniment pour faire ces analyses de performances », souligne M. Champeimont.
Commentaire