上篇IaaS-PaaS-SaaS定義中介紹了雲計算的3種服務模型:html
本文解釋這張圖的由來,即雲服務模型的演進過程前端
早在2008年,Microsoft等公司(在此以前還有Amazon、Google)就在探索雲服務了。推出Azure時,Microsoft提出了這樣的模型圖:git
用來解釋PaaS模型與當時人們所熟知的本地部署(on-premises)、外包託管(outsourced hosting)之間的差別github
具體的:安全
本地部署:須要擁有(購買)硬件並維護數據服務器
外包託管:能夠直接用主機託管或託管服務器微信
PaaS:使用雲架構,不但資源託管還支持彈性擴展架構
實際上,這種基於訂閱的收入模型可能會蠶食Microsoft當時已有的許多基於許可證的產品。但從宏觀上看,規模經濟(economies of scale)纔是雲服務模型最重要的價值雲計算
在微觀經濟學中,規模經濟是指企業因爲經營規模而得到的成本優點,單位產出成本隨着規模的擴大而下降:.net
In microeconomics, economies of scale are the cost advantages that enterprises obtain due to their scale of operation (typically measured by amount of output produced), with cost per unit of output decreasing with increasing scale.
簡單來說,規模經濟就是隨着規模的擴大而更高效地作事:
The simple meaning of economies of scale is doing things more efficiently with increasing size.
在雲計算中體如今資源集中管理(Resource pooling)上,從而產生規模效應:
雲計算的規模經濟體如今兩個方面,一是使得用戶終端成本下降,二是擁有更高的利用率,於是被認爲可能產生良好經濟效益。
一方面用戶不須要購買存儲器或服務器、而是經過購買服務來得到(相應功能),下降成本的投入和管理費用。另外一方面雲服務的提供實際上就是大量的用戶在共享一個服務的資源,利用率更高。
由雲服務供應商集中管理軟硬件資源,並提供維護、按需計費、彈性擴展等服務,用戶再也不須要全權控制上上下下的N層資源棧,便可部署本身的應用程序(PaaS)
上圖僅從表層去描述了PaaS與外包託管和本地部署之間的主要差別,缺少具象的對比,所以須要一種可以突出差別並傳達其價值,同時還能說明差別程度的可視化模型:
先根據人們所熟知的本地IT環境抽象出9層資源棧,做爲統一上下文,再將雲服務模型映射到這個上下文中,並突出差別。之因此用層次結構來描述,是由於:
體現了某種程度的關注點分離
表現出棧中各層之間具備一些直接依賴關係和設計/操做抽象
具體的:
本地部署:正如咱們所理解的那樣,徹底控制整個資源棧,擁有並管理這些資源
IaaS:再也不全權控制全部資源,下5層託管給基礎設施供應商
PaaS:除Application以外的層都交由供應商管理了,咱們只須要關注本身的應用程序
也有一些類比模型,例如披薩、汽車等,但都不如資源棧模型貼切,由於在作類比時會丟失一些上下文信息,好比層間依賴和關注點分離
以汽車模型爲例:
這種類比的關鍵點是:
本地部署:就像擁有本身的車,能夠隨時去任何想去的地方(徹底控制)。車的型號、外觀、顏色、裝飾等均可以自選,但要本身負責維護
IaaS:像是租車服務,仍然能夠隨時想去哪就去哪。雖然在車的選擇上有一些限制,但沒必要本身維護,拿到鑰匙就能出發
PaaS:就像公共交通,能夠根據發車時間表按既定路線去往已通車的地方,雖然存在這樣一些限制,但易於使用,並且能按使用量付費(得益於規模經濟)
從本質上來說,這種類比所表達的仍是最初控制與規模經濟之間的權衡,但在視覺上更容易理解,並且有助於展開討論和傳播
9層資源棧模型出現以後,又對其視覺呈現作了一些修改(將3D的部分扁平化,減小顏色數量,去掉複雜形狀),獲得了:
接着有人提出SaaS也應該加進來,因而有了:
爲了讓SaaS與PaaS的差別更明顯(直接加的話,僅一層Application的區別),對資源棧自己作了一些調整:
Security & Integration層被刪掉了,由於全部層都存在安全問題,做爲單獨一層沒什麼意義
在Applications層下面添上Data層
Databases, Servers, Server HardWare層分別改成Middleware、O/S和Server層
這樣,雲環境(IaaS、PaaS、SaaS)之間都是2層差別,雲環境與本地環境之間有5層差別,代表雲環境與本地環境間的差別更大
以後爲了表意更準確,又作了一些修繕,
O/S改成Operating System
On-Premises改成Traditional IT,由於本地部署包括私有云環境,要區分開
對IaaS中的managed by線作了輕微調整(延伸出一部分到Operating System層),表示IaaS中的O/S層是共同維護的,雲供應商提供基礎了VM鏡像,但用戶還須要維護其補丁和更新
獲得終稿:
關注「前端向後」微信公衆號,你將收穫一系列「用心原創」的高質量技術文章,主題包括但不限於前端、Node.js以及服務端技術
本文首發於 ayqy.net,原文連接 http://www.ayqy.net/blog/雲服務模型:控制與規模經濟的博弈/