1.1 從自有伺服器到邊緣運算:網站託管的六十年演進#
本節目標#
- 理解網站託管從「機房裡的實體機器」演進到「全球邊緣網路」的完整因果鏈。
- 認識主機代管、VPS、雲端、CDN、邊緣運算五個世代的驅動力:成本、彈性與延遲。
- 能用延遲的物理極限,解釋為什麼「把程式碼搬到使用者旁邊」是必然的終點。
為什麼要談歷史?#
託管技術的每一次跳躍,都不是發明了新東西,而是重新回答同一個問題:「一台伺服器,應該服務多少個使用者、放在哪裡、由誰維護?」理解這條因果鏈,你才會明白 Cloudflare 為什麼長成今天的樣子,而不是被行銷術語牽著走。
演進年代表#
| 年代 | 世代 | 代表技術 | 核心痛點 | 解法 |
|---|---|---|---|---|
| 1960s–80s | 大型主機 | IBM mainframe、終端機 | 硬體昂貴,分時共用 | Time-sharing |
| 1990s | 自有伺服器 / IDC | 自建機房、代管(colocation) | 買機器貴、流量成長快 | 主機代管 renting |
| 1998–2005 | 虛擬主機 / VPS | VMware、Xen、OpenVZ | 一台機器只服務一個客戶,利用率低 | 硬體虛擬化切片 |
| 2006–2010 | 雲端 IaaS | AWS EC2/S3、GCP、Azure | 採購週期長、尖峰浪費 | 隨用隨付、API 開機 |
| 1998 起 | CDN | Akamai、Cloudflare(2010) | 跨洋延遲、源站壅塞 | 就近快取 |
| 2017–至今 | 邊緣運算 | Cloudflare Workers、Lambda@Edge | 來回源站的固定延遲 | 在 PoP 上跑程式碼 |
各世代的經濟學#
1. 主機代管時代(1990s):把機器寄放在別人的機房#
早期網站主人要自己買伺服器、拉專線、付電費、輪值半夜重開機。「主機代管」(colocation)的商業模式很直接:機房提供機架、電力、頻寬與冷氣,機器還是你的。
問題在於產能必須依尖峰預留:日常利用率可能不到 20%,但雙十一式的流量尖峰一來就當機。
2. VPS 時代(1998–2005):虛擬化切片#
VMware 與 Xen 讓一台實體機切成多台虛擬機,每個客戶拿到「好像是一整台」的 root 權限。這是第一次把資源利用率變成 ISP 的利潤來源。當時最流行的組合是 LAMP(Linux + Apache + MySQL + PHP),一台 VPS 就能架完整網站。
因果驅動:VPS 解決了利用率,但沒解決兩件事 —— (1) 硬體故障仍要停機修復;(2) 擴容= 申請新機器 + 遷移,以「天」為單位。
3. 雲端 IaaS 時代(2006–):基礎設施變成 API#
AWS EC2(2006)的關鍵創新不是技術,而是商業介面:開一台機器變成一次 API 呼叫,計費以小時為單位。資本支出(CapEx)轉為營運支出(OpEx):
其中 \(u_t\) 是 \(t\) 時刻的使用量, \(p\) 是單價。對流量不確定的新創公司,這是生死之別。
因果驅動:雲端解決了「機器」,但你的機器仍集中在少數幾個 region。使用者從台北連到美東,光速決定了下限。
4. CDN 時代:對抗光速#
網路封包在光纖中約以 \(2 \times 10^8\) m/s 前進(折射率約 1.5)。台北到紐約直線距離約 12,000 km,單程純傳播延遲至少:
考慮路由繞行(實際路徑常是直線的 1.5 倍以上)與每跳的設備處理延遲,實際 RTT 常落在 200ms 以上。HTTP/TLS 握手還要一個來回,這是物理定律,任何優化程式碼都省不掉。唯一的解法是縮短距離:
CDN 把內容快取(cache)到離使用者近的節點,跨洋往返只發生在「快取未命中」時。
5. 邊緣運算時代(2017–):程式碼跟著快取走#
傳統 CDN 只能快取「靜態檔案」,動態內容仍要回源站。邊緣運算的最後一步是:把你寫的程式碼部署到全球數百個節點上執行。Cloudflare Workers(2017)在每個 PoP 內嵌 V8 隔離執行個體,冷啟動以微秒計。
架構演進圖(ASCII)#
[1990s 自有/代管] 使用者
|
使用者 ---- 網際網路 ---- [機房: 你的實體機] 全世界都連到同一台
[2000s VPS] 使用者
|
使用者 ---- 網際網路 --- [實體機: |VM1|VM2|VM3|]
[2006+ 雲端 IaaS] 使用者
|
使用者 ---- 網際網路 --- region: [EC2][EC2][RDS]
(機器有彈性,但位置固定)
[CDN] 使用者
| 不快取的才回源
使用者 -- 10ms -- [邊緣快取] ......... [源站 region]
[邊緣運算] 使用者
|
使用者 -- 5ms -- [PoP: 快取 + 你的程式碼] 多數請求不離開邊緣
一條貫穿的主軸#
flowchart LR
A[機器很貴] --> B[虛擬化切片]
B --> C[機器隨開隨用]
C --> D[內容搬到使用者旁]
D --> E[程式碼搬到使用者旁]
E --> F[狀態與資料跟上]每一代都在解上一代的瓶頸,並把「距離使用者之間的人工環節」剝掉一層。Cloudflare 的獨特之處在於:它同時是 CDN、DNS 供應商、雲端平台與安全閘道 —— 下一節將剖析它的運作原理。
小結與練習#
重點回顧
- 託管演進的驅動力依序是:利用率(VPS)→ 彈性(雲端)→ 延遲(CDN)→ 計算位置(邊緣)。
- 跨洋延遲有物理下限(光速 × 繞行係數),程式優化無法突破,唯有縮短距離。
- 邊緣運算的定義:在不屬於你機房的全球節點上執行你的程式碼。
練習
- 用 60ms 的計算方式(1.5 倍繞行係數)估算台北 → 新加坡、台北 → 倫敦的 RTT 下限,並與
ping實測比較。 - 列出你的組織(或想像中的新創)在三個世代(VPS / 雲端 / 邊緣)下的月成本結構差異。
- 「雲端已經有 region 了,為什麼還需要邊緣?」用一句話回答。