最近翻看了一本關于云計算服務的書,書中對SaaS PaaS IaaS三種模式的利弊及使用場景都做了詳細的分析和講述,也刷新了我之前對三種服務模式的理解。現將一些主要內容整理出來以便與大家分享和加深自己的記憶。不過本人對技術的理解能力比較有限,如果內容中有理解錯誤的地方還請大神指出。
云計算的概念雖然很早以前就已經存在。但是經過數十年的發展現在的開發者已經無需在考慮購買任何硬件或自己建造數據中心,就可以通過一種按需供應的軟件產品解決方案(SaaS,軟件即服務),或是以一個無需任何基礎設施成本便可快速開發的解決方案平臺(PaaS,平臺即服務),抑或是以一種可基于較低成本構建可擴展的虛擬數據中心(IaaS,基礎設施即服務)。
在IaaS中,其實就是將以往需要技術人員管理和維護的服務器、網絡、硬盤等物理設施和數據中心服務化和商品化了。企業可以按照自己的需求購買相應的基礎設施服務,并可以通過一個網頁的管理控制臺形式對虛擬主機進行訪問和部署。有效降低了企業的基礎設施成本,及設施運維成本。代表供應商:亞馬遜AWS、Rackspace等。
在往上一層是PaaS。PaaS服務供應商通常會提供給開發者一套工具,開發者能夠使用這套工具所支持的編程語言、庫、服務等,將自己創建的應用部署到云基礎設施上。這套工具會在某種程度上限制開發者控制服務器底層的權限。從而制定一個標準,確保對每個人來說平臺都有同等的擴展能力。開發者不會對底層云基礎進行管理和控制,從而將更多的精力放在實現業務邏輯上。代表供應商:Gooogle Apps Engine、微軟Azure、Forece.com。
最上層是SaaS。SaaS層個人理解其實就是大部分toB產品經理干的事,SaaS供應商負責處理所有有關產品底層設施及功能邏輯問題。消費者(也就是用戶)要做的只是對軟件的一些具體的應用參數進行配置和管理。消費者不會直接對底層云基礎設施進行管理或控制。比較常見的SaaS應用像CRM、ERP、財務系統及其他業務軟件。
以上三種服務模式層級越往上,消費者對底層基礎設施的控制權限越少。企業及開發者需要根據自己目前的業務、技術能力、資金情況等等選擇一種或多種服務模式。如一般的企業會將自己的HR系統、CRM、ERP等非核心工作流外包給某一個SaaS服務提供商,前提是這些業務并非是公司的核心業務。如果自己開發應用就必須耗費大量的人力財力來對系統進行維護,得不償失。當然如果當一些SaaS級的應用滿足不了企業的一些定制化需求的時候,企業就需要根據自身情況選擇PaaS或IaaS服務模式自己建立應用系統。
例如一些初創型的企業或小型公司因為技術資源有限可能會優先選擇PaaS。他們無需在考慮基礎設施、網絡、安全補丁、日志、擴展、故障轉移等,這些全部由服務供應商提供支持。從而開發者可以專注于構建云端應用。但是PaaS模式一般會要求開發者使用某種特定的編程語言和服務商的基礎設施上開發。而一些大的企業因為他們的系統架構非常復雜,使用的編程語言和基礎設施也各不相同,所以無法完全轉移到PaaS上。當然現在的好多PaaS服務提供商已經支持多種編程語言比如:PHP、Python、Node. js,甚至還可以將PaaS軟件部署在開發者自己的服務器上。
但是如果一個應用對性能和擴展性要求特別高,需要開發者自己來配置和管理底層的內存、數據庫及并發量,就應該選擇IaaS。當PaaS提供商服務出現中斷時,企業或開發者只能等待PaaS提供商修復問題后,重新恢復上線。而如果選擇IaaS,則可以通過跨越多個物理或虛擬數據中心構建沉余服務。當然如果選擇SaaS模式,相對應的各種成本也會隨之提高。
一般大企業有可能會同時選擇三種模式架構。比如非核心業務如在線支付、ERP、CRM等交給SaaS提供商。較為核心的業務可以選擇PaaS,但是PaaS存在中斷風險,所以核心業務選擇IaaS公有云。且可以將重要數據保存在自己的私有云中,利用公有云來應對高流量的并發,也叫混合云。
SaaS模式能夠使企業提高面向市場的速度,降低企業的人力和運營成本。
PaaS模式能夠降低開發者搭建和部署應用的工作量和資源,從而大幅降低成本。
IaaS模式能對基礎設施有更多的控制力,更有可能避免因為供應商的服務中斷導致系統無法上線或正常運行。
三種模式各有利弊,不同的企業及開發者可以根據自己不同的階段來選擇其中一種或多種來滿足自己的業務需要。
當然啦大部分的產品經理一般都工作在SaaS層,不過對于下面兩層都有一些了解也沒什么壞處不是?