何為PaaS
地球人都知道PaaS就是Platform as a Service的縮寫,但到底什么是PaaS呢?
假如我們現(xiàn)在需要一個(gè)業(yè)務(wù),提供一個(gè)很簡(jiǎn)單的"hello world"服務(wù),那么需要的資源有哪些呢,看下圖:
IaaS&PaaS覆蓋圖
從最底層的IDC、機(jī)房、網(wǎng)絡(luò)、服務(wù)器,到服務(wù)器上的操作系統(tǒng),操作系統(tǒng)上的服務(wù)軟件(主要包括WebServices、數(shù)據(jù)庫(kù)、緩存等),當(dāng)然最終在WebServices里運(yùn)行的是我們的業(yè)務(wù)代碼。如果我們生活在互聯(lián)網(wǎng)的初始階段,那么這些元素都是需要我們關(guān)心的,我們不得不為帶寬機(jī)架跟運(yùn)營(yíng)商打交道,為域名備案跟通管局打交道,為服務(wù)器跟服務(wù)器供應(yīng)商打交道,最后還得雇傭管理一個(gè)運(yùn)維團(tuán)隊(duì),幫助維護(hù)自己的IT資源。這會(huì)使人瘋掉!
現(xiàn)在幸福的事情,IaaS(Infrastructure as a Service),來(lái)了,IaaS幫我們節(jié)省了紅線所涉及的部分,包括IDC、網(wǎng)絡(luò)、服務(wù)器、甚至包括部分操作系統(tǒng),為什么說(shuō)部分操作系統(tǒng)呢?因?yàn)槲覀冞€是要關(guān)心操作系統(tǒng)掛掉、機(jī)器宕機(jī)等因素,如果我們不關(guān)心,或者說(shuō)我們從業(yè)務(wù)的架構(gòu)上不考慮這些因素,是很難保證業(yè)務(wù)穩(wěn)定的。
而PaaS呢?PaaS幫我們節(jié)省了藍(lán)色涉及的部分,也就是說(shuō)除了IaaS節(jié)省的部分外,還節(jié)省了服務(wù)軟件和代碼的部分,換句話說(shuō),PaaS提供了一個(gè)完整的業(yè)務(wù)開(kāi)發(fā)、運(yùn)行環(huán)境,我們無(wú)需關(guān)心怎么安裝Apache、怎么配置緩存、怎么配置數(shù)據(jù)庫(kù)讀寫分離,所有這些已經(jīng)以服務(wù)的方式(注意:不是以機(jī)器的方式)提供好了,我們需要做的,只是把業(yè)務(wù)代碼放上來(lái)就好了。
總之,IaaS提供的還是虛擬機(jī)資源,而PaaS提供的是實(shí)際業(yè)務(wù)的開(kāi)發(fā)、運(yùn)行環(huán)境,正如SAE對(duì)自己的定位:“Web應(yīng)用/業(yè)務(wù)的分布式開(kāi)發(fā)、運(yùn)行平臺(tái)”。
PaaS和IaaS的區(qū)別
剛才說(shuō)了IaaS主要是虛擬機(jī)資源,而PaaS提供的是業(yè)務(wù)的開(kāi)發(fā)、運(yùn)行環(huán)境,那么PaaS和IaaS的區(qū)別就是這些嗎?
云計(jì)算追求的就是通過(guò)共享從而降低成本,并且利用技術(shù)提供更好的服務(wù)。我們來(lái)看一個(gè)生活中的例子:
我們?nèi)ワ埖瓿燥?,菜很好吃,但有一個(gè)事比較煩心:“到底點(diǎn)多少菜”,點(diǎn)的多了怕浪費(fèi),點(diǎn)的少了怕不夠吃,快吃完了再點(diǎn)又怕上菜慢,現(xiàn)在我們利用云計(jì)算的思路解決這個(gè)問(wèn)題=》
IaaS的辦法:將菜“虛擬化”,將一份菜切分為半份菜、1/3份菜,甚至1/4菜,用戶可以點(diǎn)小份。
這種辦法很有效,可以有效降低我們吃飯的成本,但仍不是特別方便,A,我們無(wú)法準(zhǔn)確預(yù)估需要點(diǎn)多少份;B,吃著吃著飯,突然來(lái)了一個(gè)朋友,又要現(xiàn)點(diǎn)份菜,這需要上菜時(shí)間,耽誤工夫。
那么怎么才能做的更好呢?人類吃飯的單位都是一口,沒(méi)有人能吃“半口飯”,能不能按照口供應(yīng)呢?我們來(lái)看:
PaaS的辦法:通過(guò)一種技術(shù),將菜按口供應(yīng),每個(gè)顧客只要張嘴就可以吃菜,不張嘴就不吃了,停止計(jì)費(fèi),來(lái)了一個(gè)新朋友,也是通過(guò)同樣的方式,只要張嘴就有菜吃。
IaaS&PaaS解決問(wèn)題對(duì)比
從這張圖可以看出,PaaS對(duì)比IaaS虛擬化的粒度更細(xì),更貼近用戶的實(shí)際需要,因?yàn)橛脩粽嬲枰牟⒉皇翘摂M機(jī),而是滿足業(yè)務(wù)運(yùn)行需求。下面我們來(lái)仔細(xì)討論一下PaaS和IaaS的區(qū)別吧:
PaaS的計(jì)費(fèi)粒度更細(xì)
從計(jì)費(fèi)粒度上,PaaS比IaaS更細(xì),IaaS普遍以 虛擬機(jī)的實(shí)例數(shù)*運(yùn)行時(shí)間 計(jì)費(fèi),即使IaaS標(biāo)榜他們的計(jì)費(fèi)單元可以精確到秒級(jí),但如果用戶業(yè)務(wù)某個(gè)時(shí)間段沒(méi)有任何請(qǐng)求,用戶仍然需要為這部分虛擬機(jī)使用時(shí)間付費(fèi),因?yàn)橛脩魺o(wú)法預(yù)知下一次請(qǐng)求什么時(shí)候到來(lái),所以用戶無(wú)法關(guān)閉所有虛擬機(jī)。
而PaaS是以請(qǐng)求消耗的資源為單元計(jì)費(fèi)的。
這樣,如果用戶的業(yè)務(wù)暫時(shí)沒(méi)有任何請(qǐng)求,則用戶無(wú)需支付任何費(fèi)用,做到了真正的“所付即所用”。
從SAE上用戶的實(shí)際使用情況來(lái)看,幾乎所有用戶對(duì)比之前的使用IaaS時(shí)都會(huì)有不同程度的成本節(jié)約,以某創(chuàng)業(yè)為例,日均15萬(wàn)PV,
PaaS比IaaS更可靠
IaaS用戶容易高估自己的服務(wù)可靠性,這里面有兩個(gè)原因:
- IaaS服務(wù)廠商往往夸大自己的服務(wù)可靠性,實(shí)際從目前看任何一個(gè)IaaS廠商都時(shí)不時(shí)有重大故障報(bào)出來(lái)
- IaaS用戶迷信廠商提供的SLA,自己不進(jìn)行高可靠架構(gòu)部署
我見(jiàn)過(guò)在IaaS只用2臺(tái)虛擬機(jī),然后標(biāo)榜自己的服務(wù)可靠性有多高的用戶,殊不知當(dāng)物理機(jī)宕機(jī)時(shí),虛擬機(jī)一定會(huì)收到影響,目前IaaS服務(wù)商能提供熱遷移的只是少數(shù),即使能提供也是需要提前準(zhǔn)備的,無(wú)法做到故障時(shí)實(shí)時(shí)切換
PaaS隱藏了服務(wù)器、虛擬機(jī)的概念,把一切功能服務(wù)化,而這些服務(wù)都是基于高可靠架構(gòu)的,以SAE提供的Cron定時(shí)服務(wù)為例,這套Cron服務(wù)是基于分布式環(huán)境,任何一臺(tái)機(jī)器宕機(jī)都不會(huì)影響定時(shí)任務(wù)的準(zhǔn)確觸發(fā)。
PaaS是真正的“高可擴(kuò)展”
要明白這個(gè)問(wèn)題,我們先來(lái)看什么叫“可擴(kuò)展”,可擴(kuò)展有兩個(gè)層面:
1,用戶可以自行擴(kuò)展資源,通過(guò)手工的方式(包括頁(yè)面點(diǎn)擊、API調(diào)用等)
2,隨著用戶的業(yè)務(wù)擴(kuò)張,自動(dòng)擴(kuò)展
幾乎所有的IaaS廠商都可以實(shí)現(xiàn)層面1,但層面1的問(wèn)題是,用戶不知道什么時(shí)候擴(kuò)展。用戶真正需要的是層面2的擴(kuò)展,即隨著業(yè)務(wù)增長(zhǎng),資源自動(dòng)擴(kuò)展,整個(gè)過(guò)程用戶可以完全不感知,目前這種層面的“高可擴(kuò)展”沒(méi)有任何一家IaaS廠商提供。
而SAE恰恰提供這種層面2的高可擴(kuò)展,SAE會(huì)自動(dòng)判斷用戶的業(yè)務(wù)是否存在等待隊(duì)列,一旦請(qǐng)求出現(xiàn)等待,將自動(dòng)將請(qǐng)求分配新的計(jì)算節(jié)點(diǎn),通過(guò)這種機(jī)制,用戶從PV 100/天漲到PV 1億/天,可以做到瞬間實(shí)現(xiàn)而無(wú)需用戶做任何操作。
PaaS是免運(yùn)維的云計(jì)算
“免運(yùn)維”是PaaS的最大魅力,因?yàn)橛脩舭汛a放上來(lái),就可以完全不管了,無(wú)論業(yè)務(wù)凋零還是業(yè)務(wù)暴漲,都無(wú)需人工干預(yù),當(dāng)然SAE提供完整的圖表展現(xiàn)用戶的各種請(qǐng)求曲線,了解業(yè)務(wù)情況還是必須的。在SAE上的很多用戶團(tuán)隊(duì)里都是0運(yùn)維,也就是一個(gè)運(yùn)維人員都沒(méi)有,這在傳統(tǒng)業(yè)務(wù)團(tuán)隊(duì)中是不可想象的。
PaaS的缺點(diǎn)
雖然PaaS有免運(yùn)維、高可靠、自動(dòng)擴(kuò)展、更加節(jié)約成本等優(yōu)點(diǎn),但是PaaS也有缺點(diǎn),PaaS的最大缺點(diǎn)就是因?yàn)橛脩魺o(wú)法看見(jiàn)服務(wù)器,感受不到虛擬機(jī),這樣限制了用戶的自主性和靈活性,比如用戶想部署一個(gè)自己的C程序,或者用戶想直接開(kāi)一個(gè)FTP管理文件,這些需求都無(wú)法在PaaS中滿足,因?yàn)镻aaS 提供的是一個(gè)業(yè)務(wù)的開(kāi)發(fā)、運(yùn)行環(huán)境,而不是用戶能夠登陸的云主機(jī)。
那么既然PaaS有優(yōu)點(diǎn)也有缺點(diǎn),那么什么情況適合使用PaaS呢?
PaaS的適用場(chǎng)景
其實(shí),PaaS和IaaS各有各的適用場(chǎng)景,主要由以下一些規(guī)律:
非HTTP業(yè)務(wù)(如游戲服務(wù)端、數(shù)據(jù)分析服務(wù))適合用IaaS,HTTP業(yè)務(wù)(網(wǎng)站、RESTfulAPI服務(wù)端)適合用PaaS;
大型團(tuán)隊(duì)(擁有豐富的系統(tǒng)、網(wǎng)絡(luò)、運(yùn)維能力和經(jīng)驗(yàn))適合用IaaS,創(chuàng)業(yè)團(tuán)隊(duì)/小型團(tuán)隊(duì)(團(tuán)隊(duì)規(guī)模小,全部聚焦在業(yè)務(wù))適合用PaaS;
技術(shù)團(tuán)隊(duì)(喜歡定制化、喜歡掌控一切)適合用IaaS,產(chǎn)品團(tuán)隊(duì)(聚焦在產(chǎn)品開(kāi)發(fā))適合用PaaS;
資金充裕(能夠雇傭昂貴的系統(tǒng)工程師、能夠支付沒(méi)有流量的虛機(jī)費(fèi)用)的團(tuán)隊(duì)適合用IaaS,資金緊張(對(duì)成本比較care的用戶)的適合用PaaS;
PaaS是真正的云計(jì)算平臺(tái)
總之,在桌面時(shí)代,我們需要的不是IBM ThinkPad、甚至不是Windows,而是上面成千上萬(wàn)的應(yīng)用、游戲;到了云時(shí)代,我們需要的既不是幾core的虛擬機(jī)、也不是什么EBS存儲(chǔ),而是一個(gè)能讓我們的業(yè)務(wù)穩(wěn)定可靠省心運(yùn)行的環(huán)境,如果有這樣的環(huán)境,除了技術(shù)Geek,我想沒(méi)有人想管服務(wù)器。。。
PaaS盡管有種種問(wèn)題,但它確實(shí)是從誕生就想提供給用戶一個(gè)省心、穩(wěn)定的業(yè)務(wù)運(yùn)行環(huán)境,用戶一旦部署,不需要關(guān)心擴(kuò)容,不需要關(guān)心架構(gòu),不需要關(guān)心宕機(jī),不需要關(guān)心配置,不需要關(guān)心優(yōu)化,就可以隨著業(yè)務(wù)的發(fā)展時(shí)時(shí)滿足各種需要,所以PaaS是真正的云計(jì)算平臺(tái)。