Travailleurs Cloudflare

Fonctions sans serveur rapides hébergées par le CDN de Cloudflare

Fonctions sans serveur sur le réseau Edge

Cloudflare propose toute une suite de produits basés sur le cloud qui vous offrent un « backend en tant que service », et Cloudflare Workers est une partie importante de cette suite. Les Cloudflare Workers sont des fonctions sans serveur, écrites en Javascript (ou de préférence, Typescript) qui sont hébergées dans un environnement Node.js alimenté par le moteur V8. Vous pouvez les écrire localement et les déployer via la CLI « wrangler » ou les développer directement dans le 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")
}

Si vous entendez parler de « fonctions sans serveur » ici pour la première fois, voici une explication rapide. Les fonctions sans serveur sont littéralement des fonctions qui encapsulent la logique métier de votre service et qui sont hébergées dans le cloud. Le principal avantage est que vous n'avez pas à perdre une seule seconde de votre temps à héberger, corriger et maintenir vous-même un serveur. Il vous suffit de « télécharger » vos fonctions et elles sont disponibles dans le monde entier en quelques minutes.

Cloudflare favorise particulièrement la vitesse de ses produits, car il contrôle un très grand réseau de diffusion de contenu, avec de nombreux points de terminaison à travers la planète. Bien entendu, ce CDN est également utilisé pour les Cloudflare Workers.

Comment distribuer votre backend dans le monde entier

Chaque fois que vous déployez vos Cloudflare Workers, ils sont partagés et mis à jour sur de nombreux sites dans le monde. Cela permet à Cloudflare d'acheminer les requêtes entrantes vers le point de terminaison toujours le plus proche pour appeler vos fonctions sans serveur, ce qui réduit le délai du réseau à quelques millisecondes. Ce routage effectué par Cloudflare est transparent lors des demandes - le routage et le chargement de l'équilibre se font automatiquement en arrière-plan.

Pour mieux comprendre la topologie de l'architecture de Cloudflare Worker, voici une ventilation du haut au bas niveau :

Comme mentionné, Cloudflare dispose d'un CDN composé de nombreux serveurs situés à différents endroits dans le monde.
Un seul emplacement lui-même se compose de nombreux serveurs qui traitent les demandes entrantes
En zoomant sur un seul serveur, nous voyons que cette machine exécute un soi-disant "Workers runtime", qui est alimenté par le moteur Javascript V8
Enfin, votre fonction sans serveur n'est qu'un « isolat » à l'intérieur de ce runtime ; un seul runtime peut héberger des milliers de fonctions simultanément

Une information particulièrement importante : chaque Cloudflare Worker que vous déployez a sa propre mémoire, isolée de tout autre processus. Cela garantit que vos données ne sont réellement accessibles que par votre instance.

Quand utiliser Cloudflare Workers, et quand pas

Cloudflare Workers semble très excitant et vaut vraiment la peine d'être essayé, même si vous avez déjà des applications existantes qui utilisent des fonctions sans serveur d'autres fournisseurs. Pourtant, cela pourrait également indiquer la principale raison pour laquelle le produit de Cloudflare est plus difficile à adopter : de nombreux services, tels que Next.js combiné à Vercel ou Firebase by Google, proposent également de telles solutions. Si vous utilisez actuellement leurs produits, passer à Cloudflare n'a pas beaucoup de sens.

Mais si vous démarrez un nouveau projet, il vaut la peine d'envisager d'utiliser Cloudflare Workers comme backend. Leur utilisation est pratiquement illimitée en termes de cas d'utilisation. De plus, Cloudflare propose une large gamme d'autres services qui pourraient correspondre à vos besoins.

Suggestions

Connexe

Addenda

Langues