Home Articoli tecnici Cache delle API GraphQL all’edge con hosting senza server sul livello 0 di Limelight
Applications

Cache delle API GraphQL all’edge con hosting senza server sul livello 0 di Limelight

About The Author

Outline

GraphQL è un popolare linguaggio di query per la lettura e la modifica dei dati nelle API ed è una tecnologia chiave nella tendenza verso siti Web senza intestazione. Consente ai costruttori Web di rendere il loro livello API flessibile, potente ed efficiente. Tuttavia, gli sviluppatori devono affrontare delle sfide durante il caching delle API GraphQL all’edge della rete. Per questo motivo, Edgio ha sviluppato una soluzione che semplifica il caching edge per GraphQL e consente ai team di ospitare il server GraphQL in un ambiente senza server. La memorizzazione nella cache GraphQL colma un vuoto nel mercato delle app web headless e API-first e dimostra il valore di Layer0 e Limelight che uniscono le forze.

Cos’è GraphQL

Il linguaggio di query GraphQL migliora le API REST tradizionali e ha registrato una crescita e un’adozione straordinarie tra gli sviluppatori. Originariamente incubato su Facebook e successivamente open source, GraphQL fornisce un recupero dei dati dichiarativo ed efficiente, migliorando significativamente le prestazioni. Inoltre, lo schema fortemente tipizzato tra client e server consente ai team di iterare le proprie API in modo più rapido e indipendente senza incorrere in problemi di controllo delle versioni.

GraphQL può essere utilizzato con qualsiasi framework backend o linguaggio di programmazione. Questo vantaggio, Unito al suo potente strumento (ad esempio, la forte digitazione e il supporto integrato per l’introspezione), rende GraphQL particolarmente popolare tra gli sviluppatori di organizzazioni aziendali che utilizzano architetture headless o API-first, come Twitter e Airbnb. Nello stato annuale del sondaggio JS, GraphQL ha ottenuto i punteggi più alti per consapevolezza (98%), soddisfazione (94%) e interesse (87%) tra gli sviluppatori rispetto a qualsiasi altra soluzione a livello di dati.

Problemi di caching con GraphQL all’edge

Le CDN tradizionali e il software di caching sono stati creati intorno alle API REST, in cui solo le richieste HTTP GET sono memorizzabili nella cache e la chiave cache può essere derivata dall’URL REST. Sfortunatamente, GraphQL utilizza il formato HTTP POST più complesso e le chiavi cache e memorizzabili nella cache devono essere determinate dal corpo HTTP. Anche se sarebbe fantastico se un semplice switch flip potesse memorizzare nella cache HTTP POST, non è così semplice. Per memorizzare nella cache GraphQL, la CDN deve essere in grado di analizzare e comprendere il formato GraphQL, cosa che non può fare. Di conseguenza, le prestazioni GraphQL rappresentano una sfida per gli sviluppatori.

È comune che i team di sviluppo trascorrano del tempo a creare soluzioni alternative da zero alla cache di GraphQL, e anche allora, la memorizzazione nella cache non è ottimale. Una gestione errata di GraphQL può portare a una bassa percentuale di hit della cache. Tuttavia, se eseguito correttamente, il caching GraphQL all’edge porta a API più veloci, affidabili e scalabili. Layer0 rende questo facile.

Layer0 risolve i problemi di memorizzazione nella cache all’edge della rete

Layer0 fornisce il supporto completo per il caching delle API GraphQL all’edge, con prestazioni migliori e meno traffico all’origine. Layer0 risolve la sfida principale del caching delle API GraphQL all’edge della rete aggiungendo l’analisi GraphQL e il supporto per il metodo POST a EdgeJS, un linguaggio dichiarativo ad alte prestazioni basato su JavaScript per la logica edge. Con EdgeJS, i Web Builder possono creare una potente logica di caching personalizzata basata sulle proprietà delle query GraphQL e delle intestazioni HTTP, come cookie e autenticazione.

Con EdgeJS di Layer0, uno sviluppatore può memorizzare nella cache informazioni come un ID prodotto in un’API di eCommerce da una risposta GraphQL. Inoltre, può memorizzare nella cache attributi quali lingua, valuta e preferenze di personalizzazione incorporate nelle intestazioni delle richieste. Questi possono essere definiti da altri componenti non GraphQL nello stack che non sono stati ancora migrati a GraphQL.

Una volta memorizzato nella cache, Layer0 consente di eliminare singole query o insiemi di query dall’edge assegnando chiavi surrogate a ciascuna risposta memorizzata nella cache. Ad esempio, in un’applicazione di eCommerce, gli sviluppatori possono utilizzare EdgeJS per dare ai team la possibilità di eliminare selettivamente la cache in base all’ID prodotto, alla categoria di prodotto o a qualsiasi altro attributo di prodotto nella console Layer0 (Edgio) della query o nelle API.

Per ulteriori informazioni, guardate la demo riportata di seguito che illustra come convertire un’API REST in GraphQL e aggiungere il caching all’edge utilizzando il popolare framework Next.js, Apollo Server e Layer0.

Raggiungi il 100% di tasso di hit della cache

Nessun’altra CDN funziona tanto quanto Layer0 per consentire ai team di massimizzare il tasso di successo della cache. EdgeJS consente agli sviluppatori di configurare facilmente la memorizzazione nella cache dall’interno dell’applicazione, consentendo agli sviluppatori di memorizzare nella cache quella precedentemente non memorizzabile nella cache.

EdgeJS è flessibile e potente e supporta funzionalità di caching moderne come chiavi obsolete e sostitutive. I nostri clienti hanno già utilizzato chiavi surrogate per collegare Layer0 ai loro sistemi di gestione degli ordini e dei contenuti per cancellare le singole pagine dei prodotti dalla cache quando l’inventario, il prezzo o i contenuti cambiano. Ciò consente di mantenere elevati i rapporti di hit della cache per tutte le altre pagine e API che non sono cambiate quando cambia un singolo elemento.

Inoltre, la piattaforma include anche il riscaldamento automatico della cache del contenuto di traffico più elevato dopo una distribuzione. La rete Layer0 coordina in modo intelligente il routing e la memorizzazione nella cache tra i POP per massimizzare la probabilità di un successo della cache. Se un POP non dispone di dati, lo richiederà in modo efficiente a un altro POP prima che la richiesta venga inoltrata al server di origine. Per monitorare facilmente le performance dei siti Web e il tasso di successo della cache, gli sviluppatori possono accedere all’osservabilità e alle metriche chiave. Per la granularità, la piattaforma evidenzia in modo proattivo i percorsi delle applicazioni che necessitano di miglioramenti.

Edgio è considerato affidabile dalle più grandi società di streaming del mondo, tra cui Premier League Football Clubs e BYJU. Edgio ha oltre 135 punti di presenza (POP) in tutto il mondo che vanno oltre le funzioni medie di una CDN e coordinano i dati tra loro per riscaldare la cache.

Hosting senza server di GraphQL

Edgio offre anche servizi senza server, tra cui l’hosting GraphQL. I team possono gestire e inviare chiamate di runtime al server GraphQL ospitato in un ambiente senza server sul livello 0, eliminando le preoccupazioni relative all’infrastruttura e alla scalabilità.

Aumentate la produttività, le prestazioni e la sicurezza con Edgio

Layer0 aiuta i team di web Builder ad aumentare la produttività degli sviluppatori, migliorare le prestazioni del sito e migliorare la sicurezza. Layer0 semplifica lo sviluppo e la gestione della logica edge per tutto il ciclo di vita dello sviluppo e fornisce siti Web in meno di secondi tramite il precaricamento predittivo dei contenuti dinamici, rendendola la CDN che i team di sviluppo amano utilizzare.

Layer0 include tutto lo sviluppo e i team DevOps hanno bisogno di implementare un’architettura headless o Jamstack, tra cui hosting, senza server, osservabilità, RUM, e integrazione ci/CD. I team possono essere flessibili nel modo in cui sfruttano Layer0. Possono utilizzarlo per memorizzare nella cache le API GraphQL, eseguire il server GraphQL in un ambiente senza server o ospitare l’intera applicazione headless. Layer0 offre anche potenti opzioni di routing che consentono ai team di migrare gradualmente le applicazioni legacy ad architetture headless o API-first in modo frammentario.

Il supporto GraphQL e la compatibilità con i sistemi legacy rendono Edgio la soluzione ideale per le grandi aziende che migrano a GraphQL con un mix di componenti tradizionali e moderni.