Serverless
Cloud Computing
Arquitetura de Software
Inovação
Estratégia Digital

Serverless per le applicazioni: cos'è e perché è importante

Serverless non significa non avere server, ma smettere di preoccuparsi di essi e concentrarsi su ciò che genera valore.

Pochi termini tecnologici generano tanta confusione quanto "serverless." Il nome suggerisce che non ci siano server, il che è semplicemente falso. Ci sono dei server, ovviamente, ma non ne sei più responsabile. Ed è in questo cambio di responsabilità che vive l'intera idea.

Per coloro che guidano la tecnologia o i prodotti, comprendere serverless non è un capriccio tecnico. Significa comprendere uno dei cambiamenti più profondi nel modo in cui il software viene creato e gestito. Un cambiamento che ha conseguenze dirette in termini di costi, velocità e concentrazione sul team.

Questo testo è un'introduzione onesta. Non venderò serverless come soluzione per tutto, perché non lo è. Ti spiegherò cos'è, perché è emerso e quando ha senso, in modo che tu possa decidere con chiarezza, non con mode passeggere.

Cosa significa realmente serverless

Per decenni, l'esecuzione di un'applicazione ha richiesto la cura dei server. Acquistare o noleggiare macchine, installare sistemi, applicare aggiornamenti, assicurarsi che tutto rimanga in piedi. Anche nel cloud, qualcuno aveva ancora bisogno di scalare e gestire queste macchine.

Serverless inverte questa logica. Tu scrivi il tuo codice, definisci quando deve essere eseguito e il fornitore di servizi cloud si prende cura di tutto il resto, fornendolo, ridimensionandolo e mantenendolo online. Non pensi più ai server. Basta pensare alla funzione che deve essere svolta.

È come passare dal possedere un'auto all'utilizzo del trasporto su richiesta. Non ti occupi della manutenzione, dell'assicurazione o del parcheggio. Ordina quando ne hai bisogno, paga quello che usi e vai avanti.

Perché è successo proprio adesso?

Serverless non è nato per caso. È la risposta a un'antica frustrazione: i team tecnologici dedicavano troppo tempo alla manutenzione dell'infrastruttura e troppo poco alla risoluzione dei problemi aziendali.

Ogni ora trascorsa a configurare un server è un'ora non spesa sul prodotto. Per la maggior parte delle organizzazioni, la gestione dei server non è mai stata una fonte di valore, bensì un costo necessario. Serverless promette di eliminare gran parte di questi costi.

Aggiungete a ciò l’evoluzione del cloud computing e la pressione per fornire risultati più rapidi, e le basi erano pronte. Serverless è, in sostanza, il tentativo di riportare i team a concentrarsi su ciò che conta davvero.

La tesi: serverless è una decisione focalizzata

La mia posizione è che serverless non è principalmente una decisione tecnica. È una decisione su dove la tua squadra dedica attenzione.

Adottando serverless, stai dicendo che prendersi cura dei server non è l'obiettivo in cui si desidera investire il talento del team. Stai esternalizzando la complessità che non differenzia il tuo prodotto, per concentrare l'energia su ciò che lo differenzia.

Ciò è particolarmente potente per le organizzazioni con team snelli. Coloro che non dispongono di un grande team infrastrutturale ottengono l’accesso alla robustezza operativa che in precedenza avevano solo le grandi aziende. È la democratizzazione della capacità tecnica.

Ma, come ogni decisione, comporta dei compromessi. E ignorarli è il motivo per cui le persone si fanno male.

I vantaggi che rendono attraente il serverless

Il primo è il modello di costo. In serverless, di solito paghi per ciò che effettivamente utilizzi, non per la capacità inattiva. Per carichi di lavoro intermittenti o imprevedibili, ciò può significare risparmi reali e nessuna spesa quando nessuno lo utilizza.

Il secondo è il ridimensionamento automatico. Quando la domanda aumenta, la piattaforma si ridimensiona da sola. Quando cade, si ritrae. Non è necessario prevedere picchi o tenere le macchine ferme in attesa dell'arrivo del movimento.

Il terzo è la velocità di sviluppo. Senza il sovraccarico della gestione dell'infrastruttura, i team possono passare dalla codifica alla produzione più rapidamente. Per coloro che hanno bisogno di convalidare idee e iterare, questo è carburante.

I limiti che devi conoscere

Il serverless non è magico e trattarlo come tale è una ricetta per la frustrazione.

Esiste il fenomeno del "cold start": le funzioni che erano inattive potrebbero impiegare un momento in più per rispondere alla prima chiamata. Per alcune applicazioni questo è irrilevante; per altri, sensibili alla latenza, è importante.

C’è anche il problema della dipendenza dal fornitore. Le architetture serverless tendono ad essere abbinate ai servizi specifici di ciascun cloud, il che può rendere difficile l'eventuale migrazione. Questo legame deve essere una scelta consapevole, non una sorpresa.

E c’è la sfida di pensare diversamente. Serverless richiede un nuovo modello mentale, basato su eventi e piccole funzioni. I team abituati alle applicazioni tradizionali hanno bisogno di tempo per adattarsi, e questo ha un costo.

Quando il serverless ha senso

Il serverless brilla in scenari specifici. Carichi di lavoro con domanda variabile, elaborazione basata sugli eventi, automazioni, API con traffico irregolare, nuovi progetti che devono decollare rapidamente.

Pensa a un sistema di notifica delle app, che attiva i messaggi in momenti imprevedibili. O nell'elaborazione che avviene quando viene inviato un file. Oppure in una startup che convalida un prodotto senza voler creare un'infrastruttura. Questi sono casi in cui il solo pagamento per l’utilizzo e il ridimensionamento si adattano come un guanto.

D’altro canto, le applicazioni con carico costante e prevedibile, o con requisiti di latenza rigorosi, potrebbero trarre maggiori vantaggi dagli approcci tradizionali. Non esiste una risposta unica. C'è adattamento al contesto.

Focus è il vero prodotto

Alla fine, serverless è uno strumento al servizio di un'idea più grande: che il tuo team dovrebbe dedicare tempo a ciò che distingue il tuo prodotto, non a ciò che lo tiene semplicemente a galla.

Comprendere serverless significa comprendere questo compromesso. Rinunci a un po' di controllo e guadagni concentrazione, velocità e semplicità operativa. Per molte organizzazioni, è un ottimo affare. Per altri, non così tanto. L’importante è decidere sapendo qual è la posta in gioco.

Una buona tecnologia è quella che scompare, lasciando il team libero di pensare al problema giusto. Serverless, se applicato correttamente, fa esattamente questo.

Se stai valutando se serverless ha senso per il tuo prodotto, vale la pena discuterne prima di decidere. Ho altri articoli sul blog che esplorano il serverless con esempi, nella pratica e nella vita di tutti i giorni, per approfondire man mano che procedi con questa decisione.

Leggi anche