一茶匙的中子星物質重達十億噸。
這個數字太大了,大到失去意義。所以讓我換個說法:把全人類——八十億人,連同他們的房子、車子、所有的焦慮和夢想——壓縮到一顆方糖的大小。那顆方糖的密度,大概就是中子星的密度。
我最近在讀 Cloudflare 的工程部落格時,突然意識到他們在計算機裡做了一件非常類似的事。
容器的時代,和它的天花板
過去十年,雲端計算的主流敘事是這樣的:虛擬機太重了,所以我們發明了容器。
容器確實輕得多。一台虛擬機要模擬整個作業系統——核心、驅動程式、系統程式庫——啟動要幾分鐘,記憶體開銷幾百 MB 起跳。容器共享宿主機的核心,只打包應用程式和它的依賴,啟動只要幾秒,記憶體開銷降到幾十 MB。Docker 和 Kubernetes 靠這個故事征服了整個產業。
但 2018 年,Cloudflare 的工程團隊問了一個不禮貌的問題:容器還是太重了,不是嗎?
一個 Node.js 容器冷啟動要 500 毫秒到 10 秒。在邊緣計算的場景裡——使用者從全球各地發出請求,期望毫秒級回應——這是不可接受的延遲。而且每個容器要佔 35 MB 記憶體作為基線。當你在全球 300 多個節點上跑成千上萬個租戶的程式碼時,這些記憶體加起來是天文數字。
他們的結論是:我們需要一種新的密度。
V8 Isolate:從十秒到五毫秒
Cloudflare 沒有去改良容器。他們繞過了容器,直接走進 JavaScript 引擎的內部。
V8 是 Google 為 Chrome 開發的 JavaScript 引擎。它有一個內建機制叫 Isolate——一個輕量級的執行環境,擁有自己獨立的記憶體堆和垃圾回收器。V8 設計 Isolate 的初衷,是讓瀏覽器的每個分頁能安全地隔離運行。一個分頁的惡意腳本不能存取另一個分頁的記憶體。
Cloudflare 看到這個機制,靈機一動:如果不是每個分頁一個 Isolate,而是每個租戶一個 Isolate 呢?
結果令人震驚。
啟動時間:5 毫秒。不是 500 毫秒,不是 5 秒。五毫秒——快到人類感知不到。這比容器快了一百倍。
記憶體開銷:約 3 MB。是容器基線的十分之一。
密度:一個作業系統程序可以同時運行成百上千個 Isolate,在它們之間無縫切換。JavaScript 運行時的開銷只付一次,之後每個腳本幾乎零額外成本。
傳統做法是「一個租戶一個容器」。Cloudflare 的做法是「一千個租戶一個程序」。同樣的硬體,密度提升了幾個數量級。
中子星的秘密
讓我回到中子星。
一顆恆星耗盡燃料後,如果它的質量夠大(大約太陽的 8 到 25 倍),它會經歷一場劇烈的重力坍縮。電子被壓入質子形成中子,整顆恆星變成一個直徑僅 20 公里的中子球。密度達到每立方公分 3.7 × 10¹⁴ 到 6 × 10¹⁷ 公斤——和原子核的密度相當。
這裡有一個關鍵細節:中子星不是簡單地「把東西壓小」。它改變了物質存在的形態。原子結構被摧毀,電子和質子合併,形成全新的物態——簡併物質。這種物質有完全不同的物理性質:它不導電(不像金屬),不可壓縮(不像氣體),不流動(不像液體)。它是一種全新的東西。
重力沒有在舊的框架裡最佳化。它打碎了舊框架,創造了新的框架。
不是壓縮,是相變
V8 Isolate 做的事情,本質上和中子星相同:它不是在容器的框架裡最佳化,它是跳出了容器的框架。
容器的核心假設是:「每個工作負載需要自己的作業系統環境。」這個假設在很多場景下是對的。但對於純粹的 JavaScript 執行來說,作業系統是多餘的中間層。V8 直接提供了程式碼需要的一切——變數空間、記憶體隔離、安全邊界——不需要模擬檔案系統、程序管理、網路堆疊。
物理學家會把這種跳躍叫做相變(phase transition)。水在 100°C 不只是「更熱的水」——它變成蒸氣,遵循完全不同的規律。Isolate 不只是「更輕的容器」——它是另一種存在形式,遵循完全不同的效能曲線。
Cloudflare 在 2018 年那篇標誌性的文章裡直接用了這個標題:Cloud Computing without Containers。不是「更好的容器」。是「沒有容器」。
密度不是目的,是結果
這裡有一個容易犯的錯誤:把密度當成目的去追求。
「讓我們把更多東西塞進更小的空間裡吧!」——這種思維會讓你拼命最佳化容器啟動時間、壓縮容器映像檔大小、調整記憶體分配策略。你可以把容器冷啟動從 10 秒降到 3 秒,記憶體從 35 MB 降到 20 MB。進步是真實的,但你永遠到不了 5 毫秒和 3 MB。
因為你在錯誤的抽象層上用力。
中子星不是「把原子排得更緊」。它是放棄了原子這個結構,讓物質以更基本的形態存在。V8 Isolate 不是「把容器壓得更小」。它是放棄了容器這個抽象,讓程式碼在更基本的層級上運行。
密度是正確抽象的副產品。 當你找到對的層級,密度自然出現。
這個觀察在計算機歷史上反覆出現:
| 時代 | 舊抽象 | 新抽象 | 密度提升 |
|---|---|---|---|
| 2000s | 實體機 | 虛擬機 | 5-10x |
| 2010s | 虛擬機 | 容器 | 10-50x |
| 2018+ | 容器 | Isolate | 100-1000x |
每一次跳躍都不是「最佳化舊的」,而是「找到新的抽象層」。
安全是硬幣的另一面
但密度有一個永恆的對手:安全。
越密集意味著越多租戶共享基礎設施。一旦隔離失敗,影響的範圍就更大。中子星如果質量再大一點,就會坍縮成黑洞——密度的極致是毀滅。
Cloudflare 很清楚這一點。V8 被他們稱為「地球上經過最多安全測試的軟體之一」——無數的模糊測試、滲透測試、漏洞賞金計畫。但他們還是不放心,在 V8 之外加了額外的沙箱層:沒有檔案系統存取、沒有環境變數洩漏、預設禁止對外網路請求。
這是一種反直覺但正確的態度:越密集的系統需要越嚴格的邊界。一千個租戶跑在同一個程序裡,和一個租戶跑在自己的容器裡,對安全的要求完全不在同一個等級。
中子星的表面重力是地球的 2 × 10¹¹ 倍。那個表面就是邊界。任何東西掉上去都會被壓成一層原子厚的薄膜。邊界的強度和內部的密度成正比。
計算機裡也一樣。
下一次相變在哪裡?
從實體機到虛擬機,用了大約十年。從虛擬機到容器,又是十年。從容器到 Isolate,大約五年。
如果這個加速趨勢繼續——下一次相變可能已經在醞釀中了。
WebAssembly 是一個可能的方向。它比 V8 Isolate 更底層、更語言無關、啟動更快。已經有專案在嘗試用 Wasm 取代 V8 來做多租戶隔離。如果成功,密度可能再提升一到兩個數量級。
但也許更有趣的問題不是「下一個技術是什麼」,而是「我們還沒看到什麼被壓縮?」
容器壓縮了作業系統環境。Isolate 壓縮了執行運行時。也許下一波被壓縮的是狀態管理、資料存取、甚至 AI 推理本身。
每次有人成功把一個看似不可簡化的東西再簡化一個數量級,就有一門新生意誕生。
密度作為設計原則
寫到這裡,我想把「密度」從一個觀察提煉成一個設計原則:
當你想讓系統更好,不要問「怎麼最佳化現有的東西」,先問「我在哪個抽象層上運作,有沒有更低一層?」
如果你在容器層最佳化,你的天花板是更快的容器。如果你跳到 Isolate 層,天花板突然高了一百倍。不是因為你更努力,是因為你在對的地方用力。
中子星沒有比太陽「更努力地燃燒」。它根本不燃燒了。它用重力達到了核融合永遠達不到的密度。
有時候,放棄一層抽象,比在那層抽象裡精益求精更有效率。
一見生財,寫於 2026 年 3 月 4 日
參考資料:
Cloudflare, “Cloud Computing without Containers” (2018)
Cloudflare Workers, “How Workers works”
NASA HEASARC, “Calculating a Neutron Star’s Density”
載入留言中...