La storia d'amore con serverless di solito termina con la prima segnalazione di costi imprevisti o con il primo incidente che nessuno riesce a diagnosticare. È nel quotidiano, con il sistema in funzione nella produzione e con persone reali che ne dipendono, che l’approccio rivela il suo vero carattere.
Avviare serverless è facile. Operare senza server è dove risiede la difficoltà che nessuno menziona nei tutorial. Gli stessi attributi che rendono attraente la tecnologia, l’esecuzione effimera, la scalabilità automatica, la tariffazione in base all’utilizzo, diventano sfide concrete quando è necessario comprendere, monitorare e pagare ciò che è in funzione.
Questo testo riguarda quella fase. Non si tratta di concetto o implementazione, ma di ciò che accade dopo che tutto è in aria e la responsabilità di mantenere la barca a galla è tua. Osservabilità, costi e operatività: i temi che separano chi gioca serverless da chi opera realmente serverless.
Lo shock produttivo
In fase di sviluppo, tutto sembra sotto controllo. Testi una funzione, risponde, tu segui. In produzione, con il traffico reale, iniziano ad apparire comportamenti mai visti prima.
Le funzioni richiedono più tempo del previsto in determinati orari. Gli errori sorgono in punti imprevisti. Il costo mensile è diverso dal preventivo. E quando cerchi di capire il perché, scopri di non avere abbastanza visibilità per rispondere.
Questo è lo shock della [produzione serverless. Un sistema distribuito in decine di esecuzioni effimere è, per sua natura, difficile da vedere. E quello che non vedi, non lo controlli.
La tesi: il serverless trasferisce il lavoro all'operazione
La mia posizione è che serverless non elimina lo sforzo operativo, lo trasforma e, per certi versi, lo intensifica.
Hai smesso di occuparti dei server, è vero. Ma ha acquisito la responsabilità di gestire un sistema più diffuso, più dinamico e più difficile da osservare. Il lavoro non è scomparso. Ha cambiato natura.
Chiunque adotti il metodo serverless pensando che l’operazione sarà banale si prepara alla delusione. L'operazione è diversa e per padroneggiarla è necessario investire su tre fronti spesso trascurati: osservabilità, controllo dei costi e disciplina del monitoraggio continuo.
Osservabilità: vedere l'invisibile
In un'applicazione tradizionale, è possibile accedere al server e indagare. Su serverless, non ci sono server a cui unirsi. Le funzioni nascono e muoiono. Quando qualcosa va storto, l’ambiente del fallimento non esiste più.
Pertanto, l'osservabilità non è un lusso nel serverless, è l'unico modo per comprendere il sistema. Ciò significa che tre cose devono essere in atto fin dall’inizio.
Registri strutturati, che registrano ciò che ha fatto ciascuna funzione in modo ricercabile. Metriche che mostrano modelli di esecuzione, durata, errori e utilizzo nel tempo. E il tracciamento distribuito, che consente di seguire una richiesta mentre attraversa più funzioni e servizi.
Senza questi tre livelli, il debug di un problema in produzione diventa un'ipotesi. Con loro puoi rispondere alla domanda più importante dell'operazione: cosa sta succedendo in questo momento all'interno del mio sistema?
##Costi: il cattivo silenzioso
Il modello pay-per-use viene venduto come un vantaggio, e spesso lo è. Ma nella vita di tutti i giorni nasconde una trappola. Quando il costo è proporzionale all’utilizzo, un errore può costare denaro reale, in tempo reale.
Una funzione inserita in un loop improprio, un evento che innesca una cascata, un picco di traffico dannoso, tutto questo diventa fattura. E poiché serverless si ridimensiona automaticamente, adatta il problema con la stessa efficienza con cui scala il successo.
Il funzionamento serverless in modo responsabile richiede un attento monitoraggio dei costi. Imposta avvisi per spese anomale. Comprendi quali funzioni consumano di più. Stabilisci dei limiti dove ha senso. La fine del mese non può essere il momento in cui scopri che qualcosa è andato fuori controllo.
Per un’organizzazione pubblica, questo è ancora più delicato: un budget prevedibile è importante, e una fattura per il cloud che aumenta senza preavviso è un problema di gestione, non solo tecnico. Il costo deve essere monitorato come qualsiasi altro parametro sullo stato di salute del sistema.
Operazioni quotidiane: cosa cambia nella routine
Aggiornamenti e versioni
L'aggiornamento di dozzine di funzioni indipendenti richiede un processo. Senza automazione e controllo delle versioni, perdi il controllo di cosa viene eseguito e dove. Una sana routine operativa considera ogni cambiamento come qualcosa di tracciabile e reversibile.
Gestire i fallimenti parziali
In un sistema diffuso, raramente i fallimenti fanno crollare tutto. Invece, alcune parti falliscono mentre altre seguono. Operare bene significa progettare per fallimenti parziali: tentativi automatici, code che contengono ciò che non è stato possibile elaborare e chiarezza su cosa fare quando una parte cade.
Limiti del fornitore
Ogni piattaforma serverless] ha limiti di esecuzione simultanea, durata e dimensioni. Nella vita di tutti i giorni, questi limiti possono sorprenderti al culmine. Conoscerli e monitorare quanto sei vicino a loro fa parte dell'operare in modo maturo.
Un esempio di vita operativa quotidiana
Pensate a un [sistema serverless che elabori le richieste dei cittadini per un servizio municipale. Tutto funziona bene finché, in un giorno di scadenza, il volume sale alle stelle.
Senza osservabilità, il team vedrebbe solo lamentele di lentezza senza conoscerne la causa. Con l’osservabilità vedrebbe che una determinata funzione si scontra con un limite competitivo e che i costi sono aumentati insieme al traffico.
Un’operazione matura agirebbe con le informazioni: adeguerebbe i limiti, identificherebbe i colli di bottiglia e il giorno successivo rivedrebbe i costi di punta per capire se ne valeva la pena. Senza questa visibilità sarebbe difficile spegnere gli incendi nell’oscurità. È questa differenza che definisce la maturità operativa.
Il trading è il luogo in cui la verità viene a galla
Serverless premia chi lo gestisce seriamente e punisce chi lo ignora dopo il lancio. La tecnologia offre flessibilità e risparmi, ma richiede un'attenzione continua all'osservabilità e ai costi.
La lezione che porto è semplice. Il lancio è l'inizio, non la fine. I sistemi vivono nella vita di tutti i giorni, ed è lì che scopriamo se l’architettura è stata una buona decisione o una promessa non mantenuta.
Serverless brilla per chi capisce che il conto, tecnico e finanziario, arriva ogni giorno, non solo al momento del lancio.
Se gestisci serverless in produzione e ritieni di non avere visibilità o controllo sui costi, vale la pena parlarne. Ho altri articoli sul blog sul concetto di serverless, casi d'uso e implementazione che completano questo viaggio dall'inizio al giorno per giorno.
Leggi anche
- Prestazioni applicative: cosa cambia nella vita quotidiana di chi utilizza un prodotto
- Operatori Cloudflare in produzione: cosa cambia dopo hello world
- Osservabilità oltre i log: cosa cambia nella pratica OpenTelemetry
- Serverless per applicazioni: architetture con esempi reali
- Serverless per applicazioni: architettura in pratica
- GitOps con ArgoCD: Automazione della distribuzione dichiarativa