Fondée dans la Silicon Valley en 2012 par les Français Benoît Dageville et Thierry Cruanes, bientôt rejoints par Marcin Zukowski, la start-up Snowflake a très vite rencontré ses utilisateurs avec sa technologie de datawarehouse conçue nativement pour le cloud. Cette solution hébergée sur l’infrastructure d’AWS - et bientôt d’Azure - réunit déjà un millier de clients. Pour alimenter son développement rapide, la société vient de réussir un tour de table record de 263 millions de dollars (série E) conduit par Iconiq Capital, Altimeter Capital et Sequoia Capital. Les deux premiers ont déjà investi 79 M$ en juin 2015 et 105 M$ en septembre 2017. Au total, Snowflake a levé 473 M$ depuis sa création il y a 5 ans et demi, en incluant Capital One, Sutter Hill et Redpoint parmi ses investisseurs. Désormais valorisée 1,5 Md$, elle décroche son statut de licorne. Il est vrai que son équipe de développeurs a des arguments plutôt convaincants. Ses deux co-fondateurs sont issus des rangs de la R&D californienne d’Oracle où ils évoluaient depuis 10 à 15 ans, et ils connaissent particulièrement bien l’univers des bases de données. Aux côtés de Benoît Dageville, CTO, et Thierry Cruanes, Architecte, la société est maintenant dirigée par Bob Muglia, ancien dirigeant de Microsoft (division Serveurs & outils) et de Juniper (activité logiciels).

Il y a quelques jours, nous avons pu rencontrer Benoît Dageville, de passage à Paris. Ce spécialiste de la parallélisation des traitements et requêtes SQL a notamment travaillé sur les versions « manageability » d’Oracle destinées à faciliter l’utilisation de la base de données. Il est revenu pour nous sur la genèse de Snowflake. Ce projet de datawarehouse dans le cloud a bénéficié de la convergence des technologies qui prenaient leur essor. Avec l’arrivée des big data, d’Hadoop et MapReduce, les DSI avaient commencé à faire des traitements parallèles et à créer des data lakes. « On met les données quelque part et on pense ensuite à ce qu’on va en faire. C’est exactement l’inverse du datawarehouse qui lui est très cher, très structuré et dans lequel on ne peut pas mettre toutes les données ». Mais Hadoop, c’était aussi très compliqué, pointe le CTO de Snowflake. « Il y avait donc une régression énorme par rapport à notre simplification, c’était l’inverse de la démocratisation et de l’accès facile aux données. Et puis, c’était du batch, il n’y avait plus de temps réel ».

 « Le cloud, des attributs fantastiques pour le décisionnel »

Dans le même temps, le cloud révélait « des attributs fantastiques » pour un système décisionnel. En quelques mots, Benoît Dageville les rappelle. Il n’y a pas de limite de ressources, en quelques minutes, la base de données peut récupérer une centaine de serveurs parallèles pour l’ensemble des workloads qu’elle doit exécuter. « Lorsqu’ils sont parallélisés, les systèmes décisionnels analytiques peuvent aller 100 fois plus vite. Ensuite, on rend les serveurs à Amazon. On peut aller beaucoup plus vite pour le même prix, payer à l’utilisation et cela s’applique aussi au stockage des données avec le mode objets qui permet de ne payer vraiment que ce qu’on stocke », résume Benoît Dageville. « Avec le blob, on stocke à des coûts ridicules, 30 dollars le To par mois ». En mode compressé, c'est encore plus important et les données sont automatiquement répliquées à travers des datacenters différents, ce qui permet de les conserver de manière très durable avec un risque infime de les perdre. « C’est ce stockage-là qu’il nous fallait ». Dans son ensemble, le cloud présentait de nombreux avantages comparé aux architectures traditionnelles qui n’étaient pas du tout élastiques.

« J’étais passionné par la facilité d’utilisation et je voulais que la barrière d’entrée soit la plus basse possible », ajoute Benoît Dageville. Fournir la solution comme un service permettait aussi de ne pas avoir à supporter différentes architectures, différentes releases et offrir des capacités bien supérieures en terme de haute disponibilité, avec plusieurs datacenters, sans compter les tâches de management et la sécurisation des données, chiffrées par défaut dans Snowflake. « Nous voulions en outre un système qui soit extrêmement bons sur les workloads ad hoc, que ce soit performant aussi pour ce qui n’est pas prévu », explique le CTO en rappelant que sur un SGBDR comme Oracle, il faut vraiment être un expert pour optimiser les workloads, même les gros clients n’ont pas d’expertise là-dessus, selon lui.  

Multi-clusters et micro-partitioning 

Benoît Dageville et Thierry Cruanes ont commencé les développements sur Snowflake en 2012, « enfermés dans un appartement » (pas question de garage pour eux). « Il fallait que l’on écrive ce moteur de base de données en repartant de zéro. Nous sommes partis d’une page blanche et y avons passé 5 mois à deux ». La première infrastructure cloud cible fut AWS. « Nous avons fait très attention à ne pas avoir trop de dépendances pour pouvoir aller sur un autre cloud, nous savions que nous allions porter la solution. Nous serons bientôt sur Azure ». Snowflake sépare le compute et le stockage de données. Ces dernières sont stockées sur le blob et on peut créer autant de clusters que l’on veut pour charger et exécuter les requêtes. « Dans un datawarehouse, il y a plusieurs types de workloads. Il faut une gestion des ressources pour que ces différentes charges de travail puissent s’exécuter sur le même cluster. Notre approche, c’est de créer autant de clusters que l’on veut et d’accéder aux données via ces clusters. Cela permet d’isoler les workloads », explique Benoît Dageville. Les ressources peuvent être utilisées pour quelques minutes. C’est l’un des points forts de Snowflake. 

L’autre point fort de l’offre, c’est le recours au micro-partitioning. « On partitionne automatiquement en très petits partitions, par défaut, on indexe toutes les colonnes dans la micro-partition », décrit le co-fondateur de la start-up en poursuivant. Il met aussi l’accent sur un autre point : l’optimizer qui utilise un modèle de coût basé sur les statistiques sur les données. « De nombreuses optimisations sont faites à l’exécution et pas dans l’optimizer. Les ressources allouées à la requête sont complètement dynamiques », souligne le CTO. « Dès le début, on s’est dit qu’il fallait des tables qui puissent faire 10 Po, ce qui est impossible avec les bases relationnelles traditionnelles. Nous pouvons avoir des millions de partitions sans problème ». La base de données est orientée colonnes pour une meilleure compression et pour limiter les I/O. « On peut utiliser des techniques de vectorisation au niveau du CPU, ça permet d’être beaucoup plus rapide ». Quant à l’utilisation du stockage objet, moins rapide. « Certes, on fait du blob, mais on travaille avec du cache », pointe le CTO. « On crée les attributs Json dans des colonnes, on les utilise comme des tables structurées. On peut accéder très vite à des petaoctets de données. »

Une concurrence basée sur du DW traditionnel ou plus chère

Même si sa conception native pour le cloud le met véritablement à part, Snowflake n’est pas le seul datawarehouse disponible dans le cloud. Sur l’infrastructure d’AWS où il s’est installé, on trouve aussi l’offre maison, Amazon Redshift, issu du rachat de Paraccel. Il présente une architecture MPP shared nothing « très traditionnelle qui n’a aucun avantage à travailler dans le cloud », estime le CTO de Snowflake. Du côté de Google, on trouve Big Query comme concurrent potentiel. Mais l’architecture utilisée rend la solution très chère, estime Benoît Dageville en ajoutant qu’il faut préréserver les capacités. Au départ, Google ne voulait pas de datawarehouse, qui passait pour une technologie du passé. Ils avaient donc enlevé de nombreux attributs du datawarehouse classique. Concernant Azure et Microsoft, le co-fondateur considère que la technologie de DW a encore du chemin à faire. Ils utilisent du NAS, l’équivalent de EBS sur Azure et n’ont pas de technologie de distribution et l’architecture est très traditionnelle. 

Les premiers clients de Snowflake sont venus du secteur Adtech (publicité sur Internet) qui doivent gérer d’énormes volumes de données semi-structurées. Ils avaient des solutions Hadoop et des datawarehouses avec des besoins de performances et pas de temps réel. « Nous avons vendu Snowflake comme un système qui permettait de combiner ces deux mondes », relate Benoît Dageville. « On peut interroger ses données sans schéma, sans les avoir converties pour les SGBDR. Les traitements étaient 1000 fois plus rapides qu’avec leurs systèmes Hadoop ». Un éditeur comme Adobe utilise la solution. « Nous avons démarré très fort dans le adtech à cause de cela, puis dans le gaming ».

Une édition pour des déploiements privés dédiés 

Le datawarehouse cloud de Snowflake a depuis été choisi dans de nombreux autres secteurs d’activité. Des groupes comme Logitech, Capital One (client et investisseur de la start-up), Sony Pictures, Hotel Tonight ou, encore Deliveroo. Ce dernier est passé de Redshift à Snowflake, le PDG allant jusqu’à évoquer la solution lors de son intervention sur une conférence AWS. De nombreuses migrations Hadoop se font vers Snowflake qui voit également venir des projets de consolidation. « Mais de plus en plus, on fait des migrations de très gros comptes grâce à notre sécurité », confirment les dirigeants de la start-up co-fondée par Benoît Dageville. La solution est disponible en plusieurs éditions, dont une - VPS Virtual Private - pour faire des déploiements privés dédiés. 

Concernant les développements en cours, l’éditeur travaille beaucoup sur la migration multicloud, indique son CTO. L’offre a d’abord été disponible dans la région AWS West, puis US East. Elle est maintenant accessible dans le datacenter de Francfort. L'accès à Dublin sera ouvert en février. Pour AWS Paris, rien n’est encore décidé, « on va regarder », nous a répondu Benoît Dageville. Sa société a récemment ouvert des bureaux en France où sa solution a déjà remporté quatre clients. Ivan Smets en est le directeur commercial pour l'Europe du Sud. Une cinquantaine de clients européens sont gérés depuis le Royaume-Uni, parmi lesquels Deliveroo. La disponibilité du datawarehouse dans le cloud de Microsoft Azure devrait se faire au 1er semestre. Des échanges de données pourront par ailleurs se faire avec Google Cloud Platform.

Le « data sharehouse », énorme accélérateur à effet Facebook

Pour conclure, Benoît Dageville a abordé un autre aspect multicloud important, celui de l’échange de données entre clouds. « Le data sharing », qui consiste à partager des données de manière immédiate. On crée une vue sécurisée, on choisit les données à exporter (un sous-ensemble des lignes d’une table) qui vont être partagées avec un autre client de Snowflake. « Il est très difficile d’échanger des données entre entreprises et surtout pas en temps réel », pointe le CTO. « Cela permettra d’avoir des synergies autour des données ». Il évoque ainsi un autre produit, le data sharehouse. « Nous ne sommes qu’au début de cette vague », estime-t-il. Le mécanisme correspond à une sorte de publier/s’abonner. Une entreprise expose des données pour une autre entreprise qui pourra les importer. « Elles vont apparaître comme une base de données dans vos données », explique le cofondateur. « Cela a des ramifications incroyables. C’est disponible depuis plusieurs mois, ça va être un énorme accélérateur, cela devrait avoir un effet Facebook », assure-t-il. « C’est le network des données et c’est notre architecture qui permet cela ».

Un clin d’oeil en passant pour conclure, l’extension des fichiers Snowflake, libellée fdn, fait référence aux mots « Flocon de neige ».