← 所有文章2026.09.02 · CS 425 · 雲端運算概念

Cloud 本質上是 Distributed System,再加上一套營運模型

從 partial failure、concurrency、elasticity、virtualization 與經濟模型理解 cloud 為何存在。

Distributed system 是一組透過 network 協調並提供 service 的 process。Cloud 則把這種系統包裝成 pooled resource、virtualization、self-service allocation、elastic capacity 與 usage-based cost。

離開單機後有什麼不同

單機 process 通常能分清 local call 與 crash;跨 network 時,沉默有多種原因:peer 掛了、message 延遲,或 reply 丟失。

client ── request ──> server
       X reply lost

operation 是否執行?只看 timeout 無法知道。

這種 partial failure 產生 retry、duplicate effect、coordination、stale state 與 failure detection 等核心問題。

白話來說: 在 distributed system 裡,「沒有回覆」不等於「什麼都沒發生」。

Cloud 為什麼有用

Cloud 讓 resource 可程式化。團隊不必先按 peak load 購買,而能依需求取得或釋放 compute、storage、network。價值不必然是單位成本更低,而是 provisioning 快、infrastructure 共享、可 elasticity,並把 capital expense 轉為 operating expense。

Elasticity 仍需要 application 配合。State 綁在單一 node、database 已飽和,或工作不能 partition 時,多加 instance 不會有用。

Grid、cluster、cloud

  • Cluster: 通常由單一行政 domain 管理、互相協調的 machines。
  • Grid: 跨組織聯邦資源,常用於大型 scientific job。
  • Cloud: 透過 automated interface 與 operating contract 提供 pooled resource/service。

界線可以重疊;更有用的問題是 application 繼承了哪些 failure、ownership、provisioning 與 pricing assumption。

Safety 與 liveness

  • Safety: 壞事永遠不發生,例如兩個 client 不會同時持有同一 exclusive lock。
  • Liveness: 好事最後會發生,例如 valid request 最終完成。

Retry 可能改善 liveness,卻透過 duplicate write 破壞 safety;coordination 保護 safety,也可能在 partition 時降低 liveness。

複習卡

  • Network 帶來 partial failure 與不確定 outcome。
  • Cloud 增加 programmable pooling、elasticity 與經濟模型。
  • Elastic infrastructure 不會自動讓不可 partition 的 application scale。
  • State assumption 比產品名稱重要。
  • Safety 防止壞狀態;liveness 保證最終進展。