Dans mon dernier billet de blog « Importance de la Tag Hygiene dans une approche FinOps », nous avons commencé à introduire certains principes fondateurs du FinOps (qui est, rappelons-le, la prise de décision basée sur des indicateurs business, comme la fixation des objectifs, les moyens pour suivre l’atteinte de ces objectifs, …). Nous avons donc posé les bases, pour permettre à nos consommateurs de prendre conscience de leurs consommations Cloud. Ces derniers sont maintenant à même de mesurer l’impact de leurs futures décisions. Il est maintenant temps de passer à la phase suivante en leurs proposant un programme d’entraînement de réduction de leurs factures Cloud.

 

Les acteurs de votre programme d’entraînement

 

Le programme d’entraînement est nécessairement adapté au néo-sportif post-confinement (espèce envahissante des salles de sports ces temps-ci). Si le programme est trop ardu dès le début, c’est le découragement assuré à court terme. Le coach sportif doit alors adapter le programme à chacun de manière à les garder motivé, avec des objectifs qu’il puisse atteindre. Au sein d’un groupe de participants, tout le monde n’a pas le même niveau au départ, pas les mêmes objectifs et surtout les mêmes motivations (perte de poids, préparer son premier semi-marathon, …). Pour le FinOps, c’est à peu près la même chose. Au sein de l’entreprise, nous avons plusieurs acteurs avec des objectifs bien distincts :

  • l’équipe DevOps,
  • le duo Business / Product Owner,
  • Le manager,
  • l’équipe Finance / Achats.

Découvrons ensemble ces quatre acteurs.

 

Les rôles de l’équipe DevOps

Dans un premier temps, on pourrait présenter l’équipe DevOps ainsi (sans volonté de caricature) :

  • Délivrer un applicatif fiable est son objectif principal,
  • Déteste l’inefficacité technologique et veut rester à la page de la technologie,
  • L’uptime de son application est son unité de mesure,
  • Se soucie plus de réduire sa dette technique que sa facture Cloud.

 

Les rôles de l’équipe Business / Product Owner

Pour le duo Business / Product Owner, nous pouvons décrire leurs rôles de cette manière :

  • A la charge de délivrer un produit respectant un cahier des charges précis, à la recherche perpétuelle du triangle d’or (qualité, coût, délai),
  • Doit démontrer que ses ressources allouées (budget, personnel, budget cloud, …) sont utilisées à bon escient pour justifier ce budget,
  • Doit démontrer qu’il est aligné avec ses estimations budgétaires pour éviter de devoir perturber l’équilibre du triangle d’or.

 

Les rôles du Manager de projet

Le manager a des considérations un peu différentes, les voici :

  • Il porte une stratégie (Digital Factory, Cloud Center of Excellence, …),
  • Il doit prouver la valeur dégagée obtenue à la suite des investissements réalisés (le fameux ROI),
  • Il est en recherche perpétuelle pour raccourcir le Time to Market et démontrer l’intérêt de sa stratégie et mesurer les gains obtenus.

 

Les rôles de l’équipe Achats / Finance

Pour finir, les Achats / Finance, sont un peu plus terre à terre et veulent uniquement entendre parler de chiffre :

  • Rêve d’une facture Cloud lisible précise et surtout prédictible (on a le droit de rêver),
  • Voudrait pouvoir tout refacturer au centime d’euro près,
  • Veut être informé des risques de dérapages budgétaires au plus tôt.

 

Vous l’aurez compris, chaque acteur de ce programme est bien différent avec des considérations qui leurs sont propres. Le problème se trouve bien ici car leurs considérations ne sont pas toujours alignées avec une vision FinOps.

Par exemple, pour un DevOps, sa recherche de l’efficience technologique n’est pas toujours compatible avec une recherche déficience budgétaire (sic). Quelque part, c’est un peu normal, car le fait que les ressources soient disponibles en self-service y contribue pour beaucoup. Dans l’ère du pré-cloud, nous devions nous contenter des ressources mises à disposition « On-Premises » (qui étaient limitées par la technologie et nos investissements). Avec le Cloud, le DevOps, n’a plus ces contraintes (d’où l’orgie de consommation que l’on constate sur les premières factures Cloud). Au début de notre programme d’entraînement, la seule chose qui unit nos acteurs, c’est l’exigence de faire mieux avec le même budget  (période économique post Covid-19 oblige).

 

 

 

Mise en place d’une stratégie FinOps

 

Rationaliser sa consommation de service Cloud, ce n’est pas qu’un simple régime. Si on se limite à cela, on fera alors des régimes plusieurs fois par an (lors de la réception de chaque nouvelle facture de notre CSP). Sur le principe, cela fonctionne, mais on se contente de réagir alors qu’on aurait pu détecter la problématique plus tôt, notamment pour corriger ou atténuer les effets sur notre prochaine facture.

Tout cela s’apprend et malheureusement pas en un jour. Notre coach sportif a les mêmes préoccupations pour construire son programme d’entraînement, notre néo-sportif post-confinement ne peut alors pas prétendre courir un marathon à court terme. Nous le savons tous, il faut apprendre à marcher avant de pouvoir courir, dans la même logique la mise en place d’une stratégie FinOps prendra du temps. Elle s’organise selon trois grandes étapes : Crawl, Walk, Run.  

 

La première étape du FinOps : le Crawl

crawl L’introduction de la Tag Hygiene était un prérequis pour commencer. En effet, rappelons qu’un FinOps doit prendre ses décisions par rapport à des métriques en relation avec la valeur Business engendrée. Dans le contexte sportif, le coach commencera par évaluer l’endurance du néo-sportif post-confinement. Généralement, sa situation n’est pas brillante. Dans le Cloud, c’est pareil. Si on en est arrivé à cette situation (facture Cloud trop importante), c’est que nous n’avons pas su consommer avec frugalité.

 

Le FinOps dispose d’une certaine visibilité sur nos coûts grâce à l’introduction de la « Tag Hygiène ». Comme on peut le voir dans l’illustration ci-dessous avec un si faible taux de ressources taggées, il va être difficile de déterminer les grandes masses budgétaires (environnements, centre de coûts, …) et donc d’apporter de la visibilité.

faible taux de ressources taggés

 

Pour notre Coach FinOps, c’est la première étape du programme d’entraînement : mettre en place du reporting à destination des différents acteurs avec un outil comme Power BI avec  « Azure Cost Management Power BI App ». Ceci fait, notre coach FinOps va être en mesure de poser ses premières recommandations : il faut muscler vos tags !

 

Le calcul du Burn Rate pour maîtriser les écarts de consommation Cloud

Lors de cette phase, il faut aussi apprendre à détecter nos écarts de consommation Cloud. Ici encore, nous pouvons faire un parallèle avec notre coach sportif qui demandera à ses néo-sportifs post-confinement de suivre leurs consommations caloriques quotidiennes misent en corrélation avec leur activité physique (grâce à leur nouvelle montre connectée). Le FinOps aura la même approche mais avec notre consommation Cloud et l’analyse de la variance.

Dans notre apprentissage, nous devons comprendre nos tendances de consommation. Dans le contexte sportif, nous allons historiser les calories brulées sur des métriques précis (nombre de tractions, pompes, …). Dans le contexte FinOps, c’est un peu la même chose avec le calcul du « BurnRate » (littéralement vitesse à laquelle on crame l’argent). Ce qui va nous intéresser c’est l’analyse des variations.

Dans l’illustration ci-dessous, il a été réalisé une analyse du « BurnRate » comparé au même jour du mois précédent. L’analyse de la colonne « Cost Drift » nous apprend qu’il y a bien une dérive des coûts sur ce périmètre (une souscription donnée). Cette dérive peut être justifiée (mise en production, …) ou pas. L’objectif est d’identifier les dérives de coûts au plus tôt pour réagir.

Analyse du Burn Rate

 

La recherche du Waste avec Azure Budget

Notre recherche de la frugalité passe aussi par l’élimination du superflu. Dans le contexte FinOps, c’est la recherche du « Waste » : dépenser une part de notre budget dans des ressources Cloud qui seront sous-utilisées voire pas utilisées du tout. Le Coach sportif demandera la même approche à ses néo-sportifs post-confinement en bannissant de leur alimentation le superflu (chips, biscuits apéritifs, …). A ce stade de notre programme d’entraînement nous nous limiterons à l’identification de ces ressources car changer nos habitudes prend du temps et on ne change pas nos applications en production du jour au lendemain.

Cette traque au superflu passera par une analyse technique des ressources avec une remise en question : est-ce réellement utile pour mon application ? Cette analyse prendra du temps mais sera nécessaire pour ne pas reproduire les mêmes erreurs.

 

Grâce à une bonne hygiène des tags, nous avons gagnés en visibilité des coûts, on commence à identifier nos pics de consommation pour résorber nos excès au plus tôt comme illustré ci-dessous :

Top 5 usage drivers

 

Dans Azure, nous disposons des Azure Budgets qui vont nous permettre de détecter les pics de consommation. L’intéressant avec cet outil est sa capacité de filtrer par rapport à un périmètre donné (Management Group / Souscription) comme illustré ci-dessous. Grâce à cela, Azure va extrapoler notre consommation des périodes précédentes pour nous aider à affiner le seuil de consommation à ne pas dépasser.

Capture Azure Budget

 

Il y a même plus intéressant, il est effectivement possible de mettre en place des budgets par rapport aux tags que nous avons imposés. Ces derniers permettent de suivre la consommation à l’échelle d’un département, d’un environnement, voire même d’une application, bref tout tag un tant soit peu représentatif en terme d’utilisation.

Enfin, on peut aussi filtrer selon le type de charges sur la facture Azure. On distingue d’ailleurs deux types de charges : Usage et Marketplace. Le suivi du second est très important pour suivre les achats de licences et anticiper le montant de la facture de ces charges.

Pour notre coach sportif, il est temps de faire passer ses néo-sportifs post-confinement au stade suivant. Ils ont pris gout à l’effort et commencent à constater les premiers effets bénéfiques. Pour le FinOps, il en est de même.

 

 

La deuxième étape du programme : le Walk

 

walk Après avoir appris à ramper lors de la première étape du programme d’entraînement, nous allons apprendre à marcher. Lors de l’étape précédente, nous avons appris les vertus de la frugalité et avons identifié un certain nombre de nos ressources Cloud qui sont mal dimensionnées voir inutiles. Autant, il est facile de se passer du superflux (mise au régime), autant il est compliqué de redimensionner les ressources d’une application qui est déjà en production. Pour cela, nous allons avoir besoin d’analyses techniques complémentaires pour s’assurer que ce redimensionnement ne va pas rendre l’application inutilisable.

 

Notre coach sportif a maintenant un groupe soudé qui participe à son programme d’entraînement. Pour le FinOps, c’est pareil. Chaque acteurs impliqué ont trouvé un bénéfice au travers de l’atteinte de leurs objectifs communs (rationaliser notre consommation de ressources Cloud) mesurés avec des indicateurs partagés par tous. C’est maintenant l’heure de produire des efforts pour réduire notre facture. Un outil comme Azure Advisor est intéressant comme point de départ. Il faut juste faire abstraction des promesses d’économies. En tant que FinOps, nous nous engageons sur des objectifs de réduction des coûts pour une période comptable donnée. Or, le montant annoncé par Azure Advisor est lissé sur les douze prochains mois, sans tenir compte de notre périodicité. C’est un détail mais cela rend la promesse d’économie inexacte.

capture Azure Advisory

 

Après avoir rationalisé notre consommation de nos ressources Cloud, il est temps de voir comment réduire la facture sur la durée. Dans Azure, c’est la notion d’engagement avec les mécanismes de réservations. Nous demandons à Microsoft de nous fournir un prix avantageux pour une ressource donnée (un type de machine virtuelle, base de données, …), en contrepartie, nous nous engageons sur une durée de consommation (un ou trois ans). Il faut voir cela comme un contrat de leasing automobile « à la française » pour lequel la sortie avant terme implique des pénalités (les fameuses petites lignes du contrat). Si on n’est pas assuré que nos ressources perdureront pendant toute la durée de l’engagement, l’économie escomptée s’en trouve amputée. Il faut gérer ces réservations et les associer correctement aux ressources. Ici encore le Dashboard PowerBI « Azure Cost Management Power BI App » est très bien fait. Celui-ci nous présente des recommandations pour « spliter » nos réservations afin de les utiliser au mieux au sein de nos souscriptions.

capture azure cost management

 

Il est alors essentiel d’apprendre à bien gérer ses réservations avant d’investir massivement, sinon on découvre trop tard qu’elles nous coûteront bien plus chers que ce que nous pensions. La pire des situations est de comprendre qu’on est facturé pour des réservations sur des ressources sans les utiliser et qu’à côté, nous payons ces mêmes ressources en mode « Pay as you go ». Pour reprendre l’analogie avec notre néo-sportif post-confinement, il paye un abonnement à la salle de sport, ne s’y rend jamais, tout en enchaînant les excès alimentaires.

 

 

La troisième étape du programme : le Run

 

run Courir 5 kilomètres, c’est à la portée de beaucoup de monde, 10km de manière régulière, ça demande un peu d’entraînement. Alors quand on parle d’un Marathon de 42Km, c’est un autre monde. Le sportif travaillera son endurance avec des périodes dites « foncières ». Pour le FinOps, ce n’est pas un marathon que nous préparons mais bien un triathlon. FinOps, ce n’est pas une discipline mais bien plusieurs.

 

Le FinOps ne se limite pas à la maîtrise des coûts. On distingue plusieurs disciplines :

 

La stratégie

Pour réussir il faut un plan. La définition des objectifs et des indicateurs à suivre dépendent des phases « Crawl » et « Walk ». Au niveau « Run », on s’attachera à affiner nos prises de décisions selon le triangle « coût, délai, qualité ». Nos choix ont eu des répercutions, nous sommes capables de les mesurer pour comprendre comment nous améliorer.

 

La gouvernance

Derrière la notion de gouvernance, on s’attachera au suivi des objectifs financiers. Nous devons nous améliorer dans l’exercice difficile de la construction des budgets pour nos architectures Cloud ainsi que dans les projections budgétaires.

 

Le build

Construire de manière rationnelle une application Cloud dès le début, ce n’est pas simple. Nous devons apprendre, parfois en plusieurs itérations (paradoxalement, il faudra apprendre à échouer pour apprendre à réussir). Derrière la notion de build on recherchera à maximiser l’usage des services PaaS voire SaaS au détriment du IaaS. C’est une approche collaborative dans laquelle tous les participants vont pouvoir capitaliser sur les architectures de références que nous utilisons et maîtrisons le mieux. Il faudra veiller à partager ce savoir. Si le FinOps est né dans le Cloud Center of Excellence (CCoE) avant de prendre son indépendance pour opérer de manière indépendante, il est essentiel que cette culture FinOps soit reversée au CCoE et partagée au sein de l’entreprise.

 

Le run

Au quotidien, nous avons appris à mesurer l’efficacité des optimisations techniques sur la base d’indicateurs purement financiers traduisant une valeur business pour l’entreprise. Nous avons aussi appris à analyser nos coûts de manière beaucoup plus fine (grâce au respect de la Tag Hygiène). Pour continuer à travailler notre endurance, nous allons devoir nous confronter aux autres équipes et créer ainsi une culture commune FinOps dans l’entreprise.

 

L’optimisation

Nous avons appris les vertus du « rightsizing » qui revient à dimensionner ses instances de ressources Cloud au plus juste, il nous reste donc à apprendre et à tirer meilleure partie du modèle de facturation qui évolue en permanence.

 

Conclusion

Tout au long de cet article, vous vous êtes certainement rendu compte que le programme d’entraînement proposé par notre coach FinOps ressemble à la préparation d’un Ironman (avec beaucoup plus de disciplines à maîtriser). En s’engageant dans le FinOps, on commence une course de fond dans laquelle il faudra apprendre à gérer son effort. Travailler son endurance sera donc nécessaire. On peut tirer des bénéfices substantiels à très court terme (pour rappel, selon le Gartner, jusqu’à 35% de nos factures Cloud ne sont que « Waste ») mais il ne faut pas s’arrêter là et comprendre que c’est bien une culture de la frugalité qu’il nous faudra développer dans la durée.

Ce sera un apprentissage collectif et continue. Tout comme le DevOps, le FinOps est une culture d’entreprise collaborative qu’il faudra développer. Votre progression tout au long du programme d’entraînement va vous permettre de changer votre perception :  dépenser de l’argent n’est pas une fatalité, il faut juste démontrer qu’il est bien dépensé et que vous êtes à même de rationaliser son usage.