Home Articles techniques Mettez en cache les API GraphQL à la périphérie avec Serverless Hosting sur Layer0 de Limelight
Applications

Mettez en cache les API GraphQL à la périphérie avec Serverless Hosting sur Layer0 de 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. Cependant, les développeurs sont 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 de périphérie 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 headless et API-first et prouve la valeur de Layer0 et Limelight qui unissent 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 en open source, GraphQL fournit une récupération de données déclarative et efficace, améliorant considérablement les performances. En plus de cela, le schéma fortement typé entre le client et le serveur permet aux équipes d’itérer leurs API plus rapidement et de manière indépendante sans encourir de problèmes de gestion des versions.

GraphQL peut être utilisé avec n’importe quel framework backend ou langage de programmation. Cet avantage, associé à son outil puissant (par exemple un typage fort et une prise en charge intégrée de l’introspection), rend GraphQL particulièrement populaire auprès des développeurs d’entreprises utilisant des architectures sans tête ou API-first, telles que Twitter et Airbnb. Dans l’ enquête annuelle State of 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 traditionnels et les logiciels de mise en cache 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 qu’il soit formidable qu’un simple basculement de commutateur puisse 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 que les équipes de développement passent du temps à créer des solutions de contournement à partir de zéro pour mettre en cache GraphQL — et même dans ce cas, la mise en cache n’est pas optimale. Une mauvaise gestion de GraphQL peut entraîner de faibles taux de réussite du cache. Cependant, si elle est correctement effectuée, 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 une prise en charge complète de 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 GraphQL et la prise en charge de la méthode POST à EdgeJS, un langage déclaratif JavaScript haute performance pour la logique Edge. Avec EdgeJS, les constructeurs Web peuvent créer une puissante logique de mise en cache personnalisée basée sur les propriétés de leurs requêtes GraphQL et des 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 identifiant de produit dans une API de commerce électronique à 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és dans les en-têtes de requête. 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 à partir 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 framework Next.js populaire, Apollo Server et Layer0.

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

Aucun autre CDN ne travaille aussi dur que Layer0 pour permettre aux équipes de maximiser leur taux de réussite du 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 des fonctionnalités de mise en cache modernes telles que stale-while-revalidate et les clés 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 les pages de produits individuelles du cache lorsque l’inventaire, le prix ou le contenu changent. Cela leur permet de maintenir des taux de réussite de cache élevés 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 élevé après un déploiement. Le réseau Layer0 coordonne intelligemment le routage et la mise en cache entre les POP afin de maximiser la probabilité d’un accès au cache. Si un POP n’a pas de données, il les demandera de manière performante à un autre POP avant que la requête ne soit transmise 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 métriques clés. Pour des raisons de granularité, la plate-forme met en évidence de manière proactive les routes d’application qui doivent être améliorées.

Edgio bénéficie de la confiance des plus grandes entreprises de streaming au monde, y compris les clubs de football de la 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é.

Boostez la productivité, les performances et la sécurité sur Edgio

Layer0 aide les équipes de constructeurs 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 développement et fournit des sites Web en moins de seconde par le biais de la prélecture prédictive de 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 ont besoin de mettre en œuvre une architecture headless ou Jamstack, y compris l’hébergement, serverless, observability, 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 toute leur application sans tête. Layer0 dispose également de puissantes options de routage qui permettent aux équipes de migrer progressivement les applications héritées vers des architectures sans tête ou API-first de manière fragmentaire.

La prise en charge et la compatibilité de GraphQL avec les systèmes existants font d’Edgio l’outil idéal pour les grandes entreprises migrant vers GraphQL avec un mélange de composants traditionnels et modernes.