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

Caché APIs de 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 APIs y es una tecnología clave en la tendencia hacia sitios web sin cabeza. Permite a los creadores web hacer que su capa de API sea flexible, potente y eficiente. Sin embargo, los desarrolladores enfrentan desafíos al almacenar en caché las API de GraphQL en el perímetro de la red. Por esta razón, Edgio ha desarrollado una solución que facilita el almacenamiento en caché de borde 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 API-first y demuestra el valor de la unión de Layer0 y Limelight.

Qué es GraphQL

El lenguaje de consulta GraphQL mejora las API REST tradicionales y ha tenido un enorme crecimiento y adopción entre los desarrolladores. Originalmente incubado en Facebook y más tarde 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 escrito 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 por el control de versiones.

GraphQL se puede utilizar con cualquier framework de backend o lenguaje de programación. Este beneficio, junto con sus potentes herramientas (es decir, una escritura fuerte y soporte incorporado para la introspección) hace que GraphQL sea especialmente popular entre los desarrolladores de organizaciones empresariales que utilizan arquitecturas sin cabeza o API-first, como Twitter y Airbnb. En la encuesta anual sobre el estado de JS , GraphQL tuvo las puntuaciones más altas en cuanto a concientizació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 creado 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 caché y caché deben determinarse desde el cuerpo HTTP. Si bien sería genial si un simple cambio volteado 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, lo cual 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 GraphQL en caché, e incluso entonces, el almacenamiento en caché no es óptimo. La mala administración de GraphQL puede conducir a bajas tasas de éxito de caché. Sin embargo, si se hace bien, el almacenamiento en caché de GraphQL en el perímetro conduce a API más rápidas, confiables y escalables. Layer0 hace esto fácil.

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

Layer0 proporciona soporte completo para almacenar en caché las API de GraphQL en el perímetro, lo que lleva 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 perímetro de la red al agregar el análisis de GraphQL y el 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 creadores web pueden crear una poderosa 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 a partir de 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 sean 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 o API de Query Layer0 (Edgio).

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.

Alcanza una tasa de aciertos de caché del 100%

Ninguna otra CDN funciona 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 dentro de su aplicación, lo que permite a los desarrolladores almacenar en caché lo que antes no se podía almacenar en caché.

EdgeJS es flexible y potente, admite características modernas de almacenamiento en caché como teclas antiguas mientras revalidan 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 relaciones de aciertos 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 tráfico más alto después de un despliegue. La red Layer0 coordina de forma inteligente el enrutamiento y el almacenamiento en caché entre los POP para maximizar la probabilidad de un éxito de caché. Si un POP no tiene un pedazo de datos, se 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 de caché, los desarrolladores pueden acceder a la observabilidad y métricas clave. Para la granularidad, la plataforma destaca de forma proactiva las rutas de aplicación que necesitan mejoras.

Edgio cuenta con la confianza de las compañías de streaming más grandes del mundo, incluidos 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 el caché.

Alojamiento sin servidor de GraphQL

Edgio también ofrece servicios sin servidor, incluyendo 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, eliminando las preocupaciones sobre la infraestructura y la escala.

Aumente la productividad, el rendimiento y la seguridad en Edgio

Layer0 ayuda a los equipos de creadores web a aumentar la productividad de los desarrolladores, aumentar el rendimiento del sitio y mejorar la seguridad. Layer0 facilita el desarrollo y el mantenimiento de la lógica de borde durante todo el ciclo de vida del desarrollo y la entrega de sitios web de subsegundos a través de la obtención predeterminada 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, incluyendo hosting, sin servidor, observabilidad, RON e integración 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 de 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 fragmentada.

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