Lavoratori di Cloudflare

Funzioni serverless veloci ospitate dal CDN di Cloudflare

Funzioni serverless sulla rete perimetrale

Cloudflare ha un'intera suite di prodotti basati su cloud che ti offrono un "backend-as-a-service" e Cloudflare Workers è una parte importante di questa suite. I Cloudflare Worker sono funzioni serverless, scritte in Javascript (o preferibilmente Typescript) ospitate in un ambiente Node.js alimentato dal motore V8. Puoi scriverli localmente e distribuirli tramite la CLI "wrangler" o svilupparli direttamente nel cloud.

// This is a minimal example for a
// serverless function hosed by
// Cloudflare. You define this code
// in a JS-file and upload it via the
// 'wrangler'-CLI.

addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  return new Response("Hello world")
}

Se senti parlare di "funzioni serverless" qui per la prima volta, ecco una rapida spiegazione. Le funzioni serverless sono letteralmente funzioni che incapsulano la logica di business del tuo servizio e che sono ospitate nel cloud. Il vantaggio principale è che non devi sprecare un solo secondo del tuo tempo per ospitare, applicare patch e mantenere un server da solo. Devi solo "caricare" le tue funzioni e sono disponibili a livello globale in pochi minuti.

Cloudflare promuove in particolare la velocità dei suoi prodotti, poiché controlla una rete di distribuzione di contenuti molto ampia, con molti endpoint in tutto il pianeta. Naturalmente, questo CDN viene utilizzato anche per i Cloudflare Workers.

Come distribuire il tuo backend in tutto il mondo

Ogni volta che distribuisci i tuoi Cloudflare Worker, questi vengono condivisi e aggiornati in molte località in tutto il mondo. Ciò consente a Cloudflare di instradare le richieste in entrata all'endpoint sempre più vicino per invocare le tue funzioni serverless, riducendo il ritardo di rete a pochi millisecondi. Questo routing eseguito da Cloudflare è trasparente quando si effettuano richieste: il routing e il caricamento del bilanciamento vengono eseguiti automaticamente in background.

Per comprendere meglio la topologia dell'architettura di Cloudflare Worker, ecco una suddivisione dal livello alto a quello basso:

Come accennato, Cloudflare ha un CDN composto da molti server in diverse località del mondo
Una singola posizione è costituita da molti server che elaborano le richieste in arrivocoming
Zoomando su un singolo server, vediamo che questa macchina esegue un cosiddetto "runtime dei lavoratori", che è alimentato dal motore Javascript V8
Infine, la tua funzione serverless è solo un "isolato" all'interno di questo runtime; un singolo runtime può ospitare migliaia di funzioni contemporaneamente

Un'informazione particolarmente importante: ogni Cloudflare Worker distribuito ha la propria memoria, isolata da ogni altro processo. Ciò garantisce che i tuoi dati siano realmente accessibili solo dalla tua istanza.

Quando utilizzare Cloudflare Workers e quando no

Cloudflare Workers sembra molto eccitante e vale sicuramente la pena provarlo, anche se hai già app esistenti che utilizzano funzioni serverless di altri provider. Tuttavia, questo potrebbe anche indicare il motivo principale per cui il prodotto di Cloudflare è più difficile da adottare: molti servizi, come Next.js combinato con Vercel o Firebase di Google, offrono anche tali soluzioni. Se stai attualmente utilizzando i loro prodotti, passare a Cloudflare non ha molto senso.

Ma se stai iniziando un nuovo progetto, vale la pena considerare l'utilizzo di Cloudflare Workers come backend. Il loro utilizzo è praticamente illimitato in termini di casi d'uso. Inoltre Cloudflare offre una vasta gamma di altri servizi che potrebbero adattarsi alle tue esigenze.

Suggerimenti

Correlati

Addendum

Lingue