漫畫:大廠總體SaaS化部署,到底什么是IaaS、PaaS和SaaS?
今天在之前的文章《如何給女朋友解釋什么是云計算?》中,我們介紹了云計算,在文章中我們提到雖然都是使用云計算服務(wù),但是不同的用戶需要的服務(wù)是不一樣的,有些公司可能只需要租借服務(wù)器、有些公司可能需要整套服務(wù),而有些個人客戶可能希望直接可以通過付費得到一個網(wǎng)站等。
所以,根據(jù)服務(wù)類型的不同,云計算可以分為三類,即基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺即服務(wù)(PaaS)和軟件即服務(wù)(SaaS)。這3種云計算服務(wù)有時稱為云計算堆棧,因為它們構(gòu)建堆棧,它們位于彼此之上。
本文,就來分別介紹下到底什么是IaaS、PaaS和SaaS。
IaaS
IaaS(Infrastructure as a Service),即基礎(chǔ)設(shè)施即服務(wù)。指把IT基礎(chǔ)設(shè)施作為一種服務(wù)通過網(wǎng)絡(luò)對外提供,并根據(jù)用戶對資源的實際使用量或占用量進(jìn)行計費的一種服務(wù)模式。
做一個簡單的比喻,IaaS服務(wù)優(yōu)點類似于共享廚房服務(wù)。
商家為用戶提供了廚房、鍋具、煤氣灶、烤箱、電飯煲等等一系列廚房用品。用戶需要自己購買米、面、蔬菜、調(diào)味品等,并進(jìn)行加工制作。
有了IaaS服務(wù),用戶可以在云服務(wù)提供商提供的基礎(chǔ)設(shè)施上部署和運行任何軟件,包括操作系統(tǒng)和應(yīng)用軟件。
用戶沒有權(quán)限管理和訪問底層的基礎(chǔ)設(shè)施,如服務(wù)器、交換機(jī)、硬盤等,但是有權(quán)管理操作系統(tǒng)、存儲內(nèi)容,可以安裝管理應(yīng)用程序,甚至是有權(quán)管理網(wǎng)絡(luò)組件。
簡單的說用戶使用IaaS,有權(quán)管理操作系統(tǒng)之上的一切功能。我們常見的IaaS服務(wù)有虛擬機(jī)、虛擬網(wǎng)絡(luò)、以及存儲。
PaaS
PaaS(Platform as a Service),是指平臺即服務(wù)。是一種云計算服務(wù),提供運算平臺與解決方案服務(wù)。
還是使用共享廚房的例子來比喻。
餐廳除了提供廚房、廚具等,還提供了清洗干凈切好的蔬菜、調(diào)好味道的肉、餃子皮和餃子餡等。用戶要享受美食,首先需要炒菜、加熱或者煮熟,但卻不用做太多的前期多種復(fù)雜準(zhǔn)備。
PaaS給用戶提供的能力是使用由云服務(wù)提供商支持的編程語言、庫、服務(wù)以及開發(fā)工具來創(chuàng)建、開發(fā)應(yīng)用程序并部署在相關(guān)的基礎(chǔ)設(shè)施上。
用戶無需管理底層的基礎(chǔ)設(shè)施,包括網(wǎng)絡(luò)、服務(wù)器,操作系統(tǒng)或者存儲。他們只能控制部署在基礎(chǔ)設(shè)施中操作系統(tǒng)上的應(yīng)用程序,配置應(yīng)用程序所托管的環(huán)境的可配置參數(shù)。
SaaS
SaaS(Software-as-a-Service),意思為軟件即服務(wù),即通過網(wǎng)絡(luò)提供軟件服務(wù)。
SaaS平臺供應(yīng)商將應(yīng)用軟件統(tǒng)一部署在自己的服務(wù)器上,客戶可以根據(jù)工作實際需求,通過互聯(lián)網(wǎng)向廠商定購所需的應(yīng)用軟件服務(wù),按定購的服務(wù)多少和時間長短向廠商支付費用,并通過互聯(lián)網(wǎng)獲得Saas平臺供應(yīng)商提供的服務(wù)。
和IaaS以及PaaS的共享廚房相比,SaaS更像外賣平臺。
SaaS相當(dāng)于餐廳直接為大家提供做好的菜肴,還提供外賣服務(wù)。用戶只需要付費,就可以享受各種不同類型的美味佳肴,還可以在有外賣網(wǎng)點的地方直接點餐。
SaaS給用戶提供的能力是使用在云基礎(chǔ)架構(gòu)上運行的云服務(wù)提供商的應(yīng)用程序??梢酝ㄟ^輕量的客戶端接口(諸如web瀏覽器(例如,基于web的電子郵件))或程序接口從各種客戶端設(shè)備訪問應(yīng)用程序。
用戶無需管理或控制底層云基礎(chǔ)架構(gòu),包括網(wǎng)絡(luò),服務(wù)器,操作系統(tǒng),存儲甚至單獨的應(yīng)用程序功能,可能的例外是有限的用戶特定應(yīng)用程序配置設(shè)置。
根據(jù)SaaS應(yīng)用是否具有可配置性,高性能,可伸縮性的特性,SaaS成熟度模型被分成四級。每一級都比前一級增加三種特性中的一種:
- 多次開發(fā)
這種模型下,軟件服務(wù)提供商為每個客戶定制一套軟件,并為其部署。每個客戶使用一個獨立的數(shù)據(jù)庫實例和應(yīng)用服務(wù)器實例。數(shù)據(jù)庫中的數(shù)據(jù)結(jié)構(gòu)和應(yīng)用的代碼可能都根據(jù)客戶需求做過定制化修改。
- 一次開發(fā)多次部署
通過不同的配置滿足不同客戶的需求,而不需要為每個客戶進(jìn)行特定定制,以降低定制開發(fā)的成本。
但是,軟件的部署架構(gòu)沒有太大的變化,依然為每個客戶獨立部署一個運行實例。只是每個運行實例運行的是同一份代碼,通過配置的不同來滿足不同客戶的個性化需求。
可配置性的比較通用的實現(xiàn)方式,就是通過MetaData(元數(shù)據(jù))來實現(xiàn)。
- 一次開發(fā)一次部署
多租戶單實例(Multi-Tenant)的應(yīng)用架構(gòu)才是通常真正意義上的SaaS應(yīng)用架構(gòu),它可以有效降低SaaS應(yīng)用的硬件及運行維護(hù)成本,最大化地發(fā)揮SaaS應(yīng)用的規(guī)模效應(yīng)。
- 無需開發(fā)
將第三級的Multi-Tenant SingleInstance系統(tǒng)擴(kuò)展為Multi-Tenant MultiInstance。最終用戶首先通過接入Tenant Load Balance層,再被分配到不同的Instance上。通過多個Instance來分擔(dān)大量用戶的訪問,我們可以讓應(yīng)用實現(xiàn)近似無限的水平擴(kuò)展。
總結(jié)
本文通過廚房最菜的例子介紹了云計算中的三種形式:IaaS、PaaS以及SaaS。
從IaaS到PaaS再到SaaS,服務(wù)商提供的服務(wù)及產(chǎn)品越來越多,而普通用戶承擔(dān)的工作量便越來越少。
從左到右,使用了對應(yīng)的云服務(wù)后,用戶承擔(dān)的工作量(上圖綠色部分)會越來越少,IaaS > PaaS > SaaS。
IaaS 是云服務(wù)的最底層,主要提供一些基礎(chǔ)資源。常見的產(chǎn)品有Amazong EC2、阿里云等。
PaaS 提供軟件部署平臺,抽象掉了硬件和操作系統(tǒng)細(xì)節(jié),可以無縫地擴(kuò)展。開發(fā)者只需要關(guān)注自己的業(yè)務(wù)邏輯,不需要關(guān)注底層。常見的產(chǎn)品有Heroku等。
SaaS 是軟件的開發(fā)、管理、部署都交給第三方,不需要關(guān)心技術(shù)問題,可以拿來即用。常見的產(chǎn)品有Gmail、PayPal等。