Home 技術文章 通過Limelight在Layer0上的無伺服器託管在邊緣暫存GraphQL API
Applications

通過Limelight在Layer0上的無伺服器託管在邊緣暫存GraphQL API

About The Author

Outline

GraphQL是一種流行的查詢語言,用於在API中讀取和突變數據,是無頭網站趨勢中的一項關鍵技術。 它使Web構建商能夠使其API層靈活,強大和高效。 但是,開發人員在網路邊緣暫存GraphQL API時面臨着挑戰。 因此,Edgio開發了一種解決方案,使GraphQL的邊緣暫存變得簡單,並使團隊能夠在無伺服器環境中託管GraphQL伺服器。 GraphQL暫存填補了無頭和API第一Web應用市場的空白,證明了Layer0和Limelight連接力的價值。

什麼是GraphQL

GraphQL查詢語言在傳統REST API基礎上得到了改進,並且在開發人員中得到了巨大的發展和採用。 GraphQL最初是在Facebook和後來的開放原始碼孵化的,它提供了聲明性的,高效的數據提取,顯著提高了性能。 除此之外,客戶端和伺服器之間的強類型架構使團隊能夠更快,獨立地迭代其API,而不會產生版本控制問題。

GraphQL可以與任何後端框架或程式語言一起使用。 這一優勢與強大的工具(即強大的鍵入功能和內置內置的內置內置支援)相結合,使得GraphQL在使用無頭架構或API優先架構(如Twitter和Airbnb)的企業組織的開發人員中特別受歡迎。 在 JS年度調查中,GraphQL的認知度(98%),滿意度(94%)和興趣(87%)在開發人員中的得分最高,高於任何其他數據層解決方案。

GraphQL在邊緣的暫存問題

傳統CDN和暫存軟體圍繞REST API構建,其中只有HTTP GET請求可暫存,暫存密鑰可以從REST URL派生。 遺憾的是,GraphQL使用更復雜的HTTP POST格式,並且必須從HTTP主體中確定暫存能力和暫存密鑰。 如果只是切換開關就能暫存HTTP POST,那就更好了,但它並不那麼簡單。 要高速暫存GraphQL,CDN必須能夠解析和理解GraphQL格式,但它們無法解析。 因此,GraphQL性能對開發人員來說是一項挑戰。

開發團隊通常會花時間從頭開始構建變通辦法,暫存GraphQL,即使這樣,暫存也不是最佳的。 GraphQL管理不當會導致高速暫存命中率低。 但是,如果正確執行,在邊緣暫存GraphQL將導致更快,更可靠和可擴展的API。 Layer0使此操作變得簡單。

Layer0解決了網路邊緣的暫存難題

Layer0提供對邊緣暫存GraphQL API的完全支援,從而提高性能,減少源站的流量。 Layer0通過向邊緣邏輯的高性能,基於JavaScript的聲明語言EdgeJS添加GraphQL分析和POST方法支援,解決了在網路邊緣暫存GraphQL API的關鍵挑戰。 藉助EdgeJS,Web構建商可以基於其GraphQL查詢和HTTP標頭(如Cookie和身份驗證)的屬性創建強大的自定義暫存邏輯。

藉助Layer0的EdgeJS,開發人員可以在GraphQL響應中的電子商務API中暫存產品ID等資訊。 它還可以暫存嵌入到請求標題中的屬性,如語言,貨幣和個性化首選項。 這些組件可以由堆棧中尚未遷移到GraphQL的其他非GraphQL組件定義。

一旦暫存,Layer0允許您通過爲每個暫存響應分配代理密鑰,從邊緣清除單個或多個查詢。 例如,在電子商務應用程式中,開發人員可以使用EdgeJS,使團隊能夠根據查詢Layer0 (Edgio)控制檯或API中的產品ID,產品類別或任何其他產品屬性,選擇性地清除暫存。

要更詳細地瞭解這一點,請觀看下面的演示,瞭解如何使用流行的Next.js框架,Apollo Server和Layer0將REST API轉換爲GraphQL並在邊緣添加暫存。

實現100%高速暫存命中率

沒有其他CDN像Layer0那樣努力使團隊能夠最大化其暫存命中率。 EdgeJS使開發人員可以輕鬆地在其應用程式內配置暫存,從而使開發人員能夠暫存以前不可暫存的暫存。

EdgeJS靈活且功能強大,支援現代暫存功能,如過時的同時重新驗證和替代密鑰。 我們的客戶已經使用代理密鑰將Layer0連接到他們的訂單和內容管理系統,以便在庫存,價格或內容發生變化時從暫存中清除單個產品頁面。 這使他們能夠爲在單個項目更改時未更改的所有其他頁面和API保持高暫存命中率。

此外,該平臺還包括在部署後自動對最高流量內容進行高速暫存預熱。 Layer0網路智能地協調POP之間的路由和高速暫存,以最大程度地提高高速暫存命中的可能性。 如果POP沒有數據,它將在將請求轉發到源伺服器之前,從另一個POP執行請求。 爲了輕鬆監控網站性能和暫存命中率,開發人員可以訪問可觀察性和關鍵指標。 爲了實現粒度,該平臺主動突出顯示需要改進的應用程式路由。

Edgio深受全球最大的流媒體公司的信賴,包括英超足球俱樂部和BYJU。 Edgio在全球擁有超過135個顯示點(POP),它們超出了CDN的平均功能,並相互協調數據以預熱高速暫存。

GraphQL的無伺服器託管

Edgio還提供無伺服器服務,包括GraphQL託管。 團隊可以管理並提交對Layer0上無伺服器環境中託管的GraphQL伺服器的執行時調用,從而消除了對基礎架構和規模的擔憂。

提高Edgio的工作效率,性能和安全性

Layer0幫助Web構建團隊提高開發人員的工作效率,提高站點性能並提高安全性。 Layer0使開發生命週期內開發和維護邊緣邏輯變得更加容易,並通過預測性預取動態內容來交付次秒網站,使其成爲開發團隊喜歡使用的CDN。

Layer0包括所有開發,DevOps團隊實施無頭架構或Jamstack架構所需的一切,包括託管,無伺服器,可觀察性,RUM, 和CI/CD集成。 團隊可以靈活地利用Layer0。 他們可以使用它來暫存其GraphQL API,在無伺服器環境中執行其GraphQL伺服器或託管其整個無頭應用程式。 Layer0還具有強大的路由選項,使團隊能夠以零散的方式逐步將傳統應用程式遷移到無頭架構或API優先架構。

GraphQL支援和與傳統系統的兼容性使Edgio成爲遷移到GraphQL的大型企業的理想之選,它具有傳統和現代組件。