Workers KV,基於邊緣節點的無服務器式鍵值存儲

Cloudflare Workers是一個無服務器平臺,使開發人員能夠將JavaScript代碼和WebAssembly APP部署到Cloudflare廣泛延伸的數據中心(截至如今,Cloudflare已經在80個國家180多個城市搭建了其雲網絡數據中心)。Workers可以擴展出數千個實例並攔截到站點的HTTP請求。這些實例不到5毫秒就可以完成啓動,而實例完成運行最多隻需50毫秒。到目前爲止,如果一個Worker實例需要檢索數據,開發人員要麼將數據存儲在Worker實例本身的腳本中,要麼從Cloudflare的緩存中加載數據文件。之前在Cloudflare團隊的一篇博客中提及,在使用Workers平臺後不久,一些客戶就提出了需求,需要更好地存儲持久性數據。這就是促使Workers KV誕生的源由。

Workers KV有一個簡單的讀寫API接口,可以通過HTTP或在Worker實例內部進行調用。開發人員可以用文本、JSON、arrayBuffer或stream數據形式進行檢索。該服務專門爲快速讀取而設計,據報道其平均響應時間爲12毫秒。寫入Workers KV的任何數據(大小可達2MB)在未使用靜置時、在傳輸過程中,以及存儲在本地磁盤時都會進行加密。Cloudflare在beta測試期間,通過添加用於批量加載的端點,極大地提高了寫操作的性能。寫入Workers KV的鍵會自動在Cloudflare的雲網絡上進行復制,不到60秒就可以完成全球的一致性同步。然而,Cloudflare的文檔指出,只有那些最經常被訪問的鍵值纔會在全球範圍內進行復制,Workers KV對不會經常讀取的值進行集中存儲。這是一項“無服務器”的服務,即在客戶不必接觸任何基礎設施操作的情況下,它就能完全實現其所有管理。所有部署、升級、擴展和數據複製都由Cloudflare處理。

雖然Workers KV的產品經理很謹慎,並沒有透露關於這項服務所採用的備份存儲或技術的細節,但他們還是信心滿滿地對這項服務做出了保證。Cloudflare團隊的一篇博文簡要解釋了CAP原理,並強調了其設計理念。

Workers KV的設計同時兼顧了可用性和分區容錯性。這種組合又稱爲最終一致性,它使Workers KV具有兩個獨特的競爭優勢:

  • 在Cloudflare緩存技術的支持下,讀取速度非常快(平均速度爲12毫秒)。
  • 數據在175+邊緣數據中心中可用,並且在區域性故障中斷情況下可迅速恢復。

不過,此最終一致性有時仍需要權衡。比如兩個客戶端同時向同一個鍵寫入不同的值,後面那個客戶端會最終“勝出”,其輸入的值將成爲全局一致的鍵值。

基於這些考慮因素,Workers KV的典型應用場景是什麼呢?Cloudflare根據其客戶目前構建的內容給出了一些用例示範

  • 海量的重定向,例如處理數十億個HTTP重定向。
  • 用戶身份驗證,用以驗證用戶對API的請求。
  • 翻譯相關的鍵,動態地完成網頁本地化。
  • 配置數據,用以管理誰可以訪問源數據。
  • 基於任務和狀態機的Step functions,在多個API函數之間同步狀態數據。
  • 邊緣節點上存儲了大量小文件。

2018年9月,Cloudflare宣佈開始Workers KV的Beta測試時,還建議可以用Workers和Workers KV構建一種既廉價性能又高的API網關,這將比Amazon API網關等其他方案便宜得多。在同一篇文章中,他們列出了與改變Worker實例性能相關的其他用例,而使用Workers KV進行這些改善並不需要進行重新部署、A/B測試,甚至不需要爲電商網站存儲購物車數據。

Workers KV現在已經發布正式商用版本並公開發布了其服務價格。如果用戶已經有5美元的Workers包月訂閱,那麼可以自動獲得的Workers KV免費使用包括:1 GB的存儲,1000萬次讀取操作和100萬次寫入操作。如果你的實際使用超出了這些數量,則每月每GB的存儲收取0.5美元,每100萬次讀取操作收取0.5美元,每100萬次寫入操作收取5美元。命名空間(Namespace)是容納鍵值對的容器,Workers KV支持開發人員創建多達20個命名空間,每個命名空間可容納數十億個鍵值對。用戶每秒鐘可以對每個鍵執行無限次讀取和1次寫入。

Cloudflare表示,這種新型的無服務器鍵值存儲方式“爲開發人員構建軟件打開了一種全新的思路:以後的軟件哪些部分放在服務器上,哪些放在客戶端上,以及,哪些又放在互聯網上呢?”

查看英文原文:Cloudflare Releases Workers KV, a Serverless Key-Value Store at the Edge

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章