Cloudflare Workers支持WebAssembly和鍵值存儲

Cloudflare最近宣佈給他們的“無服務器”服務Workers新增兩個附加功能:將WebAssembly作爲JavaScript的替代方案,提供了對WebAssembly的支持,以及稱爲Workers KV的鍵值存儲。WebAssembly可以使Workers可以通過C、C++、Rust和Go等多種編譯語言編寫。Workers KV提供了最終一致狀態存儲機制,託管在Cloudflare全球超過150個數據中心的網絡中。

WebAssembly(又稱WASM)是由W3C開發的,它針對JavaScript提供了更快(解析和執行)更簡捷的替代方案,在2017年底進入到主流的幾款瀏覽器中。它實現了抽象的結構化堆棧機,具有一箇中間的字節碼錶示。它可以保證代碼可以用多種編譯語言編寫(或重用自多種編譯語言),只需簡單地將其編譯爲.wasm文件即可。但現在對於.wasm的工具鏈支持還不成熟,Cloudflare的演示中“如何搭建”這一部分中包含有“Build lld from source”的詳細介紹。Cloudflare還盡心地指出,WebAssembly有時候“並不總是適用的”,他們解釋了什麼時候適合使用WebAssembly:

在Cloudflare發表的《通過Workers KV搭建》博文中,介紹了一系列我們可以用這項技術實現的功能例子。這些包括實現使用訪問令牌的API Gateway、頁面中的動態數據(如翻譯)、功能標誌的配置以及有狀態的雲功能。他們還詳細介紹了限制和價格:

Cloudflare將Worker和Amazon的Lambda進行比較,不過可能更加公平的是和Lambda@Edge進行比較,它在AWS CloudFront Content Delivery Network (CDN)中運行函數。這兩種情況下,服務都會提供第三端(在全局CDN邊緣)進行處理,就不需要在瀏覽器(或API客戶端)或源點進行處理。這樣邊緣託管的目的是通過接近客戶端的入網點提供低延遲服務,同時讓客戶端不需要承擔計算開銷(以及安全問題)。通過啓用有狀態的服務,Cloudflare開啓了originless(無源)服務的可能性,僅存在於沒有集中源點的邊緣。

在宣佈Workers對於WebAssembly的支持之前,Cloudflare的CEO Matthew Prince寫推文道:“從長遠角度來看,這可能是整個月我們做出的最大行業變更聲明瞭”。其他功能即服務(FaaS)平臺以及可以提供多語言的支持的基礎下,WebAssembly可能是讓開發人員喜愛的一種簡單方式,只要工具鏈問題在廣泛採納之後得到解決即可。

查看英文原文Cloudflare WebAssembly and Key Value Store for Workers

感謝冬雨對本文的審校。

討論

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