L'informatique de pointe est l'un des sujets les plus passionnants du développement frontal. Pouvoir exécuter du code en périphérie est une nouvelle capacité qui va radicalement changer la façon dont nous écrivons des applications. Cet article vise à fournir un bref aperçu de l'informatique de périphérie sans serveur, pourquoi elle est bénéfique et comment vous pouvez l'utiliser.
Jusqu'à récemment, lorsque nous parlions de périphérie, nous pensions généralement aux réseaux de diffusion de contenu (CDN), qui mettent en cache des actifs statiques tels que des fichiers HTML, CSS, des images, des vidéos, etc. sur des centaines de serveurs à travers le monde. Parce que les contenus sont proches des utilisateurs, l'accès est très rapide. L'edge computing sans serveur étend cette idée en permettant aux développeurs d'exécuter du code en périphérie sans avoir à gérer de serveur. Edge computing offre aux développeurs un nouvel emplacement pour leur code ainsi que les deux options traditionnelles, à savoir sur le backend et sur l'appareil.
Les deux plateformes dont on parle le plus ces jours-ci sont Cloudflare Workers et Deno Deploy . Au niveau supérieur, ils présentent de nombreuses similitudes :
D'autre part, la différence la plus apparente entre les deux plates-formes est que Deno Deploy n'offre aucune solution de stockage, tandis que Cloudflare Workers dispose d' objets durables pour un stockage cohérent et de Workers KV pour un stockage à faible latence avec une cohérence éventuelle.
L'informatique de périphérie est le plus souvent utilisée pour implémenter des intergiciels qui sont de simples scripts qui réécrivent les URL, redirigent les requêtes ou manipulent les cookies et les en-têtes. Par exemple, vous pouvez effectuer des tests A/B en diffusant différentes versions d'une page en fonction de la valeur d'un cookie. Vous pouvez prendre en charge la localisation, ce qui signifie que les utilisateurs de différents pays peuvent voir différents contenus. Vous pouvez également accorder ou bloquer l'accès à certaines pages en fonction du statut d'authentification de l'utilisateur.
Bien que les cas d'utilisation ci-dessus puissent être gérés par le backend et/ou le client, l'utilisation de l'edge computing est beaucoup plus optimale en termes de performances et de simplicité. Si vous implémentez des tests A/B ou une localisation sur le client, vous pouvez avoir un ensemble de grande taille et une interface utilisateur scintillante. D'un autre côté, la mise en œuvre de cette fonctionnalité au niveau du backend nécessite généralement une configuration du serveur et entraîne des réponses lentes.
L'Edge Computing est bien plus qu'un middleware. En fait, vous pouvez même utiliser l'edge computing pour remplacer complètement votre backend. De nombreux frameworks full-stack, par exemple, Remix et Fresh, vous permettent désormais d'écrire des fonctions qui accèdent directement aux bases de données et restituent le HTML à la périphérie. Ce faisant, vous n'aurez probablement pas besoin de développer une API comme vous le faisiez habituellement dans le passé. (Mais si vous souhaitez servir une API RESTful ou même une API GraphQL à la périphérie, vous pouvez également le faire.)
Mais pourquoi devriez-vous envisager de remplacer votre backend par du edge computing sans serveur ? Il y a plusieurs raisons à cela. Tout d'abord, parce qu'il est sans serveur, il n'y a pas de maintenance de serveur ni d'autoscaling à se soucier. Deuxièmement, il est beaucoup plus rapide que les backends traditionnels car il s'exécute très près des utilisateurs et, par rapport aux plates-formes Function-as-a-Service normales, l'edge computing a peu ou pas de démarrages à froid . Et troisièmement, il est moins cher que les options sans serveur conventionnelles, car les plates-formes informatiques de périphérie utilisent des technologies plus légères, telles que les isolats V8 (par opposition aux machines virtuelles ou aux conteneurs) pour la multilocation, ce qui leur permet d'utiliser les ressources plus efficacement et de gérer beaucoup de choses. plus de demandes.
Si vous utilisez une plate-forme telle que Netlify ou Vercel pour déployer des applications Web, il est très simple d'opter pour l'edge computing. Par exemple, vous pouvez utiliser Edge Functions de Netlify (qui est construit sur Deno Deploy) ou Edge Middleware de Vercel (qui s'exécute probablement sur Cloudflare Workers). Lorsque vous déployez une application Next.js (depuis la version 12.2) sur Vercel ou Netlify, vous pouvez configurer certaines ou toutes les pages pour utiliser le runtime Edge pour le rendu du serveur (cette capacité est appelée Edge SSR ).
Si vous ne déployez pas sur Netlify, Vercel ou une plate-forme similaire, il est conseillé d'utiliser un framework de pile complète natif de périphérie et de déployer votre application directement sur le service informatique de périphérie de votre choix. Par exemple, vous pouvez développer votre application avec le framework Fresh et la publier sur Deno Deploy. Un autre exemple est le framework Remix qui fournit des adaptateurs pour Cloudflare Workers et Deno Deploy (ainsi que de nombreuses autres cibles de déploiement).
Si vous ne souhaitez pas utiliser un framework full stack, vous pouvez développer votre frontend et votre backend séparément. Avec Cloudflare, vous pouvez servir vos ressources frontales et statiques avec des pages ou des sites de travail. Avec Deno Deploy, vous pouvez servir des ressources statiques à partir du système de fichiers . En ce qui concerne le backend, vous souhaiterez probablement utiliser un framework HTTP tel que Sunder (si vous ciblez Cloudflare Workers), oak , Router ou Sift (si vous ciblez Deno Deploy).
Bien que l'edge computing soit parfait pour implémenter des scripts middleware, si vous souhaitez implémenter l'ensemble du backend, vous devez être conscient des limites de la plate-forme cible en termes d'exécution du processeur, de mémoire, de taille de package, etc. Vous pouvez trouver des informations détaillées sur les limites de Cloudflare Workers ici , et Deno Deploy ici .
En résumé, avec des plates-formes informatiques de pointe telles que Cloudflare Workers et Deno Deploy, les développeurs peuvent écrire des intergiciels et des backends à la fois rapides et bon marché. Edge computing est un changeur de jeu qui a permis une nouvelle génération de frameworks à pile complète tels que Remix et Fresh. Vous pouvez utiliser ces frameworks pour développer et déployer des applications directement en périphérie. De plus, l'informatique de périphérie peut être utilisée indirectement via des plates-formes telles que Netlify et Vercel.
C'est juste le début. Dans un avenir proche, nous pouvons nous attendre à ce que beaucoup plus de frameworks, de bibliothèques et d'outils soient développés pour la périphérie. J'espère que cet article a éveillé votre intérêt et vous a fourni des informations de haut niveau sur l'informatique de pointe afin que vous puissiez commencer à explorer son potentiel.