Fermer

juillet 3, 2019

Une introduction aux travailleurs de Cloudflare –


Le cloud computing dans ses diverses incarnations – SaaS, PaaS, IaaS – a eu de grands succès. Certains d’entre nous se souviennent encore de l’achat de de 212 millions de dollars du fournisseur de PaaS Heroku en 2010 qui à l’époque était – d’un point de vue architectural – à peine plus qu’une couche de déploiement de haut niveau. Il possédait un bijou très chic pour le déploiement en douceur et facile d'applications et de frameworks tels que les applications RoR, Python ou Node s'exécutant sur l'infrastructure d'Amazon. Le concept de Serverless Computing est né.

Il existe depuis lors une multitude de modèles différents pour les produits en nuage. Diverses expériences ont eu lieu et ont disparu alors que les fournisseurs cherchaient le bon compromis, avec une prolifération continue et de nouveaux termes naissant, comme BaaS et MBaaS.

Protocol Labs, une crypto-startup à la recherche pour redéfinir le modèle de nuage, a collecté 257 millions de dollars dans son ICO [ de 2017 battant tous les records. Airtable, avec ses produits de haut niveau, les feuilles de calcul et les bases de données et api a atteint une valeur de 1,1 milliard de dollars lors de sa campagne de financement en 2018 .

Serverless Informatique

L'informatique sans serveur est un terme partiel de l'informatique en nuage qui s'efforce de supprimer le produit classique du serveur offrant aux développeurs un environnement de haut niveau pour exécuter leur code, facturé en tant que base de données utilisée, ce qui évite aux développeurs de se soucier de la pile logicielle sous-jacente.

L’informatique sans serveur a permis une plus grande flexibilité dans le paiement de la puissance de traitement utilisée, au lieu de payer pour des packages pré-alloués comme dans le cloud classique.

serverless ”est sémantiquement faux, car le code est toujours exécuté sur un serveur, mais les utilisateurs conceptuellement n'ont plus à traiter avec des serveurs. Sous réserve que certaines conventions soient respectées, les fournisseurs traitent la pile sous-jacente, ainsi que tous les problèmes d'infrastructure et de déploiement.

Le principal type de produit qui en a résulté est FaaS – un environnement d'exécution dans le cloud ou un environnement d'exécution permettant déploiement de code sans aucun passe-partout. Lambda d'Oracle Fn et Alibaba Function Compute en sont quelques exemples.

Cloudflare

Cloudflare est une entreprise du groupe San Francisco fondée il y a neuf ans. . Il s’agit d’un réseau de distribution de contenu qui fournit des actifs statiques aux sites Web à partir de son réseau mondial de nœuds de bord . Il fournit également un pare-feu et une protection DDOS, et a la réputation d'être le service DNS le plus rapide sur Internet.

Lorsque vous parlez de Cloudflare et de ce qu'il apporte au domaine de l'informatique sans serveur, il est nécessaire d'ajouter un dernier terme à la liste des mots à la mode utilisés dans le nuage que nous avons utilisés ici – Edge computing .

Comme expliqué dans Wikipedia :

Edge computing est un paradigme de l'informatique répartie dans lequel le calcul est largement ou complètement effectuée sur des nœuds de périphériques distribués. Edge computing repousse les applications, les données et la puissance de calcul (services) de points centralisés vers des emplacements plus proches de l'utilisateur. *

Cloudflare Workers

 Capture d'écran d'un tweet de Kenton Varda

Les travailleurs de Cloudflare sont Une incarnation particulière et puissante de FaaS (fonction de service), le code étant immédiatement déployé sur le réseau mondial de noeuds de Cloudflare, à exécuter aussi près que possible du visiteur.

Selon Kenton Varda sur le blog Cloudflare :

Lorsque vous répondez à un utilisateur néo-zélandais, votre code doit être exécuté en Nouvelle-Zélande. Lors du traitement des données dans votre base de données, votre code doit être exécuté sur les machines qui stockent les données. Lors de l'interaction avec une API tierce, votre code doit être exécuté partout où cette API est hébergée. Lorsque les explorateurs humains atteindront Mars, ils ne seront pas heureux d’attendre une demi-heure que votre application réponde. Votre code doit être en cours d'exécution sur Mars.

Cloudflare Workers est un environnement d'exécution de code conçu sur V8, le moteur JavaScript conçu pour Google Chrome et utilisé également par Opera, Node.js, le navigateur Brave, Electron et d'autres. [19659003] Les travailleurs utilisent l'API Service Worker – mais le code réside dans Cloudflare, pas dans le navigateur.

Ils peuvent «modifier les requêtes et les réponses HTTP de votre site, effectuer des requêtes en parallèle, et même répondre directement du bord ». Cela signifie que, si nous étions prêts à le faire, notre application pourrait résider sur le CDN.

Cela signifie également que, même si nous exécutons du code JavaScript dynamique, il ne s'agit pas d'un code côté serveur au sens classique du terme. notre code ne s'exécute toujours pas dans le navigateur, ce qui signifie qu'il n'est pas ouvert au public.

Selon les mots de son développeur principal, les travailleurs sont le début. de quelque chose qui pourrait devenir des produits beaucoup plus raffinés à l’avenir.

Dans de nombreux cas, la rapidité et l’efficacité perçues sont aussi bonnes que si l’exécution se déroulait dans le navigateur du visiteur, mais sans la charge de traitement. Tout se passe dans le nuage.

La technologie comparable (qui était jusqu'à présent disponible pour les utilisateurs de NGINX) est Lua scripting – à la différence que Cloudflare exécute le code des travailleurs sur son réseau de nœuds périphériques, le plus proche au visiteur.

Cloudflare Les travailleurs peuvent être testés, rapidement et sale, sur le Cloudflare Workers Playground .

Usages potentiels

Cloudflare a envoyé plusieurs exemples de code dans un Repo GitHub . Parmi eux se trouve un Slack bot qui récupère les prix ou les cryptomonnaies de CoinMarketCap et les met en cache sur l'infrastructure Cloudflare. Le code est très simple et est disponible ici . Il démontre le principal avantage de Cloudflare Workers – la simplicité de l’abandon de la pile de logiciels entière sous l’application.

Cloudflare Workers laisse les développeurs libres de se concentrer sur la logique de l’application.

L’exemple le plus avancé – la solution de mise en cache Edge pour WordPress, qui offre une solution sophistiquée de mise en cache et de purge de la sortie HTML de WordPress, en rassemblant les travailleurs Cloudflare, Workers KV (magasin de valeurs-clés) et un plugin pour WordPress, qui fonctionnent de concert permettre de contourner le cache en cas de présence de cookies, de rendre possible la purge de cache atomique, etc.

Vous en saurez plus sur cet exemple ici .

Ensuite, il y a des exemples de code d'utilisation de la logique personnalisée pour placer une couche de protection entre le site Web d'origine et Internet.

Il existe un exemple d'utilisation de la logique de travail pour réécrire la 3ème par. ty scripts inclus dans la page Web HTML, pour générer les URL avec hachage de contenu, puis étendre le cache de leur navigateur et les mettre en cache sur des nœuds périphériques Cloudflare – il n’est donc pas nécessaire de faire trois allers-retours pour des serveurs tiers script.

Dans certains cas, cela peut faire une grande différence en termes de performances, et la beauté de ce concept réside dans le fait que les travailleurs utilisent JavaScript, ce qui signifie qu’il existe une interface programmable très riche qui permet de tirer parti de toute la puissance de l’infrastructure Cloudflare pour répondre à nos attentes. [19659003] Il existe d’autres exemples de code dans leur référentiel .

Comment cela se fait-il

Lorsque nous ouvrons le tableau de bord Cloudflare, un élément de menu Workers figure dans les éléments de menu des icônes.

 Option de menu Travailleurs

Pour commencer, nous devons ouvrir le lien Tableau de bord des travailleurs dans le haut, puis définir un sous-domaine pour nos travailleurs:

 constituant un sous-domaine f ou nos travailleurs

Ensuite, nous recevrons le tableau de bord des travailleurs, où nous pourrons déployer de nouveaux travailleurs, surveiller leur utilisation, etc.

Il existe également un éditeur que nous pouvons également utilisez pour éditer la logique des travailleurs:

 L'éditeur d'ouvriers

Comme nous l'avons dit, les travailleurs utilisent le moteur JavaScript V8 et, évidemment, la syntaxe JavaScript. La documentation est solide et détaillée, et contient un certain nombre de modèles afin que nous puissions relancer notre travail.

Attendez, il y a plus!

Pour ceux d'entre nous qui veulent pouvoir ajouter plus de logique à cette couche et veulent tirer plus de performances de cette infrastructure, il y a plus. En octobre 2018, Cloudflare a annoncé la prise en charge de WebAssembly for Workers ce qui signifie une prise en charge de langages compilés tels que C, C ++ et Rust. Cela rend les travailleurs potentiellement très sérieux, voire décisifs dans cet espace.

Conclusion

L'informatique sans serveur, avec les commodités qu'elle offre, retient l'attention de plus en plus de développeurs. Cela leur donne la liberté de se concentrer sur la logique des applications et de ne pas avoir à s'inquiéter des bibliothèques sous-jacentes et de l'infrastructure logicielle.

Ceux d'entre nous qui ont dû gérer des centaines de mégaoctets de bibliothèques npm ont été confrontés au désordre avec des versions de différentes dépendances, qui ont dû installer et travailler avec Ruby Version Manager ou PyEnv virtualenv et autres gourmandises similaires, connaissent la douleur et savent que la résolution de ces problèmes peut prendre 80% des cas. son travail.

Les offres de cloud computing sans serveur disponibles aujourd'hui ont trouvé leur marché, et Cloudflare Workers est l'un des produits les plus intéressants de ce créneau. J'espère que vous avez trouvé cette introduction utile!




Source link