Home Articles techniques Mettre en cache les API GraphQL à la périphérie avec hébergement sans serveur sur Layer0 par Limelight
Applications

Mettre en cache les API GraphQL à la périphérie avec hébergement sans serveur sur Layer0 par Limelight

About The Author

Outline

GraphQL est un langage de requête populaire pour la lecture et la mutation des données dans les API et est une technologie clé dans la tendance vers les sites Web sans tête. Il permet aux constructeurs web de rendre leur couche API flexible, puissante et efficace. Les développeurs sont toutefois confrontés à des défis lors de la mise en cache des API GraphQL à la périphérie du réseau. Pour cette raison, Edgio a développé une solution qui facilite la mise en cache Edge pour GraphQL et permet aux équipes d’héberger le serveur GraphQL dans un environnement sans serveur. La mise en cache GraphQL comble une lacune sur le marché des applications Web sans tête et API-first et prouve la valeur de Layer0 et Limelight unissant leurs forces.

Qu’est-ce que GraphQL

Le langage de requête GraphQL améliore les API REST traditionnelles et a connu une croissance et une adoption considérables parmi les développeurs. Initialement incubé chez Facebook et plus tard open source, GraphQL fournit une récupération de données déclarative et efficace, améliorant considérablement les performances. De plus, le schéma fortement typé entre le client et le serveur permet aux équipes d’itérer leurs API plus rapidement et indépendamment sans encourir de casse-tête de gestion des versions.

GraphQL peut être utilisé avec n’importe quel framework backend ou langage de programmation. Cet avantage, associé à son outil puissant (c.-à-d. un typage puissant et un support intégré pour l’introspection), rend GraphQL particulièrement populaire auprès des développeurs d’entreprises utilisant des architectures headless ou API-first, telles que Twitter et Airbnb. Dans l’enquête annuelle sur l’état de JS , GraphQL a obtenu les scores les plus élevés pour la sensibilisation (98 %), la satisfaction (94 %) et l’intérêt (87 %) parmi les développeurs que toute autre solution de couche de données.

Problèmes de mise en cache avec GraphQL à la périphérie

Les CDN et les logiciels de mise en cache traditionnels ont été construits autour des API REST, dans lesquelles seules les requêtes HTTP GET peuvent être mises en cache, et la clé de cache peut être dérivée de l’URL REST. Malheureusement, GraphQL utilise le format HTTP POST plus complexe, et la capacité de mise en cache et les clés de cache doivent être déterminées à partir du corps HTTP. Bien que ce soit génial si un simple basculement de commutateur pouvait mettre en cache HTTP POST, ce n’est pas si simple. Pour mettre en cache GraphQL, le CDN doit être capable d’analyser et de comprendre le format GraphQL, ce qu’il ne peut pas faire. Par conséquent, les performances de GraphQL sont un défi pour les développeurs.

Il est courant pour les équipes de développement de passer du temps à créer des solutions de contournement de zéro à mettre en cache GraphQL — et même dans ce cas, la mise en cache n’est pas optimale. Une mauvaise gestion de GraphQL peut conduire à de faibles taux de réussite du cache. Cependant, si elle est bien faite, la mise en cache de GraphQL à la périphérie conduit à des API plus rapides, plus fiables et plus évolutives. Layer0 rend cela facile.

Layer0 résout les problèmes de mise en cache à la périphérie du réseau

Layer0 fournit un support complet pour la mise en cache des API GraphQL à la périphérie, conduisant à de meilleures performances et moins de trafic à votre origine. Layer0 résout le défi clé de la mise en cache des API GraphQL à la périphérie du réseau en ajoutant l’analyse graphique GraphQL et la prise en charge de la méthode POST à EdgeJS, un langage déclaratif JavaScript haute performance pour la logique de périphérie. Avec EdgeJS, les concepteurs de sites Web peuvent créer une logique de mise en cache personnalisée puissante basée sur les propriétés de leurs requêtes GraphQL et de leurs en-têtes HTTP, tels que les cookies et l’authentification.

Avec EdgeJS de Layer0, un développeur peut mettre en cache des informations telles qu’un ID de produit dans une API eCommerce à partir d’une réponse GraphQL. Il peut également mettre en cache des attributs tels que la langue, la devise et les préférences de personnalisation intégrées dans les en-têtes de demande. Ceux-ci peuvent être définis par d’autres composants non GraphQL dans la pile qui n’ont pas encore été migrés vers GraphQL.

Une fois mis en cache, Layer0 vous permet de purger des requêtes individuelles ou des collections de requêtes de la périphérie en attribuant des clés de substitution à chaque réponse mise en cache. Par exemple, dans une application de commerce électronique, les développeurs pourraient utiliser EdgeJS pour donner aux équipes la possibilité de purger sélectivement le cache par ID de produit, catégorie de produit ou tout autre attribut de produit dans la console Layer0 (Edgio) de requête ou les API.

Pour comprendre cela plus en détail, regardez la démo ci-dessous qui explique comment convertir une API REST en GraphQL et ajouter la mise en cache à la périphérie en utilisant le populaire framework Next.js, Apollo Server et Layer0.

Atteindre un taux de réussite de 100 % du cache

Aucun autre CDN ne travaille aussi dur que Layer0 pour permettre aux équipes de maximiser leur taux de réussite en cache. EdgeJS permet aux développeurs de configurer facilement la mise en cache à partir de leur application, ce qui permet aux développeurs de mettre en cache le cache précédemment non cachable.

EdgeJS est flexible et puissant, prenant en charge les fonctionnalités modernes de mise en cache telles que les clés périmées pendant la revalidation et de substitution. Nos clients ont déjà utilisé des clés de substitution pour connecter Layer0 à leurs systèmes de gestion de commandes et de contenu afin d’effacer des pages de produits individuelles du cache lorsque l’inventaire, le prix ou le contenu change. Cela leur permet de maintenir des taux élevés de réussite du cache pour toutes les autres pages et API qui n’ont pas changé lorsqu’un élément individuel change.

En outre, la plate-forme inclut également un réchauffement automatique du cache du contenu le plus important après un déploiement. Le réseau Layer0 coordonne intelligemment le routage et la mise en cache parmi les POP pour maximiser la probabilité d’un accès au cache. Si un POP ne contient pas de données, il le demandera de manière performante à un autre POP avant que la demande ne soit transférée au serveur d’origine. Pour surveiller facilement les performances du site Web et le taux de réussite du cache, les développeurs peuvent accéder à l’observabilité et aux indicateurs clés. Pour des raisons de granularité, la plate-forme met en évidence de manière proactive les routes des applications qui ont besoin d’être améliorées.

Edgio bénéficie de la confiance des plus grandes sociétés de streaming au monde, y compris les clubs de football premier League et BYJU. Edgio possède plus de 135 points de présence (POP) dans le monde entier qui vont au-delà des fonctions moyennes d’un CDN et coordonnent les données entre elles pour réchauffer le cache.

Hébergement sans serveur de GraphQL

Edgio offre également des services sans serveur, y compris l’hébergement GraphQL. Les équipes peuvent gérer et soumettre des appels d’exécution au serveur GraphQL hébergé dans un environnement sans serveur sur Layer0, éliminant ainsi les soucis d’infrastructure et d’évolutivité.

Améliorez la productivité, les performances et la sécurité sur Edgio

Layer0 aide les équipes de concepteurs Web à augmenter la productivité des développeurs, à améliorer les performances du site et à améliorer la sécurité. Layer0 facilite le développement et la maintenance de la logique de périphérie tout au long du cycle de vie du développement et fournit des sites Web en moins de seconde via la prélecture prédictive du contenu dynamique, ce qui en fait le CDN que les équipes de développement adorent utiliser.

Layer0 inclut tout le développement, et les équipes DevOps doivent implémenter une architecture headless ou JAMstack, y compris l’hébergement, serverless, observabilité, RUM et intégration ci/CD. Les équipes peuvent être flexibles dans la façon dont elles exploitent Layer0. Ils peuvent l’utiliser pour mettre en cache leurs API GraphQL, exécuter leur serveur GraphQL dans un environnement sans serveur ou héberger l’intégralité de leur application headless. Layer0 dispose également de puissantes options de routage qui permettent aux équipes de migrer progressivement les applications héritées vers des architectures headless ou API-first de manière fragmentée.

La prise en charge de GraphQL et la compatibilité avec les systèmes hérités rendent Edgio idéal pour les grandes entreprises qui migrent vers GraphQL avec un mélange de composants traditionnels et modernes.