Ship 26 NYC - Atelier - Déployer une application de production avec v0 et Snowflake
VVercel
Computing/SoftwareInternet Technology
Transcript
00:00:00Bonjour à tous, bienvenue à cet atelier sur l'intégration entre v0 et Snowflake. Il s'agit de l'édition
00:00:12de New York. Nous avons fait la même chose à Londres il y a deux semaines. Cette session s'adresse aux clients
00:00:23Entreprise de Snowflake et aux clients Entreprise de v0. Vous devez disposer de ces deux intégrations pour pouvoir
00:00:31utiliser cette fonctionnalité. Laissez-moi d'abord me présenter : je m'appelle Dom. J'ai rejoint Vercel il y a quatre
00:00:39ans et demi en tant qu'ingénieur. Aujourd'hui, je suis « Forward Deployed Engineer » et j'aide les plus grands
00:00:47clients Entreprise de Vercel à adopter divers frameworks, charges de travail IA et agents, et
00:00:57de manière générale, à adopter la plateforme. Jordan ? Oui, bonjour, je m'appelle Jordan, je travaille chez Snowflake depuis
00:01:05deux ans. Je suis Staff Software Engineer et j'ai travaillé sur la partie Snowflake de cette intégration.
00:01:12Super. Donc, ceci étant dit, laissez-moi... en fait, affichons une diapositive. Ah oui, l'idée principale de
00:01:23cette intégration, c'est que vous développez vos applications dans l'outil v0 de Vercel. C'est un outil de codage agentique par Vercel,
00:01:30avec une expérience développeur de premier ordre, c'est du très bon Next.js. Ensuite, vous allez déployer
00:01:37cette application sur Snowflake. Une fois déployée sur Snowflake, elle s'exécute entièrement au sein de votre compte Snowflake.
00:01:41Elle sera donc déployée avec un rôle Snowflake et utilisera le contrôle d'accès basé sur les rôles (RBAC) de Snowflake,
00:01:47ainsi que votre authentification unique (SSO) le cas échéant... Tout ce que propose Snowflake, et c'est complètement
00:01:53séparé, fonctionnant en toute sécurité dans votre compte. L'idée est d'avoir le meilleur des deux mondes : la
00:02:01qualité d'expérience développeur de Vercel, combinée à toutes les données d'entreprise, la conformité et le RBAC de Snowflake.
00:02:10Un petit avertissement : d'habitude, les ateliers proposent des exercices pratiques que vous pouvez réaliser.
00:02:17Cependant, comme je l'ai dit au début, vous devez être un client Entreprise des deux côtés. Nous allons donc
00:02:22vous montrer une démo, ou plutôt plusieurs démos, puis nous passerons à une session interactive pour demander
00:02:29au public ce que nous pouvons construire dans v0 avec un jeu de données d'exemple Snowflake, et enfin nous passerons
00:02:38à une session de questions-réponses. Ici, je souhaite vous montrer comment, chez Vercel, nous utilisons cette intégration. Il y a
00:02:48en fait trois piliers : le premier, classique, consiste à créer des tableaux de bord interactifs en temps réel, utilisés par les équipes Go-To-Market
00:02:58pour afficher les pipelines, l'utilisation des produits et la vélocité. Ainsi, nul besoin de connaître le SQL, il suffit d'écrire
00:03:07un prompt pour générer votre tableau de bord. C'est le cas d'usage standard, l'utilisation habituelle de cette
00:03:17intégration. D'autres équipes l'utilisent également pour le suivi de l'adoption des produits ou pour de la BI sur mesure
00:03:31via des applications personnalisées, comme nous vous le montrerons plus tard. Et mon cas préféré, que j'ai découvert
00:03:39au sein de mon équipe chez Vercel : vous pouvez créer votre propre tableau de bord personnalisé pour l'ARR et les finances de votre équipe,
00:03:50et affiner l'analyse jusqu'au niveau du SKU ou du service. Par exemple, j'ignorais combien de revenus générait
00:03:57mon équipe, et en travaillant sur cet atelier, j'ai découvert que c'était vraiment très pratique.
00:04:03Exactement. Pour Snowflake, si des clients connaissent Streamlit ici, ils savent que cela sert à faire
00:04:14beaucoup de tableaux de bord. L'un des avantages ici est que l'on peut aller bien au-delà des simples dashboards.
00:04:21Les tableaux de bord sont très bien pris en compte, mais aussi les outils internes. C'est du JavaScript, du Next.js, donc vous pouvez construire
00:04:27tout ce que vous imaginez. Les outillages internes sont parfaits : vous pouvez avoir des tables dans lesquelles vous écrivez, qui
00:04:31interagissent avec d'autres tables existantes. Vous pouvez enrichir vos données, et même créer des applications agentiques.
00:04:38Vous pouvez dialoguer avec vos données, et avec plus de temps, concevoir des applications plus sophistiquées de ce type. Je
00:04:44l'utilise en interne pour récupérer plein d'informations de journaux d'erreurs : voir d'où vient ce log,
00:04:50qui sont les utilisateurs, puis en apprendre plus sur eux. Au fil de mes investigations,
00:04:55je peux ainsi naviguer d'un jeu de données à un autre. C'est vraiment excellent pour ce genre d'usage.
00:05:01Voilà donc l'objectif idéal de ce que vous pouvez accomplir avec cette intégration.
00:05:09Laissez-moi vous expliquer : pour utiliser cette intégration, l'administrateur de votre compte Entreprise
00:05:16sur Snowflake doit activer le runtime d'application Snowflake dans les paramètres,
00:05:23puis activer l'intégration Vercel. Ce sont les deux étapes nécessaires côté Snowflake.
00:05:29Côté Vercel, votre administrateur doit ajouter Snowflake à votre équipe v0 en allant dans Paramètres,
00:05:37puis Intégrations. Pour illustrer : dans v0, vous allez dans les paramètres de votre compte, vous ajoutez des intégrations,
00:05:47vous ajoutez le compte Snowflake à partir de votre identifiant de compte, puis vous vous connectez à vos jeux de données.
00:05:58Voici à quoi cela ressemble par exemple. Je crois que c'est une capture d'écran de Vercel.
00:06:04Et voilà pour la configuration. Passons maintenant à...
00:06:10Je vais créer... vous montrer une démo en commençant par le prompt, et ce sera
00:06:16la première partie : v0 va générer le tableau de bord à partir des données. Ensuite,
00:06:25dans la seconde partie, je vais le déployer sur Snowflake. Il y a d'autres détails que je vous expliquerai
00:06:31pendant que v0 prépare tout ça. Mais juste un petit conseil en passant :
00:06:39en raison des bonnes pratiques Next.js sur les stratégies de rendu côté serveur (SSR),
00:06:47l'application s'exécutera sur le serveur et,
00:06:51en fait, elle sera exécutée au plus près de vos données Snowflake pour des raisons de conformité. Je
00:06:55vous expliquerai cela plus tard. Voilà, c'est aussi simple que ça de déployer sur l'infrastructure
00:07:05Snowflake, oui vous avez bien entendu. v0 va concevoir l'application, puis elle sera déployée
00:07:15et utilisera le compute Snowflake directement à côté des données Snowflake. Si vous êtes un client Entreprise, vous pouvez
00:07:24scanner ce QR code, ou si vous souhaitez une démo personnalisée par nos équipes commerciales, scannez ce QR code
00:07:32et cette fonctionnalité sera activée pour vous. Très bien, passons à la démo pratique.
00:07:47Et bien sûr, je dois me réauthentifier via Okta car nous sommes sur un compte Entreprise, ce que nous allons
00:07:54devoir faire souvent. Le point le plus important ici est le mot-clé « Snowflake ».
00:08:05Vous allez simplement demander dans le prompt d'utiliser Snowflake. Pour accélérer la démo, je vais écrire « utilise le
00:08:14jeu de données Crunchbase », et je veux créer une démo classique : un tableau de bord
00:08:25qui
00:08:29montre les entrées en bourse (IPO) au fil des ans, avec une vue d'ensemble intelligente des IPO. Lissons v0
00:08:39préparer cela.
00:08:48Voilà, cela devrait suffire.
00:08:53Pendant que v0 travaille... d'abord, l'outil va vérifier et interroger le jeu de données Snowflake. Il devrait
00:09:03me demander une autorisation ou me poser des questions de suivi.
00:09:09C'est parti pour Snowflake en direct, très bien.
00:09:18Il pourrait y avoir d'autres étapes. En fait, v0 devrait me demander de me connecter à ma base de données Snowflake,
00:09:31puis il commencera à exécuter les requêtes dont il a besoin selon mon prompt. Je me connecte
00:09:53actuellement à Snowflake, ce qui est le cœur même de cette intégration.
00:10:01Et v0 va appliquer les meilleures pratiques de performance web et les standards Next.js
00:10:09pour les stratégies de rendu et de mise en cache, puis il va me générer
00:10:15un tableau de bord personnalisé en temps réel. Cela va probablement prendre environ trois minutes à générer,
00:10:24donc pendant ce temps, je souhaite vous montrer
00:10:29et vous parler d'un article de blog que nous avons publié en novembre dernier.
00:10:36Nous avions invité quelques entreprises à tester cette intégration, mais je veux insister sur le fait que
00:10:45cette intégration est vraiment géniale. Voici pourquoi :
00:10:51v0 génère le code pour cette couche de gestion des accès qui se connecte à vos données,
00:11:00et il développe l'intégralité de l'application Next.js. Cependant, lors du déploiement, tout sera
00:11:06déployé sur l'infrastructure Snowflake, au plus près des données, au même endroit.
00:11:14La raison principale repose sur les exigences de conformité, de sécurité et de vitesse des entreprises.
00:11:22Vercel gère l'application sur la couche d'authentification, tandis que Snowflake s'occupe du compute et des données.
00:11:29Autre chose importante à vous montrer :
00:11:36lorsque vous créez cette application, vous allez l'utiliser vous-même, mais vous pouvez aussi
00:11:41l'envoyer aux membres de votre équipe ou de votre organisation. Pour afficher l'application, il faut
00:11:49s'authentifier. Ainsi, les données affichées dans l'application
00:11:57correspondent exactement à celles que vous avez le droit de consulter. Lorsque vous partagez le lien
00:12:02de ce tableau de bord, seules les personnes disposant des droits d'accès requis verront ces données.
00:12:11Pour gagner du temps, j'avais déjà déployé cette application. Cela avait pris 3 minutes et 43 secondes auparavant.
00:12:38Je ne sais pas pourquoi cela prend plus de temps actuellement, sûrement l'effet démo !
00:12:44Réinstallation des dépendances...
00:12:49Voici donc l'application qui a été déployée avec exactement le même prompt pour créer le tableau de bord
00:13:00du marché des IPO. Comme vous pouvez le constater, c'est totalement interactif.
00:13:14C'est en train de se terminer.
00:13:27Vous voyez : 50 000 IPO au total, le capital levé, la moyenne, les pics par année... Un très beau tableau de bord est généré. Vous pouvez ensuite affiner le résultat,
00:13:39et lorsque vous le publiez,
00:13:42en visitant le site web, vous devez vous connecter. C'est la gestion des permissions dont je vous parlais.
00:13:50Pour voir les données, je dois m'authentifier pour vérifier mes autorisations Snowflake, et c'est déployé...
00:13:57Je ne sais pas si vous voyez bien l'URL,
00:14:00mais c'est déployé sur « snowflake-compute.app ».
00:14:04Et chaque personne qui y accède aura des droits différents.
00:14:10Exactement.
00:14:16C'était le cas d'usage classique. Jordan va maintenant vous présenter une version
00:14:22bien plus poussée et impressionnante des capacités de v0.
00:14:27Très bien, je vais échanger...
00:14:31mon ordinateur portable.
00:14:37Avez-vous des questions au passage pendant que... Oui ?
00:14:45Un instant, attendons le micro.
00:14:49Si l'on dispose de modèles sémantiques définis dans un outil comme dbt Cloud, existe-t-il un moyen de les lier
00:14:54à ceci, afin que les requêtes générées et les tables disponibles pour les modèles s'articulent
00:15:01autour de notre architecture ?
00:15:05Un modèle sémantique pour concevoir les requêtes SQL, c'est bien ça ? Vous utilisez dbt
00:15:11pour gérer le modèle lui-même ?
00:15:18Pardon ? Ah, la question de nouveau : si nous utilisons dbt
00:15:25pour les différentes couches... Admettons une architecture Medallion dans Snowflake,
00:15:30avec une couche sémantique dbt gérée par exemple via dbt Cloud,
00:15:34y a-t-il un moyen d'intégrer cela ? Oui, par le biais du prompt. On peut orienter
00:15:40le modèle puisque tout est piloté par LLM. Il y a plusieurs couches : la couche v0,
00:15:46puis une couche du côté de Snowflake. Si l'on souhaite optimiser...
00:15:55Il y a plusieurs méthodes, que ce soit par les prompts ou les évaluations pour la mise en production.
00:16:02Ici, c'est du « vibe coding » très rapide : du prompt à l'idée, vous obtenez directement le résultat souhaité.
00:16:08Cela répond-il à votre question ? Je me demandais s'il existait une intégration de données native.
00:16:13Oui, il en existe une native également. Il y a...
00:16:23Dans l'observabilité, vous pouvez suivre tout ce qui se passe sur l'application,
00:16:27tant du côté Snowflake que du côté Vercel.
00:16:33Parfait. Pour cette démo, voici un aperçu brut des données que je vais utiliser.
00:16:41Il s'agit de données sur des centrales électriques. C'est un cas typique : vous exécutez une requête,
00:16:48vous obtenez plein d'informations, la longitude, la latitude de chaque centrale... Bref, ce n'est pas très clair
00:16:55à lire. J'ai donc préparé cette application au préalable pour gagner du temps, en suivant les mêmes étapes
00:17:01que précédemment. On sélectionne un compte. Dans mon cas, j'ai plusieurs comptes Snowflake — les grandes entreprises
00:17:07en ont souvent beaucoup et peuvent choisir le compte à utiliser pour chaque conversation.
00:17:13Rendons cela un peu plus intéressant. Pour l'instant,
00:17:20nous avons quelques résumés et un tableau. Je vais demander : « Ajoute un globe terrestre
00:17:30pour la visualisation ».
00:17:42Comme nous utilisons JavaScript et Next.js, v0 va trouver les bibliothèques adaptées
00:17:50pour afficher un globe 3D. Il analyse les tables existantes,
00:17:55récupère la latitude et la longitude, et génère un visuel bien plus attrayant.
00:18:02Peux-tu expliquer rapidement le jeu de données avant ?
00:18:07Oui, nous avons des données sur les centrales électriques aux États-Unis. C'est une source de données partagée,
00:18:15du type de celles que vous pouvez acquérir sur la Marketplace Snowflake. Elles sont mises
00:18:20à jour périodiquement, ce qui vous permet de les explorer.
00:18:29Il me semble que ce jeu de données est gratuit, n'est-ce pas ? Oui, tout à fait. Vous pouvez acheter
00:18:37des données, mais il y en a aussi beaucoup de gratuites. C'est très pratique,
00:18:41car vous pouvez les croiser avec vos propres données internes pour obtenir des analyses plus poussées.
00:18:49Et c'est aussi parfait pour les démonstrations.
00:18:55D'accord.
00:18:59On dirait que ça a fonctionné.
00:19:04Voilà. Au lieu de présenter à votre comité de direction ou à vos clients des tableaux de bord
00:19:13traditionnels, cette intégration avec v0 vous permet de créer des visualisations interactives
00:19:23et en temps réel pour vos jeux de données.
00:19:29Exactement comme cet exemple.
00:19:34Passons à la partie interactive. Nous avons ce jeu de données gratuit
00:19:41de la Marketplace. Si quelqu'un dans le public souhaite proposer une idée de prompt
00:19:46pour tester une visualisation, nous pouvons l'essayer, ou passer directement aux questions-réponses.
00:19:59Quelqu'un a des questions ou souhaite soumettre un prompt à tester ?
00:20:09En termes de capacités, est-il possible d'exécuter des modèles de régression et de créer des pipelines,
00:20:14ou s'agit-il principalement de « vibe coding » pour de l'exploration visuelle ?
00:20:20Je peux répondre si tu veux. C'est du pure « vibe coding » conçu pour des profils non techniques.
00:20:28Cependant, votre question est très intéressante. Ce que je ferais...
00:20:35Y a-t-il une intégration...
00:20:44D'accord.
00:20:47Normalement, v0 intègre GitHub, ce qui permet de l'intégrer dans un cycle CI/CD classique.
00:20:56Ici, vous pouvez télécharger le code. C'est un prototype : cela nous a pris...
00:21:05sur scène avec Jordan, ça semble long, mais la génération n'a pris qu'une minute
00:21:11et 53 secondes. C'était du « vibe coding » ultra rapide, et c'est bien meilleur que les rapports classiques.
00:21:19Je téléchargerais ce code pour y adosser un modèle et des évaluations.
00:21:33Derrière, c'est juste le modèle de v0, ce n'est pas une application IA conversationnelle intégrée.
00:21:39Comme sur la diapositive de présentation, vous avez la BI traditionnelle, les éléments interactifs
00:21:46et personnalisés, et le troisième pilier... nous n'avons pas eu le temps
00:21:51de le présenter en démo, mais vous pouvez demander à v0 d'ajouter une fonctionnalité de chat
00:21:59avec vos données. v0 le générera très bien. Ensuite, j'ajouterais des évaluations et pipelines pour éviter
00:22:08les hallucinations, mais c'est un cas d'usage plus avancé. Merci pour cette excellente question !
00:22:14C'est très intéressant.
00:22:19Avez-vous d'autres questions ou souhaitez-vous en rester là ?
00:22:30Une fois déployé, comment fonctionne l'authentification ?
00:22:35Excellente question !
00:22:38Une fois déployée, l'application réside dans votre compte Snowflake.
00:22:41L'authentification utilisée est celle de votre compte Snowflake. Quand vous accédez à l'application,
00:22:48une invite de connexion apparaît. Dans mon cas, le Single Sign-On (SSO) est configuré,
00:22:54donc cela me connecte directement à mon compte Snowflake avec mon identifiant et mon mot de passe,
00:22:59ou via le SSO. Tout le reste s'exécute désormais au sein de Snowflake.
00:23:04Il n'y a plus aucun lien avec Vercel à ce stade : vous ne vous connectez pas
00:23:10à Vercel, tout est hébergé exclusivement sur votre compte Snowflake.
00:23:13Si l'application s'adresse à des utilisateurs métiers non développeurs,
00:23:19doivent-ils tous posséder un compte Snowflake ?
00:23:26Oui, ils doivent être déclarés dans Snowflake. Cela dit, Snowflake travaille
00:23:32sur des solutions pour exposer ces applications à des utilisateurs externes sans compte. Il existe
00:23:39déjà un support partiel, et d'autres évolutions arrivent, car c'est un vrai besoin.
00:23:42Vous pouvez vous connecter et définir différents rôles sur votre compte Snowflake.
00:23:50Dans les paramètres de connexion entre les deux applications sur v0, vous pouvez sélectionner
00:23:56les rôles exacts à attribuer. C'est essentiel : l'utilisateur final ne verra que les données
00:24:05qu'il a le droit de consulter. Ce problème est résolu, et vous pouvez concevoir vos tableaux
00:24:12de bord en toute sérénité. C'est une excellente fonctionnalité.
00:24:20Vous définissez ces rôles, puis vous pouvez les copier ou demander à v0 de restreindre l'application à ces rôles précis.
00:24:29Merci pour la question ! Je voulais aussi vous demander... Attention à votre écran, quelqu'un prend des photos !
00:24:36Ah oui, bien vu ! Je voulais savoir : si l'on souhaite créer des composants de ce type
00:24:48et les intégrer dans une application Next.js déployée sur Vercel,
00:25:00c'est-à-dire avoir des composants UI qui interrogent les données Snowflake, est-ce possible ?
00:25:09Oui, c'est tout à fait possible. À ce propos, qui utilise v0 dans la salle ?
00:25:19Et qui utilise Snowflake ou est client Snowflake ?
00:25:31Une majorité de clients Snowflake ! C'est différent de la session de Londres.
00:25:41Pour répondre à votre question, voici vos composants, comme avec shadcn. Ici, c'est l'explorateur...
00:25:48Où se trouve le composant du globe ? Peut-être dans le dossier app...
00:25:59Ou dans l'un des sous-dossiers, imbriqué dans un autre composant.
00:26:08Il a généré tout le code du globe d'un coup ? Ah le voilà !
00:26:13C'est un composant UI de 167 lignes.
00:26:18Vous récupérez ce code, vous le téléchargez et vous pouvez le modifier. C'est du « zero-shot » !
00:26:27La version 1 correspondait au prompt initial, et l'ajout du globe constitue la version 2.
00:26:34Cela répond-il à votre question ? Parfait, merci !
00:26:44Nous pouvons vous montrer d'autres fonctionnalités si vous le souhaitez. Dans v0, vous pouvez
00:26:52explorer directement votre base de données.
00:26:58C'est un compte de test, donc l'accès aux tables ne pose pas de problème de confidentialité.
00:27:04Vous pouvez explorer vos données directement au sein de v0 et discuter avec votre base.
00:27:08Pas besoin de déployer une application ni de créer un tableau de bord : vous pouvez dialoguer
00:27:15directement avec vos données. Il faut juste se reconnecter, car il y a beaucoup de tables sur ce compte.
00:27:21Vous pouvez également exécuter des requêtes SQL directement depuis v0. D'autres fonctionnalités
00:27:29arriveront prochainement. Personnellement, je trouve fantastique la possibilité de générer
00:27:34des tableaux de bord interactifs aussi rapidement.
00:27:45Voilà, ce sera tout. Si vous souhaitez tester cette intégration,
00:27:51contactez les équipes de Vercel ou de Snowflake.
00:27:58Merci à tous pour votre attention !
00:28:01Passez une excellente journée.
00:28:10Au revoir !