adzicnatasa - stock.adobe.com

Container Services : Snowflake devient une « Data PaaS »

En lançant Container Services, Snowflake se prépare à donner accès au moteur d’exécution de Native Apps ainsi que de Snowpark, à savoir… des clusters Kubernetes entièrement managés. Ils serviront à exécuter des modèles de machine learning, des transformations de données et des applications au sein d’un compte Snowflake.

Lors du Snowflake Summit l’année dernière, l’éditeur avait présenté les Snowflake Native Applications. Ces Native Apps étaient alors exposées comme des moyens d’encapsuler des objets Snowflake (des tables, des fonctions et des procédures stockées par exemple) pour les publier en tant qu’applications sur la marketplace du « Data Cloud ». Selon l’éditeur, les Native Apps permettent aux utilisateurs autorisés d’accéder de manière sécurisée aux données. Pour le moment, Snowflake annonce accueillir environ 40 applications « live » en provenance de 25 organisations sur sa place de marché et chez des clients triés sur le volet.

C’est sur cette proposition que Databricks tente de s’aligner avec ses Lakehouse Apps. Alors que le framework de développement Native Apps vient d’être lancé en préversion publique sur AWS, Snowflake pousse déjà sa proposition un cran plus loin.

C’est tout l’objet de Snowpark Container Services, présenté en préversion privée lors de Snowflake Summit 2023.

Pour rappel, Snowpark est, à l’origine, une librairie permettant d’exécuter des fonctions Python, Scala et Java en les convertissant en instructions SQL, le langage de requêtes par défaut du data warehouse cloud (même si l’entreprise préfère la dénomination « Data Cloud »).

Justement, ces fonctions sont exécutées dans des environnements sandbox côté serveur. Jusqu’alors, Snowpark est utilisé comme la base des Native Apps et par les data engineers souhaitant exécuter des charges de travail de transformation de données au plus proche de leur instance Snowflake.

L’une des grandes annonces l’année dernière n’était autre que la possibilité d’effectuer des traitements de données écrits en Python à travers Snowpark. L’éditeur poursuit ses efforts en commençant par la prise en charge de Python 3.9 et 3.10, en intégrant plus profondément les fonctions de Panda DataFrames, en ajoutant des librairies en provenance d’Anaconda, en permettant, entre autres, le traitement de données non structurées depuis sa plateforme.

Des clusters Kubernetes intégrés à Snowflake

Avec Snowpark Container Services, il donne accès à un « runtime supplémentaire ». Sous le capot, il automatise le déploiement de Kubernetes et permet aux entreprises d’enregistrer et de déployer des images de conteneurs Docker conformes au standard OCI (Open Container Initiative) cantonnés à leur compte. Les entreprises devront gérer elles-mêmes ces images et pourront y exécuter des programmes dans le langage et avec les frameworks de leur choix « au-delà de Scala, Python et Java » (par exemple, R, C++, etc.). C’est aussi un moyen pour les clients de déployer dans le périmètre de leur compte Snowflake les Native Apps accessibles depuis la marketplace.

Snowflake permettra de configurer les capacités de calcul nécessaire à l’exécution des applications. Il précise que les ressources de calcul sont indépendantes de celles allouées au « Data Cloud », mais qu’elles seront également optimisées « en fonction des besoins des clients ».

Dans la même veine, Snowflake a annoncé un « partenariat stratégique » avec Nvidia pour effectuer des traitements sur des processeurs graphiques (GPU). L’éditeur est clair : Snowpark Container Services est un moyen de déployer des modèles de deep learning et de machine learning. Le fournisseur proposera des instances de plusieurs tailles liées au CPU, la mémoire vive ou au GPU (dans un premier temps, les instances les mieux dotées disposeront jusqu’à 80 Go de VRAM, selon un porte-parole de Snowflake). Pour le reste, les conteneurs pourront tirer des flux de données depuis l’espace de stockage « optimisé par Snowflake », à savoir le stockage du data warehouse lui-même ou depuis les services de stockage objet de type S3.

Évidemment, Snowflake rattache cette offre aux wagons de l’IA générative. Les instances Container Services pourront accueillir des grands modèles de langage. « Nous avons déjà effectué des tests avec des modèles de quelques dizaines de milliards de paramètres », avance Torsten Grabs, directeur senior de la gestion produit chez Snowflake, lors d’un point de presse. « Nous adapterons les capacités de calcul au besoin des clients, mais la taille des modèles ne doit pas être limitante ».

En la matière, Snowflake mentionne les modèles de Reka AI, un éditeur de modèles propriétaires pouvant être réentraînés sur des données privées pour accomplir des tâches spécifiques.

L’objet du partenariat avec Nvidia concerne, par ailleurs, le déploiement du framework NeMo, une boîte à outils pour concevoir des modèles et des applications de Speech to Text, de questions-réponses, mais également pour contrôler et filtrer les résultats des algorithmes d’IA générative (Guardrails). Snowpark Container Services permettra de déployer la plateforme des modules de la plateforme Nvidia AI Enterprise.

D’une certaine manière, Snowflake s’est fait dépasser par les événements.

« L’année dernière, nous avons présenté notre vision pour faire de Snowflake une plateforme applicative », rappelle Christian Kleinerman, Senior Vice-Président Produit chez Snowflake. « Dès lors que nous avons intégré les runtimes Python et Java, les clients et les partenaires sont revenus vers nous en nous réclamant la prise en charge de C++, C#, Golang, etc », ajoute-t-il. « Container Services nous permet de répondre à cette demande, de déployer des grands modèles de langage, mais pas uniquement, loin de là ».

En ce sens, Snowflake insiste sur le fait que ses clients peuvent migrer des applications existantes sur le runtime Snowpark Container Services. Selon Frank Slootman, directeur général de Snowflake, l’introduction de Python a déjà permis aux clients de l’éditeur de remplacer des workloads Apache Spark et de les exécuter efficacement à « un prix compétitif » dans les environnements Snowflake. Voilà un sujet qui peut intéresser Novartis (et une pique indirecte en direction de Databricks).

Un pont entre les plateformes de data science et le « Data Cloud »

Snowkpark Container Services accueillera pareillement les charges de travail déployées à l’aide des solutions de certains éditeurs tiers.

Dans le cadre de l’annonce de Container Services, Snowflake a annoncé des partenariats avec 21 partenaires dans plusieurs domaines.

Par exemple, il sera possible de déployer les applications d’Amplitude, de Goldman Sachs, de phData, de Fosfor ou de SailPoint. Pour les data engineers qui utilisaient déjà Airflow, un outil open source d’orchestration de flux de données, pourront (s’ils le souhaitent) s’appuyer sur la version managée par Astronomer.

On retrouve également quelques grands noms de la data science. Outre Nvidia, Dataiku, Alteryx, H20.AI et SAS seront partenaires au lancement de Container Services.

En clair, Snowflake n’est pas perçu comme une menace pour des éditeurs de solutions analytiques.

« Snowflake est un très bon partenaire », indiquait récemment Bryan Harris, CTO de SAS auprès du MagIT. « Ils [les dirigeants de Snowflake] nous considèrent comme les porteurs de capacités intéressantes pour servir leur stratégie “data” ».

« Ils sont honnêtes concernant les problèmes qu’ils veulent résoudre. Ils ne cherchent pas à recréer des solutions en s’inspirant de vos technologies, comme les fournisseurs cloud ont tendance à faire », poursuit-il.

Pour autant, il ne s’agit pas de concurrencer les fournisseurs cloud. D’ailleurs, Snowflake a annoncé un partenariat avec Microsoft pour non seulement intégrer les API d’Azure OpenAI, les services Azure ML, mais aussi pour se connecter à la plateforme low-code/no-code Power Apps, Azure Data Factory (un service ETL), Purview (un data catalog), ou encore Power BI.

Selon l’image suggérée par le CTO de SAS, c’est un écosystème vivant.

« C’est un éditeur indépendant qui vit dans l’écosystème des trois grands fournisseurs cloud. Nous sommes de la même trempe [que Snowflake] », juge Bryan Harris.

Snowflake se penche sur les notions de DevOps, DataOps et de MLOps

L’année dernière, l’éditeur vantait les bénéfices de l’acquisition de Streamlit, une bibliothèque pour déployer simplement des modules écrits en Python par-dessus le data warehouse cloud. La librairie entrera en préversion publique « bientôt ». Si l’éditeur n’abandonne pas l’idée de « démocratiser » le traitement de données à un plus grand nombre d’utilisateurs, les annonces effectuées lors de Snowflake Summit 2023 intiment un meilleur contrôle de la chaîne CI/CD.

Qui dit images de conteneurs, applications et modèles de machine learning, dit besoin de programmabilité. En la matière, Snowflake souhaite proposer des intégrations et des outils au service des pratiques DevOps, de data engineering et de MLOps.

Ainsi, Snowflake propose en préversion privée un « nouveau » CLI (et non SnowSQL), prépare une intégration avec les dépôts Git (sans préciser si GitHub, GitLab et Bitbucket seront de la partie), la possibilité d’effectuer des tests locaux, de récupérer les logs et les traces en provenance UDF et des procédures, ou encore de recevoir des notifications par mail.

En matière de data engineering, l’éditeur compte toujours sur la feuille de route les tables dynamiques (ex-Materialized Views, un système de pipelines permettant de préparer des vues matérialisées de manière déclarative en SQL), davantage de connecteurs, tandis que la disponibilité générale de Snowpipe Streaming, l’outil d’ingestion des fichiers hébergés sur un service de stockage objet, est imminente.

Enfin, Snowpark accueillera un registre de modèles et une API pour les servir. « Nous voulons simplifier le déploiement des modèles d’IA pour nos clients », affirme Christian Kleinerman.

Comme l’année dernière et l’année précédente, Snowflake présente une feuille de route sur un an et demi à deux ans. La très grande majorité de ces fonctions sont en préversions privées ou publiques.

« Pourquoi mettons-nous du temps à sortir les fonctionnalités des préversions ? Parce qu’il faut en assurer la sécurité et la gouvernance », justifie Frank Slootman. Reste à voir si cette approche unifiée de la gestion des projets de traitements de données prendra auprès des clients.

Pour approfondir sur Intelligence Artificielle et Data Science