JavaScript serverless viene utilizzato per creare applicazioni web serverless con latenza minima.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Che significa serverless?
Serverless e container a confronto
Edge computing
Function as a Service (FaaS)
Platform as a Service (PaaS)
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
JavaScript serverless è un codice JavaScript che comprende un'intera applicazione o parte di essa, viene eseguito solo quando richiesto e non è ospitato su server proprietari. Consente agli sviluppatori di creare applicazioni serverless ad alte prestazioni e a bassa latenza (come le applicazioni JAMstack) che vengono eseguite su una rete ed evita molti problemi associati ad altre applicazioni serverless, come i cold start.
JavaScript serverless è ospitato in una rete perimetrale o da un servizio di caching HTTP, che memorizza i contenuti per rispondere rapidamente alle richieste HTTP. Gli sviluppatori possono scrivere e distribuire funzioni JavaScript che elaborano le richieste HTTP prima che raggiungano il server di origine.
Utilizzando JavaScript serverless, è possibile espandere le funzionalità e migliorare l'esperienza utente delle applicazioni esistenti eseguendo il codice sul perimetro di rete, oppure creare una nuova applicazione completamente serverless, veloce e altamente scalabile. Cloudflare Workers è una piattaforma JavaScript serverless.
Varnish è un acceleratore web progettato per velocizzare le applicazioni e migliorare le prestazioni dei siti. È un HTTP reverse proxy con caching, ovvero si posiziona davanti a qualsiasi server web e accelera il traffico HTTP da e verso quel server tramite la memorizzazione, di qualsiasi contenuto richiesto frequentemente dai client. Varnish Configuration Language, o VCL, è utilizzato in combinazione con Varnish per consentire agli sviluppatori di personalizzare il modo in cui Varnish gestisce le richieste web.
VCL è un linguaggio di configurazione progettato per semplificare la configurazione della cache di Varnish; non è un linguaggio di programmazione a tutti gli effetti. VCL non è sufficientemente flessibile per creare o ampliare delle applicazioni, e le sue capacità sono limitate rispetto a JavaScript. Inoltre, VCL non è utilizzato al di fuori delle implementazioni di Varnish e, di conseguenza, la maggior parte degli sviluppatori non ha molta dimestichezza con esso. Al contrario, JavaScript è onnipresente ed è già ampiamente utilizzato per la creazione di applicazioni. L'utilizzo di JavaScript in un'architettura serverless consente agli sviluppatori di creare applicazioni complete in un linguaggio che conoscono bene.
JavaScript serverless consente a un gruppo di sviluppatori di sfruttare il calcolo serverless sul perimetro di rete, e consente loro di creare una maggiore varietà di applicazioni.
Il codice JavaScript serverless viene eseguito in una rete di caching HTTP, che è più vicina all'utente finale rispetto al codice ospitato su un server di origine. Di conseguenza, le richieste non devono raggiungere il server di origine e tornare indietro, e l'applicazione risponde molto più rapidamente alle interazioni dell'utente. Maggiore è la distribuzione geografica delle ubicazioni perimetrali di una rete di caching, maggiore sarà la riduzione della latenza.
In un modello serverless, le applicazioni sono suddivise in funzioni, e il codice della funzione viene eseguito in risposta a determinati eventi. Altrimenti, non funziona. L'evento che attiva l'esecuzione di JavaScript serverless è una richiesta HTTP. Gli sviluppatori possono personalizzare il tipo di richieste HTTP a cui le loro funzioni JavaScript rispondono e il modo in cui la richiesta HTTP viene modificata o soddisfatta.
Una richiesta HTTP è una richiesta inviata tramite HTTP (Hypertext Transfer protocollo) da un client a un server. I browser traducono le azioni dell'utente, come il clic su un collegamento ipertestuale o l'invio di un modulo, in richieste HTTP. La richiesta viene quindi inviata al server, il quale invia una risposta HTTP per soddisfarla. Una richiesta HTTP avviene anche quando un'applicazione effettua una chiamata API.
Il caching HTTP avviene quando un server o un browser salva la copia di una risposta alla richiesta HTTP di un utente al fine di produrre risposte più rapide alle richieste future. Un server CDN è un esempio di cache HTTP. Alcuni servizi di caching HTTP consentono agli sviluppatori di personalizzare il modo in cui questo servizio opera per le loro applicazioni.
Cloudflare è una rete perimetrale di caching HTTP con datacenter distribuiti in tutto il mondo, e consente agli sviluppatori di scrivere e distribuire il proprio codice JavaScript sul perimetro della rete. Nella rete di Cloudflare, il caching HTTP non avviene in un server specifico, ma nel datacenter più vicino all'origine della richiesta HTTP.
I service worker sono degli script che i browser scaricano ed eseguono per creare esperienze personalizzate per gli utenti. Essi rendono possibili nel browser funzionalità quali le notifiche push, la sincronizzazione in background e la capacità di funzionare anche offline. Sono scritti in linguaggio JavaScript e intercettano, modificano e rispondono alle richieste HTTP prima che raggiungano l'Internet.
Possono rispondere alle richieste HTTP senza contattare il server web
Possono modificare le richieste e le risposte HTTP
Cloudflare Workers è una piattaforma che consente di eseguire le funzioni serverless il più vicino possibile all'utente finale. In sostanza, il codice serverless stesso viene memorizzato sulla rete e viene eseguito quando riceve il tipo di richiesta corretto. Cloudflare Workers è scritto in JavaScript e utilizza l'API dei service worker, il che significa che possono sfruttare tutte le funzionalità offerte da questi ultimi. Per l'esecuzione sfruttano il motore Chrome V8. Il codice di Cloudflare Workers è ospitato nella vasta rete di datacenter Cloudflare, sparsi in tutto il mondo.
Chrome V8, noto anche come "V8", è un motore JavaScript sviluppato da Google per la compilazione, l'ottimizzazione e l'esecuzione di codice JavaScript. Utilizzando V8 per l'esecuzione di JavaScript, il tempo di avvio per i worker in JavaScript si riduce notevolmente, eliminando nella maggior parte dei casi il problema dei "cold start". V8 è anche ampiamente analizzato per individuare vulnerabilità di sicurezza, il che lo rende ideale per eseguire codice JavaScript in modo sicuro.
Una delle principali differenze tra l'utilizzo di Cloudflare Workers e l'utilizzo di service worker è che questi ultimi vengono eseguiti sul lato client e devono essere scaricati dal browser dell'utente, mentre Cloudflare Workers viene eseguito sul perimetro della rete di Cloudflare, che si interpone tra l'utente e il resto di Internet, e gira di fatto all'interno della rete stessa.
Scopri di più su Cloudflare Workers e sul motivo che ci ha spinto a crearlo.