Home Artigos técnicos Cache GraphQL APIs no Edge com hospedagem sem servidor em Layer0 by Limelight
Applications

Cache GraphQL APIs no Edge com hospedagem sem servidor em Layer0 by Limelight

About The Author

Outline

GraphQL é uma linguagem de consulta popular para leitura e mutação de dados em APIs e é uma tecnologia chave na tendência para sites sem cabeça. Ele permite que os web builders tornem sua camada de API flexível, poderosa e eficiente. Os desenvolvedores enfrentam desafios, no entanto, ao armazenar em cache APIs GraphQL na borda da rede. Por esse motivo, o Edgio desenvolveu uma solução que facilita o armazenamento em cache de borda para o GraphQL e permite que as equipes hospedem o servidor GraphQL em um ambiente sem servidor. O cache GraphQL preenche uma lacuna no mercado de aplicativos web sem cabeça e API-first e prova o valor das forças de união Layer0 e Limelight.

O que é GraphQL

A linguagem de consulta GraphQL melhora as APIS REST tradicionais e tem tido um enorme crescimento e adoção entre os desenvolvedores. Originalmente incubada no Facebook e posteriormente de código aberto, a GraphQL fornece busca de dados declarativa e eficiente, melhorando significativamente o desempenho. Além disso, o esquema fortemente digitado entre o cliente e o servidor permite que as equipes iterem suas APIs de forma mais rápida e independente, sem incorrer em dores de cabeça de controle de versão.

GraphQL pode ser usado com qualquer estrutura de backend ou linguagem de programação. Esse benefício, combinado com suas ferramentas poderosas (ou seja, digitação forte e suporte integrado para introspeção) torna o GraphQL especialmente popular entre desenvolvedores de organizações corporativas que usam arquiteturas sem cabeça ou API-first, como Twitter e Airbnb. No estado anual da pesquisa JS, o GraphQL apresentou as maiores pontuações de conscientização (98%), satisfação (94%) e interesse (87%) entre os desenvolvedores do que qualquer outra solução de camada de dados.

Problemas de cache com o GraphQL no Edge

CDNs tradicionais e software de cache foram construídos com base em APIS REST, nas quais apenas solicitações HTTP GET são cacheáveis, e a chave de cache pode ser derivada da URL REST. Infelizmente, o GraphQL usa o formato HTTP POST mais complexo, e as chaves de cache e cache devem ser determinadas a partir do corpo HTTP. Embora seria ótimo se um simples flip de switch pudesse armazenar em CACHE O POST HTTP, não é tão simples assim. Para armazenar em cache o GraphQL, o CDN deve ser capaz de analisar e entender o formato GraphQL, que não pode. Como resultado, o desempenho do GraphQL é um desafio para os desenvolvedores.

É comum que as equipes de desenvolvimento gastem tempo criando soluções alternativas do zero para cache GraphQL – e mesmo assim, o cache não é ideal. O gerenciamento errado do GraphQL pode levar a baixas taxas de acerto de cache. No entanto, se feito corretamente, o armazenamento em cache do GraphQL na borda leva a APIs mais rápidas, confiáveis e escaláveis. Layer0 torna isso fácil.

Layer0 resolve desafios de cache na borda da rede

Layer0 fornece suporte completo para armazenar em cache APIs GraphQL na borda, levando a um melhor desempenho e menos tráfego na sua origem. Layer0 resolve o desafio chave de armazenar em cache APIs GraphQL na borda da rede, adicionando análise de GraphQL e suporte para o MÉTODO POST ao EdgeJS, uma linguagem declarativa baseada em JavaScript de alto desempenho para lógica de borda. Com o EdgeJS, os web builders podem criar uma poderosa lógica de cache personalizada com base nas propriedades de suas consultas GraphQL e cabeçalhos HTTP, como cookies e autenticação.

Com o EdgeJS do Layer0, um desenvolvedor pode armazenar informações em cache, como um ID de produto em uma API de comércio eletrônico, a partir de uma resposta do GraphQL. Ele também pode armazenar em cache atributos como idioma, moeda e preferências de personalização incorporadas nos cabeçalhos de solicitação. Estes podem ser definidos por outros componentes não-GraphQL na pilha que ainda não foram migrados para o GraphQL.

Uma vez armazenado em cache, Layer0 permite que você expurgue consultas individuais ou coleções da borda atribuindo chaves substitutos a cada resposta em cache. Por exemplo, em um aplicativo de comércio eletrônico, os desenvolvedores podem usar o EdgeJS para dar às equipes a capacidade de limpar seletivamente o cache por ID de produto, categoria de produto ou qualquer outro atributo de produto no console ou APIs da consulta Layer0 (Edgio).

Para entender isso com mais detalhes, assista à demonstração abaixo que explica como converter uma API REST para GraphQL e adicionar cache na borda usando o popular framework Next.js, Apollo Server e Layer0.

Atingir 100% de taxa de acerto de cache

Nenhuma outra CDN funciona tão duro quanto Layer0 para permitir que as equipes maximizem sua taxa de acerto de cache. O EdgeJS facilita para os desenvolvedores configurar o cache a partir de seu aplicativo, permitindo que os desenvolvedores armazenem o cache anteriormente não armazenado.

EdgeJS é flexível e poderoso, suportando recursos de cache modernos, como chaves obsoletas e substitutos. Nossos clientes já usaram chaves substitutos para conetar Layer0 a seus sistemas de gerenciamento de pedidos e conteúdo para limpar páginas individuais de produtos do cache quando o inventário, preço ou conteúdo muda. Isso permite que eles mantenham altas taxas de acerto de cache para todas as outras páginas e APIs que não foram alteradas quando um item individual muda.

Além disso, a plataforma também inclui o aquecimento automático do cache do conteúdo de tráfego mais alto após uma implantação. A rede Layer0 coordena de forma inteligente o roteamento e o cache entre POPs para maximizar a probabilidade de um hit de cache. Se um POP não tiver um pedaço de dados, ele irá solicitá-lo com desempenho de outro POP antes que a solicitação seja encaminhada para o servidor de origem. Para monitorar facilmente o desempenho do site e a taxa de acerto do cache, os desenvolvedores podem acessar a observabilidade e as principais métricas. Para granularidade, a plataforma destaca proativamente as rotas de aplicativos que precisam de melhorias.

Edgio é confiável pelas maiores empresas de streaming do mundo, incluindo os clubes de futebol da Premier League e BYJU. Edgio tem mais de 135 pontos de presença (POP) em todo o mundo que vão além das funções médias de uma CDN e coordenam dados entre si para aquecer o cache.

Hospedagem sem servidor do GraphQL

Edgio também oferece serviços sem servidor, incluindo hospedagem GraphQL. As equipes podem gerenciar e enviar chamadas em tempo de execução para o servidor GraphQL hospedado em um ambiente sem servidor no Layer0, eliminando preocupações com a infraestrutura e a escala.

Aumente a produtividade, o desempenho e a segurança no Edgio

Layer0 ajuda as equipes de construtores de web a aumentar a produtividade do desenvolvedor, aumentar o desempenho do site e melhorar a segurança. O Layer0 facilita o desenvolvimento e a manutenção da lógica de borda durante todo o ciclo de vida do desenvolvimento e fornece sites de sub-segundos por meio de pré-busca preditiva de conteúdo dinâmico, tornando-o o CDN que as equipes de desenvolvimento adoram usar.

Layer0 inclui todo o desenvolvimento, e as equipes de DevOps precisam implementar uma arquitetura sem cabeça ou Jamstack, incluindo hospedagem, sem servidor, observabilidade, RUM, e integração CI/CD. As equipes podem ser flexíveis na forma como elas aproveitam o Layer0. Eles podem usá-lo para armazenar em cache suas APIs GraphQL, executar seu servidor GraphQL em um ambiente sem servidor ou hospedar todo seu aplicativo sem cabeça. O Layer0 também tem poderosas opções de roteamento que permitem que as equipes migrem gradualmente aplicativos legados para arquiteturas sem cabeça ou API-first de forma fragmentada.

O suporte e a compatibilidade do GraphQL com sistemas legados tornam o Edgio ideal para grandes empresas migrando para o GraphQL com uma mistura de componentes tradicionais e modernos.