O GraphQL é uma linguagem de consulta popular para ler e mutar dados em APIs e é uma tecnologia chave na tendência para sites sem cabeça. Ele permite que os web construtores tornem a camada de API flexível, poderosa e eficiente. Os desenvolvedores enfrentam desafios, no entanto, ao armazenar em cache as APIs do GraphQL na borda da rede. Por essa razã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 do GraphQL em um ambiente sem servidor. O armazenamento em cache de gráficos preenche uma lacuna no mercado de aplicativos web sem cabeça e API-First e prova o valor das forças de união de Layer0 e Limelight.
O que é o GraphQL
A linguagem de consulta do GraphQL melhora as APIS REST tradicionais e tem tido um crescimento e adoção tremendos entre os desenvolvedores. Originalmente incubada no Facebook e mais tarde de código aberto, a GraphQL fornece obtenção 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 equipas iterem as suas APIs de forma mais rápida e independente, sem incorrer em dores de cabeça com versões.
O GraphQL pode ser usado com qualquer estrutura de back-end ou linguagem de programação. Este benefício, combinado com as suas ferramentas poderosas (isto é, digitação forte e suporte embutido para introspeção) torna o GraphQL especialmente popular entre desenvolvedores de organizações empresariais que usam arquiteturas sem cabeça ou API-First, como Twitter e Airbnb. Na pesquisa anual do estado do JS , o GraphQL obteve 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 armazenamento em cache com o GraphQL no Edge
Os tradicionais CDNs e o software de armazenamento em cache foram criados com base em APIs REST, nas quais apenas as solicitações DE GET DE HTTP são armazenadas em cache, e a chave de cache pode ser derivada da URL REST. Infelizmente, o GraphQL usa o formato DE POST HTTP mais complexo, e a cacheabilidade e as chaves de cache devem ser determinadas a partir do corpo do HTTP. Embora fosse ótimo se um simples flip de troca pudesse armazenar em CACHE O post DE HTTP, não é assim tão simples. Para armazenar em cache o GraphQL, o CDN deve ser capaz de analisar e entender o formato do GraphQL, que não pode. Como resultado, o desempenho do GraphQL é um desafio para os desenvolvedores.
É comum que as equipas de desenvolvimento passem tempo a criar soluções alternativas do zero para armazenar em cache o GraphQL – e mesmo assim, o armazenamento em cache não é ideal. A má gestão 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, mais confiáveis e escaláveis. Layer0 torna isso fácil.
Layer0 resolve desafios de armazenamento em cache na borda da rede
O Layer0 fornece suporte total para armazenar em cache as APIs do GraphQL na borda, levando a um melhor desempenho e menos tráfego na sua origem. O Layer0 resolve o desafio chave de armazenar em cache as APIs do GraphQL na borda da rede adicionando a análise do GraphQL e o suporte ao MÉTODO POST ao EdgeJS, uma linguagem declarativa baseada em JavaScript de alto desempenho para lógica de borda. Com o EdgeJS, os construtores de web podem criar uma poderosa lógica de armazenamento de dados personalizada com base nas propriedades de suas consultas de GraphQL e cabeçalhos de HTTP, como cookies e autenticação.
Com o EdgeJS da 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 linguagem, moeda e preferências de personalização incorporadas nos cabeçalhos de solicitação. Estes podem ser definidos por outros componentes não-grafQL 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 poderiam 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 nas API da consulta Layer0 (Edgio).
Para entender isso com mais detalhes, veja a demonstração abaixo que explica como converter uma API REST para o GraphQL e adicionar armazenamento em cache na borda usando o popular framework Next.js, Apollo Server e Layer0.
Atingir 100% de taxa de acerto de cache
Nenhuma outra CDN trabalha tão arduamente quanto Layer0 para permitir que as equipas maximizem a sua taxa de acerto de cache. O EdgeJS facilita para os desenvolvedores configurar o armazenamento em cache a partir de sua aplicação, permitindo que os desenvolvedores armazenem em em cache o que antes não era armazenado em cache.
O EdgeJS é flexível e poderoso, suportando recursos modernos de armazenamento em cache, como chaves obsoletas e substitutos. Os nossos clientes já usaram chaves substitutos para ligar o Layer0 aos seus sistemas de gestão de encomendas e conteúdos para limpar páginas individuais de produtos do cache quando o inventário, o preço ou o conteúdo mudam. Isso permite que eles mantenham altas taxas de acerto de cache para todas as outras páginas e APIs que não mudaram 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 depois de um deploy. A rede Layer0 coordena de forma inteligente o roteamento e o armazenamento em cache entre os POPs para maximizar a probabilidade de um acerto de cache. Se um POP não tiver um dado, ele irá solicitar de forma eficaz outro POP antes de a solicitação ser encaminhada para o servidor de origem. Para monitorar facilmente o desempenho do site e a taxa de acerto do cache, os desenvolvedores podem ter acesso à observabilidade e às principais métricas. Para granularidade, a plataforma destaca proativamente as rotas de aplicação que precisam de melhorias.
O Edgio é confiado pelas maiores empresas de streaming do mundo, incluindo os clubes de futebol da Premier League e a 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 a hospedagem GraphQL. As equipas podem gerir e enviar chamadas de tempo de execução para o servidor GraphQL alojado num ambiente sem servidor no Layer0, eliminando as preocupações com a infraestrutura e a escala.
Aumente a produtividade, o desempenho e a segurança no Edgio
O Layer0 ajuda as equipas de construtores de websites a aumentar a produtividade dos programadores, a aumentar o desempenho do site e a 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 de conteúdo dinâmico, tornando-o a CDN que as equipes de desenvolvimento adoram usar.
Layer0 inclui tudo o desenvolvimento, e as equipas de DevOps precisam de implementar uma arquitetura sem cabeça ou Jamstack, incluindo alojamento, sem servidor, observabilidade, RUM e integração CI/CD. As equipas podem ser flexíveis na forma como utilizam o Layer0. Eles podem usá-lo para armazenar em cache as suas APIs do GraphQL, executar o servidor do GraphQL em um ambiente sem servidor ou hospedar toda a sua aplicação 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 com a API-First de forma fragmentada.
O suporte e a compatibilidade com sistemas legados tornam o Edgio ideal para grandes empresas migrando para o GraphQL com uma mistura de componentes tradicionais e modernos.