Comment fonctionne le JavaScript sans serveur ? Service Workers et Cloudflare Workers

JavaScript sans serveur est utilisé pour construire des applications web sans serveur avec une latence minimale.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Définissez le JavaScript sans serveur
  • Découvrez comment JavaScript sans serveur est utilisé pour créer des applications web à faible latence
  • Découvrez pourquoi JavaScript est plus efficace que VCL
  • Comprenez la mise en cache HTTP et les requêtes HTTP
  • Apprenez en sur les Service Workers, les Cloudflare Workers, et les différences entre eux

Copier le lien de l'article

Qu'est-ce que JavaScript sans serveur ?

JavaScript sans serveur est un code JavaScript qui comprend tout ou partie d'une application, n'est exécuté que sur demande et n'est pas hébergé sur des serveurs propriétaires. Il permet aux développeurs de créer des applications sans serveur à hautes performances et à faible latence (comme les applications JAMstack)qui s'exécutent sur le réseau et d'éviter de nombreux problèmes inhérents aux autres applications sans serveur, tels que les démarrages à froid.

JavaScript sans serveur est hébergé dans un réseau de périphérie ou par un service de mise en cache HTTP, qui enregistre le contenu pour répondre rapidement aux demandes HTTP. Les développeurs peuvent écrire et déployer des fonctions JavaScript qui traitent les requêtes HTTP avant qu'elles ne soient acheminées jusqu'au serveur d'origine.

JavaScript sans serveur sur le serveur Edge

En utilisant le JavaScript sans serveur, il est possible d'étendre les fonctionnalités et d'améliorer l'expérience utilisateur des applications existantes en exécutant du code en périphérie, ou de créer une nouvelle application entièrement sans serveur qui est rapide et hautement évolutive. Cloudflare Workers est une plateforme JavaScript sans serveur.

Qu'est-ce que Varnish ?

Varnish est un accélérateur web conçu pour accélérer les applications web et améliorer les performances des sites Web. Il s'agit d'un proxy inverse HTTP en cache, ce qui signifie qu'il se place devant n'importe quel serveur web et accélère le trafic HTTP vers et depuis ce serveur en mettant en cache ou en mémorisant tout contenu qui est fréquemment demandé par les clients Web. Varnish Configuration Language, ou VCL, est utilisé conjointement avec Varnish pour permettre aux développeurs de personnaliser la manière dont Varnish gère les requêtes web.

Quel est l'avantage d'utiliser JavaScript au lieu de VCL dans une architecture sans serveur ?

VCL est un langage de configuration conçu pour rendre le cache de Varnish facile à configurer ; ce n'est pas un langage de programmation à part entière. VCL n'est pas assez flexible pour créer ou développer des applications robustes. Il est limité dans ce qu'il peut faire par rapport à JavaScript. De plus, VCL n'est pas utilisé en dehors des implémentations de Varnish et, par conséquent, la plupart des développeurs ne le connaissent pas. En revanche, JavaScript est omniprésent et déjà largement utilisé pour la création d'applications. L'utilisation de JavaScript dans une architecture sans serveur permet aux développeurs de créer des applications intégrales dans un langage qui leur est familier.

JavaScript sans serveur permet à un plus grand groupe de développeurs de tirer parti de l'informatique sans serveur en périphérie et permet à ces développeurs de créer une plus grande variété d'applications.

Comment la création d'une application avec JavaScript sans serveur permet-elle de réduire la latence ?

JavaScript sans serveur s'exécute dans un réseau de mise en cache HTTP, qui est plus proche de l'utilisateur final que le code hébergé sur un serveur d'origine. Ainsi, les requêtes ne doivent pas faire l'aller-retour jusqu'au serveur d'origine, et l'application répond beaucoup plus rapidement aux interactions de l'utilisateur. Plus un réseau de mise en cache est géographiquement étendu, plus la latence sera réduite.

Quand le JavaScript sans serveur s'exécute-t-il ?

Dans un modèle sans serveur, les applications sont décomposées en fonctions et le code des fonctions s'exécute en réponse à certains événements. Il ne s'exécute pas autrement. L'événement qui déclenche l'exécution de JavaScript sans serveur est une requête HTTP. Les développeurs peuvent personnaliser le type de requêtes HTTP auxquelles leurs fonctions JavaScript répondent, et la manière dont la requête HTTP sera modifiée ou exécutée.

Qu'est-ce qu'une requête HTTP ?

Il s'agit d'une requête envoyée via HTTP (protocole de transfert hypertexte) d'un client à un serveur. Les navigateurs traduisent les actions des utilisateurs, comme le fait de cliquer sur un lien hypertexte ou de soumettre un formulaire, en requêtes HTTP. La requête est ensuite envoyée au serveur, qui envoie une réponse HTTP pour y donner suite. Une requête HTTP se produit également lorsqu'une application effectue un appel API.

Qu'est-ce que la mise en cache HTTP ?

La mise en cache HTTP consiste pour un serveur ou un navigateur à enregistrer une copie d'une réponse à une requête HTTP d'un utilisateur afin de produire des réponses plus rapides aux futures requêtes. Un serveur RDC est un exemple de cache HTTP. Certains services de mise en cache HTTP permettent aux développeurs de personnaliser le fonctionnement de la mise en cache HTTP pour leurs applications.

Cloudflare est un réseau de périphérie de mise en cache HTTP doté de centres de données dans le monde entier, et il permet aux développeurs d'écrire et de déployer leur propre JavaScript à la périphérie du réseau. Dans le réseau Cloudflare, la mise en cache HTTP n'a pas lieu dans un serveur spécifique, mais plutôt dans le centre de données le plus proche de la source de la requête HTTP.

Que sont les Service Workers ?

Les "Service Workers" sont des scripts que les navigateurs téléchargent et exécutent afin de créer des expériences personnalisées pour les utilisateurs. Les Service Workers permettent d'utiliser des fonctionnalités telles que les notifications "push", la synchronisation en arrière-plan et la fonctionnalité hors ligne dans le navigateur. Écrits au format JavaScript, ils interceptent, modifient et répondent aux requêtes HTTP avant que celles-ci n'atteignent l'Internet.

Two ways service workers can handle HTTP traffic:

Le travailleur social répond

Les Service Workers peuvent répondre aux requêtes HTTP sans contacter le serveur web

Le travailleur du service modifie la demande

Les Service Workers peuvent modifier les requêtes et les réponses HTTP

Que sont les Cloudflare Workers ?

Cloudflare Workers est une plateforme permettant aux fonctions sans serveur de fonctionner au plus près de l'utilisateur final. En substance, le code sans serveur lui-même est mis en cache sur le réseau et s'exécute lorsqu'il reçoit le bon type de requête. Cloudflare Workers est écrit en JavaScript par rapport à l'API des Service Workers, ce qui signifie qu'il peut utiliser toutes les fonctionnalités offertes par Service Workers. Ils s'appuient sur le moteur Chrome V8 pour l'exécution. Le code de Cloudflare Workers est hébergé dans le vaste réseau de datacenters de Cloudflare à travers le monde.

Qu'est-ce que Chrome V8 ?

Chrome V8, également connu sous le nom de « V8 », est un moteur JavaScript développé par Google pour la compilation, l'optimisation et l'exécution de JavaScript. L'utilisation de V8 pour l'exécution de code JavaScript réduit considérablement le temps de démarrage des JavaScript Workers, éliminant ainsi le problème des « démarrages à froid » dans la plupart des cas. V8 fait également l'objet d'une analyse approfondie des vulnérabilités de sécurité, ce qui en fait le moteur idéal pour exécuter du code JavaScript en toute sécurité.

Quelle est la particularité des Cloudflare Workers par rapport aux Service Workers ?

L'une des principales différences entre l'utilisation de Cloudflare Workers et l'utilisation de Service Workers est que les Service Workers sont exécutés côté client et doivent être téléchargés par le navigateur de l'utilisateur, alors que les Cloudflare Workers fonctionnent en périphérie du réseau Cloudflare, entre l'utilisateur et le reste de l'Internet, et s'exécutent effectivement au sein du réseau lui-même.

En savoir plus sur les Cloudflare Workers, et la raison de leur création.