Faasta 作為一個新興的函式即服務(FaaS)平臺脫穎而出,它利用 WebAssembly 實現了令人矚目的效能指標,包括低於1毫秒的冷啟動時間和極小的記憶體開銷。該平臺因其基於標準的方法和自託管能力而在開發者社群引起關注,填補了當前無伺服器領域的空白。
WebAssembly 和 WASI P2 標準驅動效能提升
Faasta 的與眾不同之處在於直接使用 WASI P2 標準和 WASIHTTP 進行請求處理來執行 WebAssembly 模組。這種方法與其他可能間接執行 WebAssembly 的平臺有顯著不同。社群討論強調了這種直接執行模型相比其他替代方案(如透過 JavaScript 執行 WebAssembly 的 Bun)提供的效能優勢。
「作為 bun、deno 和 cloudflare workers 的使用者,我想說至少在 bun 中,wasm 部分實際上是在 js 中進行的,而 bun 只是使用 javascriptcore 執行該 js,這絕對不是最佳化的,正如 Bun 文件自己所述。」
這種架構選擇使 Faasta 能夠在保持輕量級足跡的同時實現其令人印象深刻的效能指標。該平臺使用 Wasmtime 進行高效的 WebAssembly 執行,進一步提升了其速度能力。
Faasta的主要特點
- 使用 WASI P2 標準的 WebAssembly 模組
- 使用 WASIHTTP 實現高效能HTTP處理
- 函式之間的安全隔離
- 超快的冷啟動速度(<1毫秒)
- 可自託管且設定簡單
- 符合標準(WASI P2 和 WASIHTTP)
- 由 Wasmtime 提供支援
- 在 faasta.xyz 提供免費託管例項
雲服務提供商對 WebAssembly 標準的採用
社群討論中一個有趣的話題圍繞著主要雲服務提供商對 WebAssembly 在無伺服器計算中的採用。雖然一些使用者對雲巨頭尚未完全接受用於無伺服器函式的 WASM 和 WASI 表示驚訝,但其他人指出進展正在發生,儘管緩慢。
Microsoft Azure 已將 Spin 作為實驗性產品推出,並正在投資 Wasmtime 和 WASI 開發。Fastly 也開發了基於 WASM 的 Compute 平臺。Cloudflare Workers 支援 JavaScript 和 WebAssembly 執行,儘管有一定的大小限制。
普遍共識似乎是,一旦 WASI 標準達到 1.0 版本,更廣泛的雲提供商採用可能會加速,這可能還需要幾年時間。然而,Faasta 實現的當前 WASI P2 規範已經足夠穩定,可以用於構建生產應用程式。
與其他平臺的比較
平臺 | WebAssembly 方法 | 標準合規性 |
---|---|---|
Faasta | 直接執行 | WASI P2, WASIHTTP |
Bun | JS 中介執行 | 有限的 WASI 支援 |
Cloudflare Workers | 支援 WASM | 大小限制(1-2MB) |
Azure (實驗性) | Spin 實現 | WASI 支援 |
Fastly Compute | WASM 驅動 | 自定義實現 |
自託管能力解決供應商鎖定問題
Faasta 最受討論的特性之一是其自託管能力。該平臺被設計為單個靜態二進位制檔案,具有最小的配置要求,允許開發者在不重寫應用程式的情況下輕鬆地在託管和自託管環境之間遷移。
這種方法直接解決了無伺服器平臺的一個常見問題:供應商鎖定。如果託管提供商停止服務,Faasta 使用者可以快速過渡到自託管或另一個提供商,保留他們在應用程式開發中的投資。
自託管能力還引發了關於自定義域名支援和 SSL 證書管理的討論。目前,Faasta 為使用 Porkbun DNS 的自託管部署提供自動萬用字元 SSL 證書生成,並計劃在多租戶例項上支援多個自定義域名證書。
開源策略和未來發展
社群對 Faasta 的許可方式表現出濃厚興趣。開發者已表示計劃將 Faasta 作為一個開源專案,CLI 和介面元件已經在 MIT 許可下可用。目前正在考慮對伺服器元件使用 copyleft 許可或雙重許可策略。
社群反饋正積極地塑造 Faasta 的開發路線圖,使用者請求的功能包括函式 URL 的路徑字首和子域名支援、更多示例以及增強的文件。該專案目前處於實驗階段,開發者警告說,破壞性變更可能會中斷 faasta.xyz 託管例項上的服務。
隨著 WebAssembly 標準的不斷成熟,Faasta 代表了無伺服器計算可能採用的早期實現方式——一種結合了 WebAssembly 的效能和安全優勢以及自託管選項靈活性的方法。