La démarche FinOps

Références :

Mais qu’est-ce donc que le FinOps ?

La démarche de FinOps a pour ambition de tirer le maximum de bénéfices du système d’informations\ en optimisant les pratiques des différentes équipes de l’entreprise. Le bénéfice\ ainsi dégagé doit permettre à l’entreprise d’accroître sa création de valeur. Les\ pratiques portent sur la façon d’utiliser les ressources mises à la disposition\ des différentes équipes.

L’idée est d’améliorer le contrôle et d’anticiper les besoins financiers\ des équipes tout en améliorant la productivité, sans impacter les bénéfices\ apportés aux clients, voir en les augmentant.

Dit autrement, FinOps veut ajouter la notion de “Finance” au “DevOps” pour intégrer\ les équipes business dans les équipes techniques.

Comment ça fonctionne ? Quelques cas d’usage

Premier cas (GCP) : BigQuery - coûts de plateforme data

NB: BigQuery est un service de base de donnée Serverless accessible en sql,\ proposant notamment l’agrégation de données hétéroclites pour analyse et prise\ de décision).

Principe de base : Audit (état des lieux) → étude des gains possibles → optimisation\ de consommation → suivi d’évolution de la consommation.

Optimisation d’usage, par SKU, par requête (format des données, volume de donnée,\ …), volume de stockage.

Limitation : le service ne fournit que des coûts estimés, ce qui rend incertain\ la portée des gains lorsqu’on essaie de les estimer.

Optimisation du volume des transactions, du volume de donnée stocké.

Piste de réflexions à explorer avec BigQuery :

  • Chercher les optimisations de configuration, d’offres (suivant les modèles de\ facturation de BigQuery), etc.
  • Explorer les type de stockage proposés (typiquement, le stockage physique consomme\ beaucoup moins d’espace que le stockage logique grâce à la compression de donnée aka meilleure maîtrise du stockage).
  • Étudier les mécanismes d’indexation, de partitionnement, etc. pour optimiser la\ performa,ce des requêtes de recherche (et donc la consommation d’i/o).
  • Voir également les mécanismes d’expiration des données, pour limiter le stockage\ de données expirées, ou qui ne servent plus.
  • Google propose également une série d’utils sous la forme de scripts d’analyse\ (projet, table, query, etc.).

Aurpès des équipes, intégrer la démarche FinOps consiste à sensibiliser sur les\ coûts. Pour cela, la console de GCP de donner de la visibilité sur les dépenses\ (presque) en temps réel (e.g. à la création des ressources). Par exemple, BigQuery\ permet de voir quasiment en direct l’optimisation du coût de la requête en direct\ (e.g. consultation des coûts, retrait d’un select *, et l’optimisation se voit\ dès qu’une nouvelle requête est exécutée).

Second cas (GCP) : CUD - Committed Use Discount

NB: les CUD correspondent plus ou moins un équivalent à un mécanisme de réservations,\ ou de forfait.

Ce genre de système doit entrer de base dans une stratégie FinOps pour l’optimisation\ des coûts.

Coûts = optimisation x taux, c’est-à-dire se limiter à ce dont nous avons besoin\ avant de chercher les gains via les systèmes de réductions.

Typiquement,

  • la première étape est d’analyser la consommation,
  • l’optimiser comme vu avec l’exemple BigQuery,
  • enfin, étudier les offres de CUD,
  • proposer des réservations et equivalent en fonction de la stratégie du client\ (e.g. renvoyer vers l’offre commerciale correspondante), durée de réservation, montant\ de réduction, etc.
  • pour ensuite appliquer ces offres de façon pertinente sur l’infrastructure du\ client.

NB: la capacité réservée n’est pas garantie chez GCP.

GCP propose deux mécanismes d’attribution des ressources aux services :

  • proportionnelle à la consommation actuelle (sans discrimination ni favoritisme),\ ou
  • selon des priorités définies par le client (e.g. en fonction de la criticité des\ services).

Optimisation sur la base des dépenses (consommation variable mais prévisible) ou\ bien directement sur la base de la consommation des ressources elles-mêmes (lorsqu’elle\ est stable).

  • outils d’analyse (opportunités, risques, rentabilité, etc.)
  • approbation (validation du concept et processus d’évolution de la consommation)
  • achat
  • suivi/optimisation (revue des gains / pertes, retours d’exploitation, revue du\ plan).

La démarche FinOps partira généralement du haut de la hiérarchie (ou de la compta,\ via le compte de facturation) et redescendra jusqu’aux équipes (dans le cadre d’un\ projet donné).

Troisième cas (AWS) : Coûts cachés sur s3, NAT Gateway et CloudWatch

s3 :

  • coûts des requêtes (call API),
  • choix de classe de stockage (optimisation en fonction des besoins / cas d’usages,\ avec des optimisations adaptées),
  • transfert de donnée (les backups reviennent cher).

Projection des tarifs sur des usages grandeur nature (e.g. les nombres de requête\ peuvent grimper très vite), proposition de solutions alternatives moins coûteuses\ (e.g. mise en cache, compression des fichiers, traitement par lot, optimisation\ réseau type vpc endpoint etc.).

NAT Gateway :

  • coût fixe (l’exemple des NAT Gateway montre que l’information peut être difficile\ d’accès),
  • trafic entrant et sortant (donc la facturation semble être appliquée deux fois,\ alors que c’est en réalité une question de communication),
  • utilisé par d’autres services (e.g. s3 qui passe par internet).

Il est notamment important d’Identifier les coûts par i/o, car ils peuvent grimper\ très vite, et proposer des solutions de contournement (e.g. éviter le trafic jusqu’à\ la source, routage du trafic par un point d’accès moins coûteux comme les VPC Endpoint,\ etc.).

CloudWatch : ici, nous pouvons jouer sur le volume de métriques, de logs, d’alarmes\ et dashboards, etc.

Typiquement, optimiser les volumes pourra passer par :

  • la compression des données,
  • la réduction de la fréquence d’échantillonnage,
  • en se limitant aux points de contrôle essentiel,
  • par le nettoyage des données les plus anciennes, et
  • en jouant délai de rétention.

Le choix des services ne doit pas seulement être piloté par la sécurité et l’optimisation\ de la performance, mais aussi par les coûts. Les optimisations de coût devront se\ subordonner aux besoins. Par exemple quand des ressources sont peu sollicitées,\ le besoin de suivi sera moins pressant (bien entendu, à moduler en fonction de la\ criticité de ces ressources).

Les outils des fournisseurs Cloud

Dans le domaine du Cloud, la démarche FinOps est déjà bien intégrée. Ci dessous,\ nous explorons les trois grands acteurs américains, mais les acteurs français (OVH,\ Scaleway, Clever Cloud, etc.) proposent également des solutions et outils pour maîtriser\ ses coûts.

AWS

  • AWS Princing Calculator permet d’estimer le coût d’une\ architecture cloud.
  • AWS Cost Explorer\ permet de visualiser, manipuler et faire de l’analyse prédictive sur les coûts\ des différents services cloud via un tableau de bord.
  • AWS Trusted Advisor\ analyse et permet de réaliser des actions automatiques sur les ressources (redimensionnement,\ désactivation des VM, etc.).
  • EC2 Right Sizing\ fournit des recommendations pour optimiser le coût des ressources.
  • AWS Budget permet\ de se fixer un budget, et d’être prévenu en cas de dépassement.

Le système de Reserved Instances encourage également à optimiser les dépenses sur\ les ressources.

Azure

  • Une calculatrice pour\ estimer le coût d’une architecture cloud.
  • Azure Cost Management \ est l’équivalent d’AWS Cost Explorer.
  • Azure Advisor fournit le\ même genre de service qu’EC2 Right Sizing, mais sur la base de la consommation actuelle.

GCP

Eux fournissent un seul outil, Cost Management,\ rassemblant les fonctionnalités de :

  • console de suivi (global et par projet, voir personnalisé),
  • de gestion des habilitations financières (budgets, alertes),
  • un export des données pour Data Studio de Google.

Synthèse

Après la sécurité ou la performance, la démarche FinOps apporte un nouvel axe d’amélioration\ du système d’information. Elle repose sur une stratégie d’ajustement des dépenses\ en fonction des besoins réels des clients, afin de préserver l’expérience utilisateur\ tout en éliminant le superflu.

Les bénéfices ainsi dégagés pourrons ensuite être réinvestis par l’entreprise dans\ de nouveaux projets, au niveau des équipes pour apporter des innovations sur leurs\ produits et fonctionnalités, etc. Savoir identifier et démontrer ces bénéfices permet\ d’évangéliser auprès des équipes sur les bénéfices de la démarche FinOps, ce qui\ en constitue une étape cruciale.

La démarche FinOps passe généralement par les étapes suivantes :

  1. établir un état des lieux de la consommation à l’instant donné ;
  2. explorer les services proposés par nos fournisseurs, notamment sur les coûts\ de ces services ;
  3. établir un plan d’optimisation des dépenses ;
  4. une fois le plan validé (d’un côté avec les équipes techniques, de l’autre avec\ la finance), appliquer le plan ;
  5. suivre l’évolution de la consommation ;
  6. explorer les offres de réservation, de forfait, etc. ;
  7. établir un nouveau plan d’optimisation prenant en compte l’exploitation déjà\ optimisée au niveau des services, et repartir dans un cycle de validation et application\ de ce nouveau plan ;
  8. enfin, conserver un suivi des évolutions de la consommation, pour rester constamment\ en veille de nouvelles optimisations.

Le FinOps repose sur une solide expertise technique, notamment la connaissance des\ solutions que propose le fournisseur (ici Cloud) susceptibles de répondre au besoin\ à moindre frais, et ce autant sur les aspects techniques que sur les aspects financiers\ de ces solutions. Typiquement, dans le cas du Cloud, la démarche devra reposer sur\ des architectes Cloud expert de l’opérateur de Cloud de l’entreprise (GCP, AWS,\ etc.).