FinOps per la gestione finanziaria del Cloud

Le aziende adottano il Cloud Computing e l’approccio Cloud Native per favorire la scalabilità dei progetti e la crescita aziendale. Ma per supportare la crescita sono necessarie risorse crescenti ed è quindi naturale che i costi di implementazione aumentino. Ma fino a che punto? Per tenere le fila delle spese aziendali destinate ai servizi Cloud entra in gioco il così detto FinOps, ossia il Cloud Financial Management.

FinOps: definizione di Cloud Financial Management

Con il termine FinOps facciamo riferimento a tutto quel set di pratiche dedicate alle Cloud Financial Operation. Si tratta, in altre parole, del monitoraggio, forecasting e ottimizzazione dei costi legati all’utilizzo di servizi a consumo, ospitati su uno o più Cloud provider. 

La FinOps Foundation definisce il FinOps come “una disciplina e pratica culturale in evoluzione per la gestione finanziaria del Cloud.” Specifica inoltre che il FinOps “consente alle organizzazioni di ottenere il massimo valore aziendale aiutando i team di progettazione, finanza, tecnologia e business a collaborare su decisioni di spesa basate sui dati.”

La definizione in linea teorica quadra, ma in pratica in cosa consiste l’approccio FinOps? Scopriamolo insieme nei prossimi paragrafi.

Che cos’è FinOps?

Iniziamo da qui. Come la parola DevOps, anche il termine FinOps fa riferimento non solo ad una disciplina, ma anche ad un mindset culturale

Il termine FinOps combina due parole: financial e operations. Si tratta infatti di un approccio adottato da un’organizzazione che cerca di promuove la collaborazione tra diversi reparti dell’azienda, nello specifico i reparti di operations, finance ed engineering. 

Il modello FinOps vuole massimizzare il valore prodotto, senza tralasciare come e quanto la spesa, in questo caso dei servizi Cloud, influisca sul risultato finale. 

Al modello di collaborazione, si affianca un modello decisionale data-driven. Quest’ultimo è destinato ad evolvere in maniera continua. Maturare man mano che i team e l’organizzazione stessa assumono maggiore consapevolezza e padronanza delle leve di ottimizzazione che il Cloud mette a disposizione.

Sicurezza nel Cloud: leggi le strategia di difesa contro i nuovi attacchi! Scarica il White Paper Guida alla Cloud Native Security

A cosa serve FinOps

Dopo aver definito di cosa stiamo parlando è lecito interrogarsi sugli obiettivi di un determinato approccio come FinOps. A cosa serve quindi FinOps? E, soprattutto, perché un’azienda dovrebbe adottare questo framework? 

Al giorno d’oggi, un’azienda che adotta il Cloud Native non deve solo padroneggiare i concetti fondamentali legati al Cloud, come l’architettura a microservizi, i container o la metodologia DevOps. Un efficiente modello di gestione finanziaria è un fattore abilitante e critico all’interno di ogni iniziativa Cloud Native

LEGGI ANCHE: DevOps: Cos’è e come introdurlo in azienda

Grazie al modello FinOps, le organizzazioni possono raccogliere e organizzare tutti i KPI necessari a valutare l’andamento del progetto. In questo modo, è possibile comprendere se le ipotesi fatte durante la stesura del business case sono aderenti alla realtà. Soprattutto, è possibile analizzare tutte le attività correttive necessarie qualora tali ipotesi venissero smentite. Un esempio può riguardare l’ipotesi dei volumi di carico che è necessario supportare e, di conseguenza, il numero di risorse a consumo che è necessario acquistare.

In sintesi, l’obiettivo del FinOps è quello di bilanciare correttamente costi, velocità e qualità e rendere così più efficiente l’utilizzo del Cloud. Grazie al FinOps le aziende possono continuare a investire nell’innovazione con più consapevolezza, grazie a:

  • Un più accurato forecasting, gestione e imputazione dei costi “condivisi” tra iniziative differenti.
  • La diminuzione degli sprechi (a cui è collegato anche il tema del Green Cloud e quindi delle emissioni di CO2 derivanti da potere computazionale non utilizzato).
  • Una maggiore responsabilità finanziaria da parte dei team IT, e quindi un uso finanziariamente responsabile del Cloud. 

Come si raggiungono gli obiettivi che abbiamo appena elencato? 

FinOps fornisce un framework specifico che le aziende possono adottare. Tramite delle capability di reporting, operazioni di tagging e capacity plan, il framework FinOps permette di costruire una vista omogenea - qualora i cloud provider monitorati siano più di uno - e soprattutto comprensibile a tutti i vari reparti dell’organizzazione.

La nascita del framework FinOps

Il framework FinOps, è stato formalizzato dalla FinOps Foundation. Si tratta di un programma patrocinato dalla Linux Foundation e dedicato all’evangelizzazione dell’industria IT alla disciplina del Cloud Financial Management, attraverso la definizione e condivisione di standard e best practices. All’interno del framework FinOps, e di conseguenza in ogni sua implementazione, abbiamo:

  • I principi: ovvero i punti fondamentali su cui si basa la collaborazione tra team cross funzionali e il livello di responsabilità che ciascuno di questi attori ha nell’attuazione o governance dell’iniziativa.
  • Le personas: ovvero le professionalità che è necessario coinvolgere all’interno di un progetto FinOps.
  • Le fasi: cioè i passi e le relative azioni che l’organizzazione e i team devono intraprendere in base al loro grado di maturità. L’approccio delineato dalla FinOps Foundation è del tipo crawl, walk, run, ovvero iterativo e incrementale.
  • I domini: intesi come le aree su cui le attività operative derivanti dal processo decisionale possono e/o devono intervenire.

La struttura di questo framework segue l’evoluzione dell’industria. Perciò le aree tematiche appena descritte potrebbero variare con l’avvento e l’adozione di nuovi modelli computazionali associati a trend emergenti, come ad esempio il Metaverso o la computazione decentralizzata/Web3. 

I principi di un modello del Cloud FinOps

Come detto precedentemente, i principi del modello FinOps definiscono le linee guida su cui i diversi ruoli aziendali operano e collaborano tra di loro. Vediamoli nel dettaglio:

  • I team devono collaborare. Un'organizzazione che vuole adottare il modello FinOps, ma allo stesso tempo mantenere dei silos verticali, perde la capacità di prendere delle decisioni tenendo conto di tutti i punti di vista dell’azienda.
  • Ogni team è responsabile dei propri costi. Il dimensionamento e l’allocazione dei costi Cloud è responsabilità del team sponsor/owner dell’iniziativa.
  • Governance centralizzata. Esiste un board centrale che coordina e supervisiona l’applicazione del framework FinOps.
  • Reporting puntuale e facilmente consultabile. Produrre i KPI/report associati ai costi Cloud non deve essere un’operazione time-consuming, ma bensì quanto più vicina possibile a modelli di Self-BI.
  • Decisioni Value & Data driven. Scelte basate sul valore che il Cloud ha in quella particolare circostanza, scegliendo l’opportuno hosting model anche in relazione alla strategicità dell’iniziativa.
  • Sfruttare i benefici di un modello di costi dinamico. Si tratta di un modello di costi che incapsula, oltre che i costi relativi alla capacità computazionale, anche costi di licenza (che tradizionalmente hanno sempre rappresentato una voce di costo indipendente). Questo permette di avere un doppio livello di consolidamento e ottimizzazione.

La struttura di un team FinOps

Un team FinOps è un team eterogeneo, che raggruppa diverse professionalità e aree dell’azienda che contribuiscono in maniera partecipata alla creazione di valore per l’azienda. 

Un team FinOps, così come ogni team cross funzionale, si presta molto facilmente all’outsourcing di determinati profili/ruoli. Questo permette non solo di ottimizzare risorse, ma anche di avvalersi di competenze non necessariamente presenti in azienda, e che tuttavia risultano chiave per una corretta implementazione di una strategia FinOps. I ruoli chiave sono:

  • FinOps Practitioner: facilitatore e esperto del framework FinOps (figura simile allo Scrum Master).
  • Executive: focus su accountability, trasparenza e andamento dell'iniziativa FinOps (budget e tempo).
  • Business/Product Owner: focal point per iniziative interne dove il Cloud è un elemento chiave.
  • Finance/Procurement: lavorano con il FinOps Practitioner per interpretare i dati e metriche raccolte.
  • Engineering/Operation: responsabili della delivery e del mantenimento del valore prodotto.

Adottare il modello FinOps

Arrivati fin qui abbiamo compreso che la corretta gestione finanziaria dei servizi Cloud è un aspetto critico per il successo di qualsiasi progetto in Cloud. Come applicare quindi i principi del FinOps nella tua realtà? 

A prescindere dal livello di maturità di una azienda, il framework FinOps può essere adottato seguendo quattro step principali:

  • Analisi di tutti i costi associati al Cloud, dando visibilità delle allocazioni per team IT e dei loro budget.
  • Benchmarking delle performance dei servizi ospitati sul Cloud per individuare situazioni di sopra o sotto utilizzo.
  • Ottimizzazione dei servizi andando a dimensione correttamente i workload IaaS, scalare o riposizionare i servizi PaaS e analizzare l’utilizzo e gli account associati ai servizi SaaS, cercando di ottenere il miglioramento continuo dei costi e delle performance.
  • Negoziazione atta a consolidare gli acquisti e le spese (anche di Cloud provider diversi) al fine di allinearli alle priorità aziendali.

Questi quattro step sono ripetibili in maniera iterativa al fine di individuare immediatamente un possibile scostamento e applicare le necessarie attività di remediation per riportare la situazione, e quindi i costi, sotto controllo.

FinOps e Cloud Native: declinazioni tecnologiche del modello

Se hai definito il team adeguato e compreso le fasi per l’adozione del modello FinOps sei a un passo da una gestione più efficiente dei servizi Cloud. Ora però bisogna capire come declinare da un punto di vista tecnologico le linee guida identificate nelle fasi di Benchmarking/Ottimizzazione descritte nel paragrafo precedente. 

In un contesto Cloud Native l’architettura di riferimento fa uso di un modello a microservizi ospitato all’interno di un cluster basato su Kubernetes (sia esso OpenShift di RedHat, Elastic Kubernetes Service di AWS oppure Azure Kubernetes Service di Microsoft Azure). In questo contesto è possibile dimensionare, governare e monitorare le risorse allocate o da allocare tramite delle capability tecnologiche. Tali capability, definibili in fase di deploy/design, sono:

  • Resource request/limits: Identificano a livello di Pod le risorse richiedibili e necessarie al servizio; 
  • Quality of Service: La tipologia di workload, al fine di ottimizzare la densità di utilizzo dei nodi da parte dello scheduler
  • Namespace: Segregazione logica all’interno del cluster che permette di definire un tetto massimo di CPU/RAM che i pod in esso contenuti possono impegnare;
  • Autoscaler: Sia verticali che orizzontali, aiutano a regolare il numero di repliche di un determinato POD all’interno del cluster.

Il rispetto e l’educazione a non tralasciare queste linee guida (o addirittura impostazioni di distribuzione) permette di mantenere sotto controllo l’effettivo utilizzo della capacità computazionale - sia essa Cloud o on-premise - e massimizzare la sua densità di utilizzo. 

Infine, tramite opportuni strumenti di raccolta dati e reporting, è possibile convertire le metriche tecniche (basate su CPU/RAM) in valori monetari più facilmente comprensibili. Questo, in pieno rispetto del concetto cardine di trasparenza e reportistica facilmente consultabile e comprensibile da tutti gli stakeholder aziendali.

Per concludere

Il modello FinOps è un approccio capace di migliorare la gestione finanziaria dei servizi Cloud a consumo. È utile per le organizzazioni che sfruttano le potenzialità del Cloud e ancora di più per quelle che stanno crescendo e gestiscono complessi cluster Kubernetes.

Come abbiamo visto nel corso dell’articolo, la metodologia FinOps fornisce un framework specifico che le aziende possono adottare per bilanciare correttamente velocità, costi e qualità. In questo modo è possibile rendere più efficiente l’utilizzo del Cloud, investire senza sprechi e continuare a crescere.

Guida alla Cloud Native Security