chevron-bottomchevron-leftchevron-rightdownloadfacebookinstagramlink-outlinkedinminusplus
Accessibilité Articles

Optimisation des coûts Snowflake : l'approche FinOps révolutionnaire

Publication

July 2024

Published by

Loïc Moindrault | Otmane El Idrissi

Optimisation des coûts Snowflake : l'approche FinOps révolutionnaire

Optimiser ses dépenses grâce à une stratégie FinOps

Dans un contexte où le paysage des données d'entreprise est en constante mutation, Snowflake s'est imposé comme une plateforme cloud (ou infonuagique) incontournable. Cependant, les entreprises sont constamment à la recherche de moyens pour optimiser leurs dépenses, car une mauvaise utilisation des entrepôts Snowflake peut engendrer des surcoûts notables. Notre initiative vise à déployer une stratégie FinOps performante pour surmonter ce défi, en intégrant plus de 1000 utilisateurs, environ 400 bases de données et 50 entrepôts de tailles variées sur Snowflake. Dans ce contexte, une gestion financière réfléchie, cohérente et adaptée à l’ensemble de l’écosystème analytique est primordiale pour un travail efficace.

FinOps : Qu'est-ce que c'est ?

Afin de poser les bases de cet article, il nous semble important de faire une brève présentation du FinOps.

Le FinOps, ou "Financial Operations", est la contraction de « finance » et de « DevOps ». Cette discipline combine la gestion financière avec les opérations et l'ingénierie du cloud, et permet aux organisations de maximiser la valeur commerciale de leurs investissements dans le cloud. En mettant en place une collaboration entre les équipes financières, informatiques et commerciales, le FinOps aide l’organisation à comprendre et à gérer les dépenses des services cloud de manière plus efficace. L'objectif n'est pas seulement de réduire les coûts, mais aussi de prendre des décisions éclairées qui équilibrent les dépenses avec les avantages commerciaux.

Le cycle de vie du FinOps se décompose en trois phases : informer, optimiser et opérer. Chacune de ces phases est essentielle pour une gestion continue et améliorée des coûts des services cloud.

Qu'est-ce que le FinOps

Stratégie FinOps sur mesure pour Snowflake

Notre approche s'appuie sur l'utilisation des profils de requêtes (Query Profile) fournis par Snowflake. Ces requêtes nous ont permis de créer un jeu de données initial indiquant le nombre de micro-partitions lues par chaque requête, ce qui nous a aidé à estimer la taille de data warehouse (ou entrepôt de données) adéquate pour chaque type de requête.

Nos équipes ont développé une interface intuitive via Streamlit pour examiner les dépenses par rôle et par warehouse, ciblant ainsi efficacement les postes de dépenses les plus importants. Cette approche nous permet de prendre des décisions basées sur des données précises, favorisant ainsi une optimisation continue.

Optimisation des coûts snowflake

Résultats et bénéfices de cette stratégie FinOps

L'analyse fine de notre tableau de bord a révélé des ajustements significatifs possibles, démontrant ainsi les avantages des pratiques efficaces de gestion des ressources cloud. Par exemple, de nombreuses requêtes assignées à un warehouse de taille XL pouvaient être exécutées par un warehouse XS, engendrant ainsi des économies immédiates.

Optimiser ses coûts avec Snowflake

Dès les premières interventions avec les groupes d'utilisateurs les plus consommateurs, un changement dans l'utilisation des entrepôts de données a été observé, conduisant à une réduction notable des coûts (jusqu’à 50% de réduction des coûts pour certains traitements sans perte de performances), et ce dès les premières semaines. Ces économies presque immédiates démontrent l'efficacité de cette stratégie FinOps.

Prochaines étapes : Vers une gestion FinOps optimale sur Snowflake

Forts des résultats obtenus, nous envisageons d’introduire un système de gestion dynamique des warehouses
pour maximiser l'efficacité et réduire davantage les coûts, en appliquant les meilleures pratiques du FinOps. En nous inspirant des nouvelles méthodes d'analyse de performance des requêtes et d'optimisation des coûts décrites par Snowflake, plusieurs actions clés sont ou seront mises en place afin de s’orienter vers une gestion FinOps toujours plus efficace :

  • Démarrage par défaut en taille XS : Tous les warehouses seront initialement configurés en taille XS pour minimiser les coûts dès le départ.
  • Accès dédié par équipe : Chaque équipe d'utilisateurs disposera de warehouses dédiés, optimisés (clusterisation, parallélisation, etc...)selon leurs besoins spécifiques.
  • Augmentation temporaire de taille : Les utilisateurs pourront demander une augmentation temporaire de la taille du Warehouse en fonction de leurs besoins ponctuels.
  • Contrôle d'accès : Un contrôle d'accès strict définira la taille maximale de chaque warehouse selon les besoins spécifiques des équipes.
  • Réajustement automatisé : Un processus automatisé réajustera régulièrement la taille des warehouses à la plus petite taille nécessaire pour les opérations courantes en se basant sur les temps de traitement moyen ou les délais de file d’attente des requêtes.
  • Détection de patterns de requêtes : Nos équipes vont également intégrer un système de détection de patterns pour identifier les requêtes gourmandes en ressources. En s'appuyant sur les hash des requêtes disponibles dans l'historique, nous pourrons cibler les requêtes fréquentes et chercher des optimisations spécifiques pour ces requêtes.

Cette méthode, encore en phase de tests, promet de répondre à nos besoins spécifiques, particulièrement lorsque seules quelques requêtes nécessitent un warehouse de grande taille, garantissant ainsi un travail optimal tout en respectant les objectifs de l’entreprise.

Snowflake et Steamlit : un environnement technique à la pointe

En utilisant Snowflake conjointement avec Streamlit, nous avons pu créer un environnement technique avancé qui soutient notre démarche FinOps. Ces outils nous permettent de surveiller en temps réel les dépenses et d'ajuster rapidement les stratégies en fonction des besoins évolutifs… Un avantage financier non négligeable pour les entreprises!

Conclusion

En adoptant une stratégie FinOps rigoureuse et en exploitant les outils analytiques avancés de Snowflake, les entreprises peuvent transformer la gestion de leurs coûts cloud en un avantage concurrentiel. L'approche décrite ici montre comment des ajustements précis et une gestion dynamique peuvent conduire à des économies significatives, tout en maintenant des performances élevées. Adopter une approche FinOps dans son entreprise n'est pas seulement une question de réduction des coûts, mais aussi d'optimisation continue et d'innovation dans la gestion des ressources cloud.

Nous espérons que le partage de notre expérience inspirera d'autres entreprises à adopter une approche FinOps pour optimiser leurs coûts sur Snowflake. Ainsi, chaque organisation pourra bénéficier d'une gestion financière optimisée et d'une utilisation plus efficace de leurs ressources cloud. Pour découvrir comment une stratégie FinOps peut être implantée dans votre entreprise et optimiser vos coûts, contactez-nous dès aujourd'hui.