Secondo il sondaggio CNCF Cloud Native Survey 2022, l’adozione del serverless computing ha registrato un’impennata nel 2022. Questa crescente popolarità comporta il rischio potenziale di un aumento della spesa per il cloud, a meno che le aziende non adottino un approccio proattivo ai costi del serverless attraverso la strategia, l’ottimizzazione e il monitoraggio.

Ecco alcuni consigli su come preparare il team di sviluppo ad affrontare i costi del cloud serverless in modo proattivo e non reattivo.

Imparare i modelli di prezzo dei principali fornitori di servizi cloud

La scelta della giusta soluzione di serverless computing inizia dal fornitore di servizi cloud (CSP). Anche in questo caso serverless porterà a un nuovo modello di prezzi che il vostro team deve imparare. Ciascuno dei principali CSP offre il serverless computing con un proprio modello di prezzo. Ad esempio, Amazon Web Services ha annunciato prezzi differenziati per AWS Lambda, la sua offerta di calcolo serverless. Quando arrivano notizie del genere, spesso è un segnale per aggiornarsi sui modelli di prezzo del serverless.

Impiegare pratiche di coding efficienti nei vostri progetti serverless

L’introduzione del serverless computing nel vostro stack tecnologico cloud è un momento ideale per rivedere le pratiche di coding della vostra organizzazione. L’introduzione di pratiche di coding efficienti nei vostri progetti di sviluppo serverless è uno dei primi e più importanti passi che potete compiere nell’ambito delle vostre iniziative di ottimizzazione dei costi del serverless computing. Le pratiche di coding che aiutano a ridurre i costi del serverless computing includono:

  • Ridurre al minimo le dimensioni del codice
  • Utilizzo di librerie ottimali
  • Ottimizzazione delle prestazioni delle funzioni

Dimensionare correttamente le funzioni a partire dalla fase di progettazione

L’overprovisioning della memoria e l’allocazione della CPU sono due colpevoli spesso riscontrati alla base degli sforamenti dei costi del serverless computing. Quando eseguite una funzione serverless nella vostra applicazione cloud, il CSP alloca le risorse in base alla configurazione della funzione. Poi, quando arriva il momento della fatturazione, il CSP basa la fatturazione sulla quantità di risorse consumate dall’applicazione. È opportuno dedicare un po’ di tempo in più durante la fase di progettazione per determinare la quantità appropriata di risorse che ogni funzione serverless richiede, in modo da ridurre al minimo i costi.

Usare il calcolo solo quando è necessario

CloudZero consiglia agli sviluppatori di utilizzare il calcolo solo quando è necessario. L’esempio è quello di utilizzare le funzioni step per chiamare le API invece delle funzioni Lambda, in modo da pagare solo le funzioni step.

serverless-1200x385

Stabilire e monitorare i KPI relativi ai costi serverless

I principali CSP e le piattaforme di gestione del cloud includono dashboard di monitoraggio degli indicatori di prestazione chiave (KPI). Potete anche utilizzare strumenti di osservabilità, come Datadog, per il monitoraggio dei KPI, che dovrebbe avere un ruolo di primo piano nei vostri piani di progetto e di implementazione.

Il fulcro della gestione e del monitoraggio dei costi di serverless è l’adozione di KPI quali:

  • Costo per esecuzione. Questa metrica riflette il costo medio dell’esecuzione di una singola funzione per una sola volta. Il costo per esecuzione si calcola dividendo il costo totale per il numero di esecuzioni della funzione. Il monitoraggio di questo KPI è essenziale perché identifica quali sono le funzioni più costose da eseguire e che richiedono un’ottimizzazione per ridurre i costi del cloud.
  • Durata della funzione. La durata dell’esecuzione delle funzioni è un KPI importante da monitorare, perché tempi di esecuzione più lunghi significano costi più elevati. L’analisi di questa metrica aiuta a identificare le funzioni che impiegano troppo tempo per essere eseguite e che devono essere ottimizzate per ottenere ulteriori risparmi.
  • Tempo di inattività. Può sembrare un KPI innocuo da monitorare, ma il vostro CSP vi fa pagare comunque quando una funzione serverless è in esecuzione ma non svolge alcun lavoro utile, ad esempio quando è in attesa di input o output. Ridurre i tempi di inattività delle funzioni serverless è un’altra tattica fondamentale per ottimizzare l’utilizzo delle risorse e ridurre la spesa per il cloud.

Anche l’uso della memoria, l’uso della CPU, il numero di invocazioni e il tasso di errore contribuiscono all’aumento dei costi del cloud e dovete monitorarli di conseguenza. Dedicate del tempo anche all’analisi delle tendenze e fate in modo che i costi del cloud serverless vengano discussi nei vostri report di progetto, perché possono aiutare tutti a imparare a fare un uso più efficiente del cloud.

Giocare a tutto campo quando si tratta di monitoraggio dei costi e di avvisi

Molto probabilmente le competenze e le pratiche FinOps del cloud della vostra azienda sono ancora in fase di crescita. Se è così, l’aggiunta del serverless computing al vostro stack tecnologico può sollevare un nuovo spettro di problemi di spesa per il cloud, rendendo indispensabile un approccio a tutto campo alla gestione dei costi del cloud serverless. Ecco alcuni consigli per riuscirci:

  • Supportare la curva di apprendimento del vostro team cloud raddoppiando l’analisi dei report di fatturazione e utilizzo, almeno durante i progetti pilota di serverless computing.
  • Automatizzare le pratiche di gestione dei costi quando è possibile, ma non considerare l’automazione come un evento unico, “imposta e dimentica”. La gestione dei costi dei vostri primi progetti serverless è un processo di apprendimento sia per gli sviluppatori, sia per i membri del team FinOps.
  • Implementare il monitoraggio dei costi e gli avvisi sui vostri progetti di serverless computing fin dalle prime fasi del ciclo di vita del progetto. Potete utilizzare strumenti come AWS Cost Explorer per monitorare direttamente i costi del serverless e impostare avvisi per quando i costi del serverless superano il budget. Dovrete dedicare inoltre un po’ di tempo all’iterazione di questi avvisi per assicurarvi che i vostri team siano a conoscenza di picchi di utilizzo inaspettati o di inefficienze dell’applicazione che fanno lievitare i costi in modo inaspettato.

Considerare l’utilizzo di uno strumento specializzato per l’ottimizzazione dei costi di serverless

Una nuova classe di strumenti di ottimizzazione del cloud si concentra sull’ottimizzazione dei costi serverless. Ne sono un esempio Epsagon, IOpipe e Lumigo, tool che utilizzano algoritmi di machine learning per analizzare i modelli di utilizzo e suggerire ulteriori ottimizzazioni che gli sviluppatori possono apportare alle applicazioni di serverless computing per ridurre i costi.

L’introduzione del serverless computing può aggiungere un ulteriore livello di complessità ai vostri sforzi di ottimizzazione dei costi del cloud. Tuttavia, non deve rappresentare un enigma per la gestione dei costi o sconvolgere il CFO con un conto per il cloud spropositato. Se i vostri team sono proattivi e mettono in atto gli strumenti e i processi adeguati, potete introdurre il controllo dei costi serverless nel vostro programma di ottimizzazione dei costi del cloud con la stessa facilità con cui il calcolo serverless entra nel vostro stack tecnologico del cloud. Una tale proattività eviterà che l’introduzione di serverless nello stack tecnologico del vostro cloud faccia da contraltare alle vostre iniziative di ottimizzazione dei costi del cloud.