Home 기술 문서 Layer0에서 Limelight로 서버리스 호스팅으로 엣지에서 GraphQL API 캐시
Applications

Layer0에서 Limelight로 서버리스 호스팅으로 엣지에서 GraphQL API 캐시

About The Author

Outline

GraphQL은 API에서 데이터를 읽고 변형하기 위한 인기 있는 쿼리 언어이며 헤드리스 웹 사이트 추세에서 핵심 기술입니다. 웹 빌더는 API 레이어를 유연하고 강력하며 효율적으로 만들 수 있습니다. 그러나 개발자는 네트워크 에지에서 GraphQL API를 캐싱할 때 어려움을 겪습니다. 이러한 이유로 Edgio는 GraphQL에 대한 에지 캐싱을 쉽게 만들고 팀이 서버리스 환경에서 GraphQL 서버를 호스팅할 수 있는 솔루션을 개발했습니다. GraphQL 캐싱은 헤드리스 및 API 우선 웹 앱 시장의 격차를 메우고 Layer0과 Limelight가 결합하는 가치를 입증합니다.

GraphQL이란 무엇입니까?

GraphQL 쿼리 언어는 전통적인 REST API를 개선했으며 개발자 사이에서 엄청난 성장과 채택률을 보였습니다. 처음에는 Facebook에서 배양되었고 나중에 오픈 소스로 배양된 GraphQL은 선언적이고 효율적인 데이터 가져오기를 제공하여 성능을 크게 향상시킵니다. 또한 클라이언트와 서버 간에 강력한 형식의 스키마를 통해 팀은 버전 관리 문제를 일으키지 않고 API를 더 빠르고 독립적으로 반복할 수 있습니다.

GraphQL은 모든 백엔드 프레임워크 또는 프로그래밍 언어와 함께 사용할 수 있습니다. 강력한 툴링(예: 강력한 타이핑 및 자체 검사 지원)과 결합된 이 이점은 GraphQL을 특히 헤드리스 또는 API 우선 아키텍처를 사용하는 엔터프라이즈 조직의 개발자들에게 인기가 높습니다. JS 설문 조사에서 GraphQL은 다른 데이터 레이어 솔루션보다 개발자 사이에서 인식 (98 %), 만족 (94 %) 및 관심 (87 %)에서 가장 높은 점수를 받았습니다.

Edge에서 GraphQL의 캐싱 문제

기존 CDN 및 캐싱 소프트웨어는 HTTP GET 요청만 캐싱할 수 있고 REST URL에서 캐시 키를 파생할 수 있는 REST API를 기반으로 구축되었습니다. 불행히도 GraphQL은 더 복잡한 HTTP POST 형식을 사용하며 캐시 가능성과 캐시 키는 HTTP 본문에서 결정해야합니다. 단순한 스위치 플립으로 HTTP POST를 캐싱할 수 있다면 좋겠지만 그렇게 간단하지는 않습니다. GraphQL을 캐시하려면 CDN이 GraphQL 형식을 구문 분석하고 이해할 수 있어야 합니다. 결과적으로 GraphQL 성능은 개발자에게 어려운 과제입니다.

개발 팀은 처음부터 대안을 작성하는 데 시간을 투자하여 GraphQL을 캐시하는 것이 일반적이지만, 캐싱은 최적이 아닙니다. GraphQL을 잘못 관리하면 캐시 적중률이 낮아질 수 있습니다. 그러나 올바르게 수행하면 엣지에서 GraphQL을 캐싱하면 더 빠르고 안정적이며 확장 가능한 API가 생성됩니다. Layer0은 이것을 쉽게 만든다.

네트워크 에지에서 캐싱 문제를 해결하는 Layer0

Layer0은 엣지에서 GraphQL API 캐싱을 완벽하게 지원하므로 오리진에서 성능이 향상되고 트래픽이 줄어듭니다. Layer0은 GraphQL 구문 분석 및 POST 메서드 지원을 엣지 로직에 대한 고성능 JavaScript 기반 선언적 언어인 EdgeJS에 추가하여 네트워크 에지에서 GraphQL API를 캐싱하는 주요 문제를 해결합니다. EdgeJS를 사용하면 웹 빌더는 쿠키 및 인증과 같은 GraphQL 쿼리 및 HTTP 헤더의 속성을 기반으로 강력한 사용자 지정 캐싱 로직을 만들 수 있습니다.

Layer0의 EdgeJS를 사용하면 개발자가 GraphQL 응답에서 전자 상거래 API에 제품 ID와 같은 정보를 캐시할 수 있습니다. 또한 요청 헤더에 포함된 언어, 통화 및 개인 설정 기본 설정과 같은 특성을 캐시할 수도 있습니다. 이는 아직 GraphQL로 마이그레이션되지 않은 스택의 다른 비 GraphQL 구성 요소에 의해 정의될 수 있습니다.

캐시된 후에는 Layer0을 사용하여 캐시된 각 응답에 서로게이트 키를 할당하여 에지에서 개별 쿼리 또는 쿼리 컬렉션을 제거할 수 있습니다. 예를 들어, eCommerce 애플리케이션에서 개발자는 EdgeJS를 사용하여 팀에 쿼리 Layer0(Edgio) 콘솔 또는 API에서 제품 ID, 제품 범주 또는 기타 제품 속성별로 캐시를 선택적으로 제거할 수 있는 기능을 제공할 수 있습니다.

자세한 내용을 이해하려면 아래 데모를 통해 REST API를 GraphQL로 변환하고 인기 있는 Next.js 프레임워크, Apollo Server 및 Layer0을 사용하여 에지에서 캐싱을 추가하는 방법을 살펴보십시오.

100% 캐시 적중률 달성

팀이 캐시 적중률을 극대화할 수 있도록 Layer0만큼 열심히 작동하는 CDN은 없습니다. EdgeJS를 사용하면 개발자가 응용 프로그램 내에서 캐싱을 쉽게 구성할 수 있으므로 이전에 캐싱할 수 없었던 것을 캐싱할 수 있습니다.

EdgeJS는 유연하고 강력하며 부실한 재검증 및 서로게이트 키와 같은 최신 캐싱 기능을 지원합니다. 고객들은 이미 서로게이트 키를 사용하여 주문 및 콘텐츠 관리 시스템에 Layer0을 연결하여 재고, 가격 또는 콘텐츠가 변경될 때 캐시에서 개별 제품 페이지를 지웠습니다. 따라서 개별 항목이 변경될 때 변경되지 않은 다른 모든 페이지와 API에 대해 높은 캐시 적중률을 유지할 수 있습니다.

또한 플랫폼에는 배포 후 트래픽이 가장 많은 콘텐츠에 대한 자동 캐시 워밍업도 포함됩니다. Layer0 네트워크는 POP 간의 라우팅 및 캐싱을 지능적으로 조정하여 캐시 적중 가능성을 극대화합니다. POP에 데이터 조각이 없으면 요청이 오리진 서버로 전달되기 전에 다른 POP로부터 데이터를 요청합니다. 웹 사이트 성능과 캐시 적중률을 쉽게 모니터링하기 위해 개발자는 관찰 가능성 및 주요 지표에 액세스할 수 있습니다. 세분화를 위해 플랫폼은 개선이 필요한 애플리케이션 경로를 사전에 강조합니다.

Edgio는 Premier League Football Clubs와 BYJU를 포함한 세계 최대 스트리밍 회사들의 신뢰를 받고 있습니다. Edgio는 전 세계에 135개 이상의 PoP(Points of Presence)를 보유하고 있으며, CDN의 평균 기능을 뛰어넘어 서로 데이터를 조정하여 캐시를 따뜻하게 합니다.

GraphQL의 서버리스 호스팅

Edgio는 또한 GraphQL 호스팅을 포함하여 서버리스 서비스를 제공합니다. 팀은 Layer0의 서버리스 환경에서 호스팅되는 GraphQL 서버에 대한 런타임 호출을 관리하고 제출할 수 있으므로 인프라 및 확장성에 대한 걱정이 사라집니다.

Edgio의 생산성, 성능 및 보안 향상

Layer0은 웹 빌더 팀이 개발자 생산성을 높이고 사이트 성능을 향상시키며 보안을 향상시킬 수 있도록 지원합니다. Layer0을 사용하면 개발 라이프사이클 전반에 걸쳐 엣지 로직을 쉽게 개발 및 유지 관리할 수 있으며 동적 콘텐츠의 예측 프리페치를 통해 1초 이내의 웹 사이트를 제공할 수 있으므로 개발 팀이 선호하는 CDN이 됩니다.

Layer0에는 모든 개발이 포함되어 있으며 DevOps 팀은 호스팅, 서버리스, 관찰 가능성, RUM 및 CI/CD 통합을 포함하여 헤드리스 또는 Jamstack 아키텍처를 구현해야 합니다. 팀은 Layer0을 활용하는 방법에 유연하게 대응할 수 있습니다. GraphQL API를 캐시하거나, 서버리스 환경에서 GraphQL 서버를 실행하거나, 헤드리스 애플리케이션 전체를 호스팅하는 데 사용할 수 있습니다. 또한 Layer0에는 팀에서 레거시 애플리케이션을 헤드리스 또는 API 우선 아키텍처로 점진적으로 마이그레이션할 수 있는 강력한 라우팅 옵션이 있습니다.

GraphQL 지원 및 레거시 시스템과의 호환성으로 Edgio는 기존 및 최신 구성 요소를 혼합하여 GraphQL로 마이그레이션하는 대기업에 이상적입니다.