跳到主要內容
黯羽輕揚每天積累一點點

柏克萊研究員們眼中的 Cloud Computing

免費2019-08-03#Front-End#伯克利Cloud Computing论文#Berkeley Cloud Computing paper#云计算论文#云计算发展史

10 年之前,這群人預見了怎樣的未來?

寫在前面

10 年前(2009 年),UC Berkeley 在 2 月 10 日發布了一篇關於 Cloud Computing 的論文,在 10 年後的今天看來,仍頗具啟發性

Cloud Computing is likely to have the same impact on software that foundries have had on the hardware industry.

雲端運算對軟體的影響就像代工廠對硬體行業的影響

一.雲端運算為什麼是未來?

什麼是雲端運算?

雲端運算(Cloud Computing)既指透過網際網路提供服務的應用程式,所謂軟體即服務(SaaS)中的服務,也指提供這些服務的資料中心的硬體和系統軟體,所謂雲端(Cloud):

Cloud Computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services.

雲端以面向公眾的隨用隨付方式提供時就叫公有雲(Public Cloud),提供效用運算(Utility Computing)服務。相應的,公眾無法使用的企業/組織內部的資料中心稱為私有雲(Private Cloud)

P.S.效用運算是一種服務預先配置模型,服務提供商按需向客戶提供運算資源和基礎設施管理,並且按使用情況而不是按統一費率計費

對應到使用者角色上,關係如下圖:

[caption id="attachment_1992" align="alignnone" width="686"]cloud computing roles cloud computing roles[/caption]

P.S.當然,SaaS providers 同時也可以是 SaaS users

雲端運算引發的變革

雲端運算的關鍵優勢在於資源彈性調配(elasticity of resources),1000 台伺服器用 1 小時的成本不超過 1 台伺服器用 1000 小時,這種資源上的彈性是前所未有的:

Moreover, companies with large batch-oriented tasks can get results as quickly as their programs can scale, since using 1000 servers for one hour costs no more than using one server for 1000 hours. This elasticity of resources, without paying a premium for large scale, is unprecedented in the history of IT.

雲端運算還讓應用程式提供者能夠將其產品作為 SaaS 部署,而無需擁有自己的資料中心,就像半導體代工廠的出現讓晶片公司有機會在沒有晶圓廠的情況下設計和銷售晶片一樣

Just as the emergence of semiconductor foundries gave chip companies the opportunity to design and sell chips without owning a fab, Cloud Computing allows deploying SaaS—and scaling on demand—without building or provisioning a datacenter.

正如 SaaS 允許使用者將一部分問題拋給 SaaS 服務提供商,雲端運算允許 SaaS 服務提供商將一些問題丟給雲端運算供應商:

Analogously to how SaaS allows the user to offload some problems to the SaaS provider, the SaaS provider can now offload some of his problems to the Cloud Computing provider.

另一方面,從硬體角度來看,雲端運算帶來的變化在於:

  • 能按需提供無限的運算資源

  • 雲端使用者無需預估資源

  • 支援隨用隨付的短期運算資源

這樣公司就能從很小的投入開始,在實際需要時才增加硬體資源,從而提高資源利用率,同時,按需取用/釋放的方式也有利於節約資源

二.為什麼是 2009 年?

雲端運算的關鍵推動因素是在低成本的地區建設和營運大規模的商用電腦資料中心,這些地區的電力、網路頻寬、營運、軟體成本很低,從而形成規模經濟

We argue that the construction and operation of extremely large-scale, commodity-computer datacenters at lowcost locations was the key necessary enabler of Cloud Computing, for they uncovered the factors of 5 to 7 decrease in cost of electricity, network bandwidth, operations, software, and hardware available at these very large economies of scale.

實際上,自 2000 年初 Web 服務迅猛增長時起,到 2009 年一些巨頭網際網路企業已經擁有相當大規模的資料中心了,如 Amazon、eBay、Google、Microsoft 等:

Building, provisioning, and launching such a facility is a hundred-million-dollar undertaking. However, because of the phenomenal growth of Web services through the early 2000’s, many large Internet companies, including Amazon, eBay, Google, Microsoft and others, were already doing so.

同時,這些企業還必須建設可擴展的軟體基礎設施(如 MapReduce、Google File System、BigTable、Dynamo 等),以及專業的營運和安全防護機制

除了營運大型商用資料中心必要的軟硬體基礎設施之外,新的技術趨勢和商業模式也是關鍵推力。另一方面,一旦雲端運算起步,就會發現新的應用機會和使用模型,同樣能夠促進雲端運算的發展

新的技術趨勢和商業模式

Web 2.0 的出現意味著從高接觸(high-touch)、高利潤(high-margin)、高承諾(high-commitment)服務轉向低接觸、低利潤、低承諾的自助服務。例如:

  • PayPal 的出現讓個人也能透過信用卡收款,而無需合約和長期承諾,只有少量隨用隨付的交易費用

  • Amazon CloudFront 支援個人發布 Web 內容,不用與內容傳遞網路建立關係

  • Google AdSense 讓個人網頁能夠實現廣告收入,而不需要與廣告展示公司建立關係

P.S.高接觸指的是服務過程需要更多的人員接觸,而不是透過自動販賣機、自助櫃檯等方式

技術方面,虛擬機器的出現讓客戶可以自選軟體資源堆疊,在共享硬體降低成本的同時還不會互相干擾

新的應用機會

雲端運算對這幾類應用而言是非常好的機會:

  • 行動互動式應用:高可用性要求,以及大型資料集對大規模資料中心的依賴

  • 平行批次處理:大數據批次處理和分析工作所需的運算資源

  • 分析的興起:業務分析(如了解客戶、供應鏈、購買習慣、排名等等)也需要大量運算資源

  • 擴展運算密集型的桌面應用:數學軟體如 Matlab 同樣依賴運算資源

另外,對於一些受限於資料遷移成本、延遲等因素,暫時「上不了雲端」的應用("Earthbound" applications),在廣域資料傳輸成本和延遲降低之後或許也能享受到雲端彈性和平行性的好處

三.效用運算(Utility Computing)

不同的效用運算產品可以根據提供給開發者的抽象層級和資源管理級別來區分:

Our view is that different utility computing offerings will be distinguished based on the level of abstraction presented to the programmer and the level of management of the resources.

例如,當時的幾種雲端產品都對運算、儲存和網路等資源進行了不同程度的虛擬化:

  • Amazon EC2:提供雲端虛擬機器,像物理硬體一樣,使用者能夠控制整個資源堆疊

  • Google AppEngine:提供面向應用程式的執行環境

  • Microsoft Azure:提供.NET 執行環��,介於前兩者之間

但從雲端供應商和雲端使用者的角度來看,這幾種效用運算產品只是在開發者易用性、靈活性和可移植性之間的權衡,各自有其不同的適用場景

四.雲端運算經濟

雲端運算所帶來的精細化經濟模型讓權衡決策更具流動性,尤其是雲端提供的彈性能夠轉移風險:

We argue that the finegrained economic models enabled by Cloud Computing make tradeoff decisions more fluid, and in particular the elasticity offered by clouds serves to transfer risk.

典型的,效用運算優於私有雲的場景有兩種:

  • 對一個服務的需要會隨時間變化。比如應對需求高峰

  • 預先不清楚需求。比如產品突然流行起來或者大批使用者突然離開

第一種場景下,從成本與收益的角度來看應該是這樣一個不等式:

UserHours of cloud × (revenue ? Cost of cloud) ≥ UserHours of datacenter × (revenue ? Cost of datacenter / Utilization)

即比較使用雲端運算的預期利潤與使用資料中心考慮平均利用率時的預期利潤:

使用者小時數 * (小時收入 - 雲端服務成本) >= 使用者小時數 * (小時收入 - 資料中心成本 / 利用率)

P.S.利用率是 100% 的話,兩邊相等。即便可能,此時服務也不可用,因為資料中心的可用容量一般是 0.6 到 0.8

比如,一個服務白天需求高峰需要 500 台伺服器,但晚上只需要 100 台機器,那麼一天的平均用量是 300 台機器,使用時長為 300 * 24 = 7200 小時。但為了應對需求高峰,需要付出 500 * 24 = 12000 服務時長的成本,約為實際需要的 1.7 倍。那麼,只要使用雲端服務 3 年(假設 3 年折舊)的成本低於購買伺服器成本的 1.7 倍,就可以透過效用運算來節省資金

實際上,資料中心伺服器的利用率一般只有 5% 到 20%,因為需求峰值通常超過平均值 2 到 10 倍,而應對需求高峰的唯一方法就是提前預先配置資源。但並非所有的需求高峰都能提前預知,比如新聞事件引發的需求爆發,此時雲端運算所提供的資源彈性尤為重要

除成本因素外,風險轉移能力也是雲端運算經濟模型的一個重要價值。一旦需求高峰超出服務能力,就會造成經濟損失,如下圖:

[caption id="attachment_1993" align="alignnone" width="625"]peak load risk peak load risk[/caption]

不僅會損失一部分使用者的潛在收入,還會導致一些使用者因為體驗問題而永遠離開

另一些成本風險也能夠透過雲端運算來規避,例如:

  • 業務放緩等意外原因導致規模縮減,處理多餘伺服器所產生的折舊損失

  • 軟硬體更新換代所增加的成本

隨用隨付的短租模式能夠減少雲端使用者的使用成本,而購買力強大的雲端供應商也能夠充分利用規模經濟實現獲利。對雲端使用者而言,能夠迅速從價格上感受到資源成本的變化,比如立即享受到硬體成本降低所節省的開支

五.雲端運算的 10 個阻礙和機會

阻礙機會
服務可用性(Availability of Service)採用多個雲端供應商,利用彈性應對 DDOS
資料鎖定(Data Lock-In)標準化 API,相容軟體支援 Surge Computing
資料機密性與可審核性(Data Confidentiality and Auditability)部署加密、VLAN、防火牆等,地理資料儲存
資料傳輸瓶頸(Data Transfer Bottlenecks)FedExing Disks、資料備份/歸檔、更大頻寬的交換器
效能不可預測性(Performance Unpredictability)優化 VM 支援,快閃記憶體,平行排程虛擬機器
可擴展儲存(Scalable Storage)發明可擴展儲存
大型分散式系統的錯誤(Bugs in Large Distributed Systems)發明適用於分散式虛擬機器的除錯器
快速擴展(Scaling Quickly)發明基於機器學習的自動擴展機制,並建立快照保護
聲譽共享(Reputation Fate Sharing)提供像 email 這樣的聲譽保證
軟體許可(Software Licensing)使用付費授權,批次出售

P.S.前三個是採用雲端運算的技術阻礙,中間五個是雲端運算發展的技術阻礙,最後兩個是採用雲端運算的政策和業務阻礙,右側對應的機會是預期的解決方案

六.願景

The long dreamed vision of computing as a utility is finally emerging.

雲端運算時代已經來臨

期望雲端供應商能夠以隨用隨付的模式銷售所擁有的運算資源,透過資源重複使用來獲利。雲端使用者能夠節省建立自己資料中心的高額成本,同時從資源預先配置風險中解脫出來

同時,開發人員應該專注針對虛擬機器的橫向擴展,以支援部署到雲端環境中,具體地:

  • 應用軟體:需要支援縱向擴展,包括增加/減少 CPU、記憶體等資源,還需要一種付費許可模式

  • 基礎設施軟體:需要支援執行在 VM 上,而且應該內建計費

  • 硬體系統:應該在容器的規模上設計,這將是最低購買規模,營運成本要與效能和購買成本相匹配,同時還要考慮節能,讓閒置資源進入低功耗模式。處理器要能與 VM 配合良好,快閃記憶體也要加到記憶體階層結構裡,LAN 交換器和 WAN 路由器也要提高頻寬和成本

七.啟發

從資源角度來看,雲端運算帶來的變革主要在於資源使用成本的降低和資源利用率的提升

得益於規模經濟,集中管理的運算資源購買、營運成本更低廉,並且能夠透過虛擬化技術共享重複使用硬體,進一步降低資源使用成本

資源利用率的提升則體現在 4 個層次上:

  • 機器層面:能夠迅速租用和釋放。所持有的機器數量接近應用所需的機器數量

  • 資源層面:不同類型的資源按需取用,不與實體機器的硬體能力綁定。所租用的資源貼合應用實際需要

  • 負載層面:虛擬化技術允許共享硬體資源,充分利用 CPU 多核心特性。硬體火力全開,瘋狂旋轉

  • 租期層面:隨用隨付的短租模式所帶來的資源彈性,改變了非峰值時段資源利用率低的局面。靈活調配,不必為閒置的時段付出成本

參考資料

評論

暫無評論,快來發表你的看法吧

提交評論