Home Artículos técnicos Caché API GraphQL en el borde con Serverless Hosting en Layer0 por Limelight
Applications

Caché API GraphQL en el borde con Serverless Hosting en Layer0 por Limelight

About The Author

Outline

GraphQL es un lenguaje de consulta popular para leer y mutar datos en API y es una tecnología clave en la tendencia hacia sitios web sin cabeza. Permite a los constructores web hacer que su capa de API sea flexible, potente y eficiente. Sin embargo, los desarrolladores se enfrentan a desafíos al almacenar en caché las API de GraphQL en el borde de la red. Por esta razón, Edgio ha desarrollado una solución que facilita el almacenamiento en caché de bordes para GraphQL y permite a los equipos alojar el servidor GraphQL en un entorno sin servidor. El almacenamiento en caché de GraphQL llena un vacío en el mercado de aplicaciones web sin cabeza y con API y demuestra el valor de Layer0 y Limelight uniendo fuerzas.

Qué es GraphQL

El lenguaje de consultas de GraphQL mejora las API REST tradicionales y ha tenido un enorme crecimiento y adopción entre los desarrolladores. Originalmente incubado en Facebook y posteriormente de código abierto, GraphQL proporciona una obtención de datos declarativa y eficiente, mejorando significativamente el rendimiento. Además de eso, el esquema fuertemente tipado entre el cliente y el servidor permite a los equipos iterar sus API de forma más rápida e independiente sin incurrir en dolores de cabeza de control de versiones.

GraphQL se puede utilizar con cualquier marco de backend o lenguaje de programación. Este beneficio, junto con sus potentes herramientas (es decir, una tipografía fuerte y un soporte incorporado para la introspección) hace que GraphQL sea especialmente popular entre los desarrolladores de organizaciones empresariales que utilizan arquitecturas sin cabeza o basadas en API, como Twitter y Airbnb. En la encuesta anual sobre el estado de JS, GraphQL tuvo las puntuaciones más altas de sensibilización (98%), satisfacción (94%) e interés (87%) entre los desarrolladores que cualquier otra solución de capa de datos.

Problemas de almacenamiento en caché con GraphQL en el borde

Las CDN tradicionales y el software de almacenamiento en caché se han construido alrededor de las API REST, en las que solo las solicitudes HTTP GET son cacheables, y la clave de caché se puede derivar de la URL REST. Desafortunadamente, GraphQL, utiliza el formato HTTP POST más complejo, y las claves de cacheabilidad y caché deben determinarse desde el cuerpo HTTP. Si bien sería genial si un simple cambio de switch pudiera almacenar en caché HTTP POST, no es tan simple. Para almacenar en caché GraphQL, la CDN debe ser capaz de analizar y entender el formato GraphQL, que no puede. Como resultado, el rendimiento de GraphQL es un desafío para los desarrolladores.

Es común que los equipos de desarrollo pasen tiempo creando soluciones desde cero hasta almacenar en caché GraphQL, e incluso entonces, el almacenamiento en caché no es óptimo. La mala administración de GraphQL puede conducir a bajas tasas de acierto de caché. Sin embargo, si se hace bien, el almacenamiento en caché de GraphQL en el borde conduce a API más rápidas, fiables y escalables. Layer0 hace esto fácil.

Layer0 resuelve los desafíos de almacenamiento en caché en el borde de la red

Layer0 proporciona soporte completo para el almacenamiento en caché de las API de GraphQL en el borde, lo que conduce a un mejor rendimiento y menos tráfico en su origen. Layer0 resuelve el desafío clave de almacenar en caché las API de GraphQL en el borde de la red al agregar análisis de GraphQL y soporte para el método POST a EdgeJS, un lenguaje declarativo de alto rendimiento basado en JavaScript para la lógica de borde. Con EdgeJS, los constructores web pueden crear una potente lógica de almacenamiento en caché personalizada basada en las propiedades de sus consultas GraphQL y encabezados HTTP, como cookies y autenticación.

Con EdgeJS de Layer0, un desarrollador puede almacenar en caché información como un ID de producto en una API de comercio electrónico desde una respuesta de GraphQL. También puede almacenar en caché atributos como idioma, moneda y preferencias de personalización incrustadas en los encabezados de solicitud. Estos pueden ser definidos por otros componentes que no son de GraphQL en la pila que aún no se han migrado a GraphQL.

Una vez almacenado en caché, Layer0 le permite purgar individuales o colecciones de consultas desde el borde asignando claves sustitutas a cada respuesta almacenada en caché. Por ejemplo, en una aplicación de comercio electrónico, los desarrolladores podrían usar EdgeJS para dar a los equipos la capacidad de purgar selectivamente la caché por ID de producto, categoría de producto o cualquier otro atributo de producto en la consola de consulta Layer0 (Edgio) o API.

Para entender esto con más detalle, vea la demostración a continuación que explica cómo convertir una API REST a GraphQL y agregar almacenamiento en caché en el borde utilizando el popular framework Next.js, Apollo Server y Layer0.

Lograr un 100% de tasa de acierto de caché

Ninguna otra CDN trabaja tan duro como Layer0 para permitir a los equipos maximizar su tasa de aciertos de caché. EdgeJS facilita a los desarrolladores configurar el almacenamiento en caché desde su aplicación, lo que permite a los desarrolladores almacenar en caché lo que antes no se podía cachear.

EdgeJS es flexible y potente, compatible con funciones de almacenamiento en caché modernas como las claves obsoletas y sustitutas. Nuestros clientes ya han utilizado claves sustitutas para conectar Layer0 a sus sistemas de gestión de pedidos y contenido para borrar páginas de productos individuales de la caché cuando el inventario, el precio o el contenido cambian. Esto les permite mantener altas tasas de acierto de caché para todas las demás páginas y API que no han cambiado cuando cambia un elemento individual.

Además, la plataforma también incluye el calentamiento automático de la caché del contenido de mayor tráfico después de un despliegue. La red Layer0 coordina inteligentemente el enrutamiento y el almacenamiento en caché entre los POPs para maximizar la probabilidad de un golpe de caché. Si un POP no tiene una pieza de datos, lo solicitará de manera eficiente a otro POP antes de que la solicitud se reenvíe al servidor de origen. Para monitorear fácilmente el rendimiento del sitio web y la tasa de aciertos en la caché, los desarrolladores pueden acceder a la observabilidad y las métricas clave. Para la granularidad, la plataforma destaca proactivamente las rutas de aplicación que necesitan mejoras.

Edgio cuenta con la confianza de las compañías de streaming más grandes del mundo, incluyendo los clubes de fútbol de la Premier League y BYJU. Edgio tiene más de 135 Puntos de Presencia (POP) en todo el mundo que van más allá de las funciones promedio de una CDN y coordinan los datos entre sí para calentar la caché.

Alojamiento sin servidor de GraphQL

Edgio también ofrece servicios sin servidor, incluido el alojamiento GraphQL. Los equipos pueden administrar y enviar llamadas en tiempo de ejecución al servidor GraphQL alojado en un entorno sin servidor en Layer0, lo que elimina las preocupaciones sobre la infraestructura y la escala.

Aumente la productividad, el rendimiento y la seguridad en Edgio

Layer0 ayuda a los equipos de constructores web a aumentar la productividad de los desarrolladores, aumentar el rendimiento del sitio y mejorar la seguridad. Layer0 facilita el desarrollo y mantenimiento de la lógica de borde durante todo el ciclo de vida del desarrollo y ofrece sitios web de subsegundos a través de la obtención previa predictiva de contenido dinámico, lo que la convierte en la CDN que los equipos de desarrollo adoran usar.

Layer0 incluye todo el desarrollo, y los equipos de DevOps necesitan implementar una arquitectura sin cabeza o Jamstack, que incluye alojamiento, sin servidor, observabilidad, RON, etc. e integración de CI/CD. Los equipos pueden ser flexibles en la forma en que aprovechan Layer0. Pueden usarlo para almacenar en caché sus API de GraphQL, ejecutar su servidor GraphQL en un entorno sin servidor o alojar toda su aplicación sin cabeza. Layer0 también tiene potentes opciones de enrutamiento que permiten a los equipos migrar gradualmente las aplicaciones heredadas a arquitecturas sin cabeza o API-first de una manera fragmentaria.

El soporte de GraphQL y la compatibilidad con sistemas heredados hacen que Edgio sea ideal para grandes empresas que migran a GraphQL con una mezcla de componentes tradicionales y modernos.