Che cos'è il computing serverless? | Definizione di serverless

Il computing serverless è un metodo di fornire servizi di backend su base "as-used". Si usano ancora i server, ma un'impresa che acquista servizi backend da un vendor serverless riceve un addebito sulla base dell'uso e non su un valore fisso di larghezza di banda o di numero di server.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire il computing serverless
  • Delineare i vantaggi dell'utilizzare un'architettura serverless

Copia link dell'articolo

Cos'è il computing serverless?

Il computing serverless è un metodo di fornire servizi di backend su base "as-used". Un provider serverless consente agli utenti di scrivere e implementare codice senza doversi preoccupare dell'infrastruttura sottostante. Un'impresa che acquista servizi backend da un vendor serverless riceve un addebito sulla base delle elaborazioni e non deve prefissare né pagare per una determinata larghezza di banda o un determinato numero di server, dato che il servizio è scalabile automaticamente. Tenere presente che anche se si chiama serverless, vengono comunque ancora usati server fisici, ma è un aspetto che non tocca gli sviluppatori.

All'inizio del Web, chiunque volesse creare un'applicazione Web doveva possedere l'hardware fisico necessario per far eseguire un server, cosa che è costosa e farraginosa.

Poi arrivò il cloud computing, in cui un determinato numero di server o spazio su server poteva essere noleggiato in remoto. Gli sviluppatori e le imprese che noleggiano tale spazio nei server a unità fisse, in genere ne acquistano in eccesso per garantire che eventuali picchi di traffico o attività non superino i limiti mensili o rompano le loro applicazioni. Ciò significa che gran parte dello spazio sul server per cui viene pagato può andare sprecato. I provider cloud hanno introdotto dei modelli automaticamente scalabili per affrontare la questione, ma anche così, un picco indesiderato di attività, come un attacco DDoS, potrebbe risultare molto costoso.

Vantaggi serverless

Il computing serverless consente agli sviluppatori di acquistare servizi backend su base "pay-as-you-go" flessibile, e cioè gli sviluppatori pagano solo per i servizi che usano. È come passare da un abbonamento per il cellulare a tariffa fissa e limite fisso mensili, a uno che ti addebita solo ogni byte di dati che usi davvero.

Il termine "serverless" è un po' fuorviante perché si usano comunque dei server per fornire questi servizi backend, ma tutto lo spazio nei server e tutto ciò che concerne l'infrastruttura è gestito dal provider. Serverless significa che gli sviluppatori possono lavorare senza doversi preoccupare dei server.

Cosa sono i servizi backend? Qual è la differenza tra frontend e backend?

Lo sviluppo delle applicazioni in genere si divide in due realtà: frontend e backend. Il frontend è la parte dell'applicazione che vedono e con cui interagiscono gli utenti, come ad esempio il layout visivo. Il backend è la parte che gli utenti non vedono; include il server in cui vivono i file dell'applicazione e il database in cui persistono i dati utente e la logica settoriale.

Differenze tra frontend e backend di un'applicazione

Ad esempio, immaginiamo un sito Web che venda biglietti per i concerti. Quando un utente digita l'indirizzo di un sito Web nella finestra del browser, il browser invia una richiesta al server di backend, che risponde con i dati del sito Web. L'utente quindi vedrà il frontend del sito Web, che includerà testo, immagini e campi che potrà riempire. L'utente quindi può interagire con uno dei campi del frontend per cercare uno dei suoi musicisti preferiti. Quando l'utente fa clic su "Invia", questo innesca una nuova richiesta al backend. Il codice del backend controlla il database per vedere se esiste un musicista con quel nome e, se così fosse, quand'è il suo prossimo concerto e quanti biglietti sono disponibili. Il backend quindi passa questi dati al frontend, il quale li visualizza in un modo che ha senso per l'utente. Allo stesso modo, quando l'utente crea un account e immette le informazioni finanziare per acquistare i biglietti, si verifica un'altra conversazione tra il frontend e il backend.

Che tipi di servizi backend può fornire il computing serverless?

La maggior parte dei provider serverless offre servizi di database e archiviazione, e molti hanno anche delle piattaforme Function-as-a-Service (FaaS), come Cloudflare Workers. FaaS consente agli sviluppatori di eseguire piccoli pezzi di codice sul perimetro di rete. Con FaaS, gli sviluppatori possono creare un'architettura modulare, creando una base di codice più scalabile senza dover spendere risorse per mantenere il backend sottostante. Scopri di più su FaaS >>

Quali sono i vantaggi del computing serverless?

  • Costi minori: il computing serverless è generalmente molto conveniente, dato che con i provider cloud classici di servizi backend (allocazione di server) spesso l'utente finisce per pagare per spazio non utilizzato o per periodi di CPU inattiva.
  • Scalabilità semplificata: gli sviluppatori che usano l'architettura serverless non devono preoccuparsi delle politiche per una scalabilità in crescita del codice. Il provider serverless si occupa di tutta la scalabilità su richiesta.
  • Codice backend semplificato: con FaaS gli sviluppatori possono creare funzioni semplici che eseguono indipendentemente uno scopo singolo, come eseguire una chiamata API.
  • Tempistiche velocizzate: l'architettura serverless può ridurre in modo significativo il tempo di commercializzazione. Invece di aver bisogno di un processo complicato di implementazione per rilasciare correzioni di bug e nuove funzioni, gli sviluppatori possono aggiungere e modificare il codice in modo frammentario.

Scopri di più sui vantaggi del serverless computing.

Come si confronta il serverless con altri modelli di backend cloud?

Un paio di tecnologie che vengono spesso confuse con l'elaborazione serverless sono Backend-as-a-Service e Platform-as-a-Service. Sebbene condividano le somiglianze, questi modelli non soddisfano necessariamente i requisiti del serverless.

Backend-as-a-service (BaaS) è un modello di servizio in cui un provider cloud offre servizi di backend come l'archiviazione dei dati, in modo che gli sviluppatori possano concentrarsi sulla scrittura del codice front-end. Ma mentre le applicazioni serverless sono basate su eventi ed eseguite sul perimetro, le applicazioni BaaS potrebbero non soddisfare nessuno di questi requisiti. Scopri di più su BaaS >>

Platform-as-a-service (PaaS) è un modello in cui gli sviluppatori essenzialmente noleggiano tutti gli strumenti necessari per sviluppare e distribuire applicazioni da un provider cloud, inclusi elementi come sistemi operativi e middleware. Tuttavia, le applicazioni PaaS non sono facilmente scalabili come le applicazioni serverless. Inoltre, PaaS non viene eseguito necessariamente ai margini e spesso presenta un notevole ritardo di avvio che non è presente nelle applicazioni serverless. Scopri di più su PaaS >>

Infrastructure-as-a-service (IaaS) è un termine generico per i provider di cloud che ospitano l'infrastruttura per conto dei loro clienti. I provider IaaS possono offrire funzionalità serverless, ma i termini non sono sinonimi. Scopri di più su IaaS >>

Qual è il futuro del serverless?

L'elaborazione serverless continua a evolversi man mano che i provider serverless escogitano soluzioni per superare alcuni dei suoi svantaggi. Uno di questi inconvenienti è l'avvio a freddo.

In genere, quando una particolare funzione serverless non viene chiamata da un po' di tempo, il provider disattiva la funzione per risparmiare energia ed evitare un over-provisioning. La prossima volta che un utente esegue un'applicazione che chiama quella funzione, il provider serverless dovrà riavviarla e ricominciare a ospitare quella funzione. Questo tempo di avvio aggiunge una latenza significativa, nota come "avvio a freddo".

Una volta che la funzione è attiva e funzionante, verrà servita molto più rapidamente alle richieste successive (avvii a caldo), ma se la funzione non viene richiesta di nuovo per un po', la funzione tornerà nuovamente inattiva. Ciò significa che il prossimo utente che richiederà quella funzione sperimenterà un avvio a freddo. Fino a poco tempo fa, gli avvii a freddo erano considerati un compromesso necessario per l'utilizzo delle funzioni serverless.

Cloudflare Workers ha risolto questo problema attivando in anticipo le funzioni serverless, durante l' handshake TLS . Dal momento che le funzioni Workers vengono avviate ai margini in un lasso di tempo molto breve, persino inferiore al tempo necessario per completare la stretta di mano, il risultato è una piattaforma FaaS con zero avvii a freddo. Per iniziare a utilizzare Cloudflare Workers, consulta la documentazione per gli sviluppatori.

Man mano che vengono affrontati sempre più gli svantaggi dell'utilizzo del serverless e la popolarità dell'edge computing cresce, possiamo aspettarci di vedere l'architettura serverless diventare più diffusa.