Nous avons adopté le Cloud. De plus en plus de workloads sont migrés voire mieux, de nouvelles applications Cloud-natives sont développées pour exploiter au mieux les capacités de la plateforme Cloud de notre fournisseur (voire de nos fournisseurs dans un contexte multi-cloud).

Avec le temps, nous avons appris à prendre en compte de nouveaux aspects techniques, sécurité pour améliorer nos pratiques (notamment DevOps). Ça a été un long apprentissage, pas souvent simple pendant lequel nous avons dû apprendre de nos échecs. Avec le temps nous nous sommes améliorés. Pourtant, il reste un domaine dans lequel nous ne parvenons pas à nous améliorer : la maîtrise des coûts aussi nommée gouvernance financière. Dans ce domaine, l’histoire est un éternel recommencement. Notre consommation de ressources chez notre Cloud Solution Provider (CSP) est croissante, mais la courbe de progression de notre facture est plus exponentielle que linéaire. En fait le problème est plus vaste :

  • Nous ne faisons que réagir face à une situation de dépassement de budget,
  • Notre réaction produit bien un effet (réduction de la facture) mais ce n’est qu’un répit temporaire avant de retrouver le problème,
  • Nous sommes paralysés par la peur de la facture que nous n’arrivons pas à maîtriser.

 

Jusqu’à maintenant, nous avons essayé des approches « techniques » basées sur notre culture (Infra, Dev, …) mais cela ne fonctionne pas. Ce dont nous avons besoin c’est :

  • D’une véritable stratégie de maîtrise des coûts,
  • D’une nouvelle culture, bien plus vaste que ne peut l’être DevOps.

 

C’est un nouveau domaine, donc un nouvel univers à explorer. Passons de l’autre côté pour comprendre comment reprendre la main sur les factures de notre Cloud Solution Provider (CSP).

 

Une lente prise de conscience

La prise de conscience a été lente en partie à cause de la courbe d’apprentissage du Cloud. Nous avons dû monter en compétences sur les différents domaines qui nous étaient étrangers (Technique, Sécurité, agilité). Nous nous sommes focalisés sur des sujets techniques et avons délaissés la maîtrise des coûts. Il ne faut pas y voir un reproche, on a dû faire des choix dans notre apprentissage, faire des erreurs. L’absence de maîtrise des coûts est l’erreur que l’on commet le plus.

Si on comprend les grands principes qui nous permettent de mieux maîtriser nos coûts, on ne prend conscience que très tard que sans industrialisation, nous ne pourrons pas mettre en œuvre des mesures efficaces pour contrôler nos coûts. Pour illustrer mon propos voilà un extrait de l’étude RightScale « State of the Cloud 2019 ». La première priorité des DSI est d’optimiser leurs factures actuelles pour ensuite permettre de transférer plus de Workloads vers notre / nos fournisseurs CSP.

Graphique les priorités des DSI

Quand on s’attarde sur les règles d’optimisations des coûts du Cloud, ce n’est que du simple bon sens. Pourtant, nous ne les appliquons pas de manière industrielle. Vu le nombre croissant de ressources à gérer, nous ne pouvons plus travailler à l’ancienne. Le passage à l’industrialisation était donc une étape nécessaire à notre apprentissage. Maintenant que c’est acquis, voyons à quoi ressemblent ces règles de bon sens selon RightScale.

graphique des règles d'optimisation des coûts du cloud

Nous avons là quelques-unes des stratégies que le FinOps vont employer pour maîtriser notre facture Azure. Dans un environnement industrialisé, la production de ces recommandations doit aussi faire l’objet d’une industrialisation pour permettre aux différents acteurs impliqués de prendre les bonnes décisions en temps et en heure pour ne pas laisser perdurer une situation de dérive des coûts.

 

C’est l’affaire de tous

Maîtriser ses coûts, ce n’est pas uniquement une affaire de financiers mais bien l’affaire de tous. Dès lors que nous consommons des ressources chez un CSP nous sommes responsables individuellement et collectivement des dépenses associées, en tant que membre d’une équipe au sein d’une organisation. En conséquence, tous les acteurs Dev, DevOps, Manager et même finance doivent être impliqués dans la démarche de maîtrise des coûts.

La multiplicité des acteurs pose le problème des motivations qui sont souvent opposées, sans oublier le fait que nous opposons des cultures différentes (IT versus Finance). Ce choc des cultures fait qu’on ne se comprend pas tout en pensant parler du même sujet. Avec FinOps, ce n’est plus de technologie dont on parle mais bien de maîtrise des coûts, d’allocation budgétaire et d’atteinte d’objectifs de réduction de coûts.

 

La peur de la facture

On commence à s’intéresser à la facture de notre CSP quand elle va dépasser notre budget (quand ce n’est pas après). Le problème, c’est qu’il est déjà trop tard. Ces factures sont bien souvent trimestrielles. On a patiemment attendu trois mois pour prendre conscience du problème. S’il y a eu des dérives, elles ont eu le temps de prospérer.

Nous avons peur de cette facture qui manque cruellement de lisibilité. Tel que, nous ne pouvons pas en tirer grand-chose. Elle ne nous aide pas à comprendre comment est dépensé notre budget. Pourtant, c’est bien de cela dont nous avons besoin. Il faut comprendre que dépenser de l’argent n’est pas une fatalité. Il faut démontrer quelle part est bien dépensée de celle qui reste à optimiser pour pouvoir ensuite améliorer comment on peut revoir l’affectation et l’usage de notre budget.

 

Introduction à FinOps

L’absence de stratégie pour maîtriser les coûts est le problème le plus important, nous ne faisons que réagir à la situation et non traiter le mal à la racine. Cette réaction survient beaucoup trop tard.

Après la prise de conscience, il faut s’organiser et mettre en place une forme de collaboration entre tous les acteurs. Tous sont d’accord sur l’objectif de maîtrise des coûts. Cependant, les motivations de chacun sont différentes.

Pour résoudre ce problème, nous devons introduire un nouvel acteur qui va faire le lien entre eux (et d’autres acteurs). Cet acteur, c’est le FinOps avec une nouvelle culture et 6 grands principes.

 

1 – Démarche collaborative entre de multiples acteurs

La démarche collaborative est essentielle. Un acteur seul ne peut rien faire. Le FinOps sera au centre de cette démarche avec pour objectif de fournir des recommandations ciblées pour chaque acteur visant à l’aider dans la prise de décision.

 

2 – Prise de décision basée sur la valeur Business engendrée

Ces recommandations seront basées sur des inputs techniques (télémétrie d’usage et de facturation du CSP) qui seront « raffinées » pour les transformer en indicateurs orientés sur la valeur Business que cela peut apporter à l’entreprise. Les unités de mesure s’expriment en économie à réaliser, en économies déjà réalisées et en économie restant à atteindre.

 

3 – Tout le monde est responsable de sa consommation Cloud

C’est un principe essentiel. Dès lors que nous sommes autorisés à consommer des ressources chez un CSP, en tant que consommateur nous devenons responsables collectivement et individuellement. Cette responsabilisation permettra d’apporter plus de visibilité à la facture du CSP. On aura ainsi plusieurs niveaux de lecture de notre consommation. Cette finesse de lecture impose la mise en place de « Balises / tags » sur les ressources consommées.

 

4 – Reporting adapté à chaque acteur pour prise de décision rapide

Le manager d’une équipe DevOps sera plus attentif à son budget si la recommandation qui lui est destinée lui indique qu’en redimensionnant une instance de service Cloud, on est capable de produire le même service pour moins cher. A l’opposé, le DAF sera plus intéressé par des recommandations permettant de suivre comment la notion de « Waste » évolue dans le temps (part du budget dépensé dans des ressources inutiles ou inutilisées).

 

5 – Une équipe centralisée qui produit des recommandations

On pourrait penser qu’il suffit d’intégrer les précédents éléments dans la culture DevOps de notre entreprise mais c’est justement ce qu’il ne faut pas faire. L’objectif de l’équipe FinOps est de prendre du recul pour déterminer comment optimiser nos dépenses. Chaque équipe est bien responsable de la manière dont elle consomme son budget mais pour certains choix stratégies (les réservations par exemple), il est nécessaire d’avoir une vision d’ensemble.

 

6 – Exploiter au mieux le modèle de facturation du CSP au lieu de se battre contre

C’est le mantra de l’équipe FinOps. Il faut faire évoluer les mentalités. Dépenser de l’argent n’est pas une fatalité, il faut prouver qu’il est bien dépensé. C’est la première étape. Après, on pourra s’attaquer à l’optimisation de notre facture Cloud en exploitant au mieux le modèle de facturation du CSP. Les mécanismes de réservations seront un des leviers à condition que l’on soit en mesure de mesurer l’avancement de nos efforts. Ce point est essentiel car sans ces indicateurs nous ne serons pas capables de déterminer si notre stratégie est payante ou pas.

 

En bref, FinOps c’est :

  • Une culture comme DevOps,
  • Un FinOps n’est pas un cost-killer mais un optimiseur de dépenses,
  • une unité de mesure économique,
  • Un langage technique.

 

Equipe FinOps VS Equipe DevOps

Pour ce qui est de l’équipe FinOps, elle devra fournir des recommandations ciblées aux différents acteurs pour les aider à prendre les bonnes décisions sur leurs périmètres respectifs. Un manager veut comprendre comment est dépensé son budget par ses équipes et anticiper comment la consommation des ressources Cloud va évoluer dans le temps. A l’opposé, les équipes DevOps attendent des recommandations plus techniques. Dans les deux cas, les acteurs vont prendre des décisions basées sur la valeur Business engendrée.

Les acteurs du FinOps

 

Maintenant, on comprend que l’équipe FinOps est clairement multiculturelle : Cloud pour comprendre ce que l’on consomme et Finance pour apporter de la visibilité. Le FinOps transforme des indicateurs techniques en indicateurs Business pour aider à la prise de décision. Toutes les décisions qui seront prises le seront sous l’angle de la valeur Business que cela apportera à l’entreprise.

 

Une approche Top to Bottom

Dans l’illustration ci-dessous, nous utilisons les API Azure de Cost Management pour comparer deux mois consécutifs de facturation. En analysant la différence de consommation quotidienne, on constate un accroissement du « Cost Drift » à partir du 6 novembre 2019. C’est peut-être dû à une mise en production ou c’est justement une anomalie à la suite d’une mise en production. Avec ce niveau de détail, nous ne pouvons pas savoir. Nous avons besoin de plus de granularité pour analyser. C’est un des objectifs de l’équipe FinOps : proposer plusieurs niveaux de lecture.

Capture Powershell

 

Pour répondre à ce besoin de lisibilité, l’équipe FinOps va devoir imposer la mise en place de « Tags/Labels » sur les ressources consommées et imposer de manière stricte les valeurs associées.  Le respect de ces règles que l’on dénommera « Tag hygiène » est un indicateur que l’équipe FinOps va analyser et communiquer aux équipes. Charge à elles de s’assurer du bon respect de ces règles afin que l’équipe FinOps puisse produire des recommandations.

En améliorant la lisibilité de la facture de notre CSP, nous sommes maintenant en mesure de comprendre qui consomme quoi dans quel contexte, de mesurer les coûts au niveau de chaque département de l’entreprise, de chaque équipe, jusqu’à chaque projet pour déterminer quel projet est la source de la dérive des coûts que nous avons constatée.

 

Chasse au gaspillage

Voilà l’activité favorite du FinOps. Comme dit précédemment, dépenser de l’argent pour des ressources chez notre CSP favoris n’est pas une fatalité tant qu’on est à même de démontrer qu’elles sont utiles pour le service rendu. En revanche lorsque ces ressources sont surdimensionnées ou pire inutiles au bon fonctionnement du système cela pose un sérieux problème car nous avons dépensé de l’argent sans justification.

 

Gartner estimates that global enterprises waste as much as 35 percent of total cloud spend, with the over provisioning of cloud infrastructure a leading cause for this wastage.

 

La chasse au gaspillage ne doit pas être prise à la légère. A l’échelle du Cloud ce n’est pas une ou deux souscriptions / comptes que nous devons analyser mais un très grand nombre et ce tous les jours. C’est donc une chasse qui devra être industrialisée.

 

A la recherche d’un outil

Jusqu’à maintenant, je n’ai pas parlé d’outil. C’est normal car FinOps est avant tout une culture et une démarche que nous allons propager dans l’entreprise au même titre que la culture DevOps. Nous allons effectivement avoir besoin d’outils mais pas forcément ceux qu’on pense. Tous les CSP communiquent sur le FinOps. Cependant, cette communication de limite à un seul aspect : les stratégies de réduction des coûts, or, c’est bien plus vaste que cela. Pour illustrer mon propos, voilà la vision du Gartner sur le FinOps avec mis en évidence ce que représente la partie « Cost Optimization ».

Schema Cost Optimization

En conséquence, on ne peut pas se reposer uniquement sur les outils proposés par les CSP. Il nous faudra développer nos propres outils qui évolueront en fonction de notre culture FinOps. On commence à voir émerger des outils, pour l’instant, je me limiterai à un simple cahier des charges.

 

Présentation du cahier des charges pour choisir votre outil final

  • Cloud agnostique

Le produit devra impérativement prendre en compte plusieurs CSP (Cloud Solution Provider) pour aider à la prise de décision quant à l’hébergement d’une application chez un CSP ou un autre et adresser les contextes multi-cloud qui sont de plus en plus nombreux (Volonté de ne pas être Vendor-Locked).

 

  • Historisation des données sur une longue période

Produire des recommandations et identifier des modèles de consommation impliquera qu’on puisse puiser les données de consommation historisées au sein d’un Datalake. La prise de décision s’effectue aussi par rapport à nos expériences passées.

 

  • Mécanismes d’alertes

Chaque CSP propose son propre mécanisme d’alerte de consommation mais il ne prend pas en compte notre vision des coûts (périodicité fiscale versus périodicité facturation, refacturation interne, …). Il est donc nécessaire que cette fonctionnalité soit portée par notre outil.

 

  • Cartographie des dépenses

Ici encore les CSP proposent ce type de fonctionnalité mais nous avons besoin de pouvoir avoir une approche « Top to bottom » pour comprendre la nature des dépenses et les mettre en comparaison avec les périodes précédentes.

 

  • Budgétisation (modélisation de consommation) / suivi des indicateurs budgétaires

Les fonctionnalités de modélisation de consommation proposées par les CSP se limitent à une simple extrapolation de la consommation et donc de notre facture. Nous avons besoin de pouvoir tester des hypothèses en utilisant les données de consommation qui auront été conservées dans un Datalake.

 

  • Production de rapports en vue de délivrer des recommandations

C’est la finalité du FinOps : proposer la bonne recommandation au bon interlocuteur. La plateforme doit permettre à chaque acteur de choisir ses indicateurs de suivi pour mieux se focaliser sur ses objectifs. Une approche industrielle de la production de recommandations est nécessaire pour permettre aux acteurs de toujours disposer de données actualisées permettant une prise de décision rapide ainsi que valider que les actions entreprises portent leurs fruits.

 

  • Suivi de l’hygiène des Tags

Chaque CSP propose une fonctionnalité nommée « Tag » ou « Label » et permet d’imposer leur présence sur les ressources. C’est nécessaire pour mieux qualifier leur usage, destination. Pour le FinOps, la présence de ces tags est essentielle pour comprendre comment on consomme les ressources. Le FinOps a besoin d’un respect strict de l’hygiène de tags. C’est un indicateur qui est communiqué aux acteurs pour leurs périmètres respectifs.

 

  • Gestion des mécanismes de réservation

Chaque CSP propose aux consommateurs un engagement de consommation sur une période plus ou moins longue (1 à 3 ans) sur des ressources bien précises. En contrepartie de cet engagement, le CSP propose un tarif dégressif. Dans les stratégies à disposition du FinOps, c’est un mécanisme qui permet de générer beaucoup d’économie ou pas. L’utilisation des réservations implique un suivi strict car elles peuvent devenir une source de gaspillage importante.

 

Le saint Graal du FinOps ?

S’il devait y en avoir un, ce serait Netflix. L’entreprise s’est transformée de la location de DVD à la production de contenu cinématographiques mis à disposition dans plus d’une centaine de pays grâce au Cloud. Vue le nombre de consommateur de ses services, sa facture CSP est conséquente. Netflix a donc été obligé de développer sa culture FinOps pour toujours produire le meilleur service au meilleur coût, sa rentabilité en dépend. Progressivement, Netflix a réussi à tirer le meilleur des services de stockage de son CSP (AWS), jusqu’à atteindre un coût plancher. C’est cette expertise qui a permis à Netflix de mettre en évidence qu’il était rentable de produire eux même certains services (CDN) à la place de leur CSP pour un coût moindre. Voilà Saint-Graal pour un FinOps. Si vous souhaitez en savoir plus je vous conseille de lire cet article qui présente la migration du cloud Netflix.

 

Pour aller plus loin dans le FinOps

Nous arrivons au terme de cet article, pourtant, nous n’avons fait qu’effleurer le sujet FinOps. S’il faut un point de départ, il prend la forme d’un ouvrage publié par des membres fondateurs de la fondation FinOps. Cet ouvrage a été un point de départ pour moi :

Couverture du livre Cloud FinOps

Bonne lecture et à bientôt pour explorer plus en profondeur le FinOps.