Kedge:具備可分叉 VM 快照與全域 SQLite 的全球分散式雲端平台
Kedge 為全端應用程式提供全球分散的基礎設施
Kedge 是一個輕量級的雲端平台,旨在部署靜態網站、無伺服器函式以及具備整合資料庫的全端應用程式,並將其靠近最終使用者。此平台透過結合硬體隔離的虛擬機器 (VM) 與無伺服器彈性擴展的敏捷性,以及內建的全域資料層,展現其獨特性。
核心基礎設施與運算模型
Kedge 使用安全、硬體隔離的 VM,執行完整的 Linux 核心,提供比標準容器執行環境更強的隔離性。平台透過以下機制,最佳化快速部署與擴展:
- 即時沙盒與擴展: Kedge 採用 VM 快照以實現近乎即時的擴展與沙盒建立。
- 自動縮減至零: 實例根據需求在靠近使用者的地方啟動,閒置時會自動縮減至零,以降低成本。
- 部署彈性: 使用者可透過 SSH (
echo '# Hello, world!' | ssh kedge.dev)、Git 或 HTTP API 進行部署,並具備原生 GitHub 整合以支援推送即部署以及每個 pull request 的預覽環境。 - 網路服務: 平台內建 CDN 功能,可在邊緣快取靜態內容,提供公共 HTTPS 端點、私有網路,並支援自訂網域。
整合的全域資料層
與許多將資料庫管理視為獨立編排任務的雲端供應商不同,Kedge 將資料持久化直接整合於應用程式環境中:
- 全域 SQLite 與共享檔案系統: 每個應用程式皆可存取內建的全域 SQLite 資料庫與共享檔案系統,促進跨區域的分散式狀態。
- 持久本地磁碟卷: 提供本地磁碟卷以獲得高效能儲存,且持續以物件儲存作為備份以確保耐久性。
基於資源的計費模型
Kedge 採用以實際資源消耗為基礎的每秒計費模型,而非依分配容量計費。此方式確保使用者僅為應用程式實際使用的資源付費:
- CPU: 僅對排程的毫秒數計費($15 / vCPU-month)。
- 記憶體: 追蹤活躍的常駐頁面($5 / GB-month)。
- 儲存空間: 僅對實際使用的位元組計費($0.05 / GB-month)。
- 外流流量: 每 GB $0.01 收費。
提供每月 $5 的免費層,足以支援小型網站或開發環境。
技術社群見解與考量
關於 Kedge 架構的技術討論突顯了多項關於快照與資料複製模型的進階考量:
VM 快照與熵
一項關鍵的技術顧慮涉及 VM 快照的「分叉邊界」。由於快照在程式呼叫 listen 時取得,之後的克隆會擁有相同的記憶體映像。這可能在熵與隨機數產生 (RNG) 上產生安全與穩定性問題,因為克隆可能共享相同的種子。使用者指出需要在還原後執行重新種子掛鉤,以確保克隆實例之間的加密種子唯一。
資料複製與一致性
全域 SQLite 資料庫的實作引發了關於寫入併發性與底層引擎的疑問。具體而言,使用者詢問系統是否使用「syzy」(基於 CRDT 的方法),以及它如何同時處理多個實例作為寫入者的情況。
與現有平台的比較
社群成員將 Kedge 的整合方式與 Fly.io 進行比較,指出雖然 Fly 提供構建基礎,但 Kedge 將複製的資料庫與檔案系統作為一等原語整合,減輕開發者的運維負擔。