何為PaaS
? 地球人都知道PaaS就是Platform as a Service的縮寫到腥,但到底什么是PaaS呢?
? 假如我們現(xiàn)在需要一個業(yè)務(wù)踩寇,提供一個很簡單的"hello world"服務(wù)醉旦,那么需要的資源有哪些呢雇毫,看下圖:
從最底層的IDC曲横、機房喂柒、網(wǎng)絡(luò)、服務(wù)器,到服務(wù)器上的操作系統(tǒng)灾杰,操作系統(tǒng)上的服務(wù)軟件(主要包括WebServices蚊丐、數(shù)據(jù)庫、緩存等)吭露,當(dāng)然最終在WebServices里運行的是我們的業(yè)務(wù)代碼吠撮。如果我們生活在互聯(lián)網(wǎng)的初始階段,那么這些元素都是需要我們關(guān)心的讲竿,我們不得不為帶寬機架跟運營商打交道,為域名備案跟通管局打交道弄屡,為服務(wù)器跟服務(wù)器供應(yīng)商打交道,最后還得雇傭管理一個運維團隊,幫助維護自己的IT資源燥翅。這會使人瘋掉拿穴!
? ? 現(xiàn)在幸福的事情,IaaS(Infrastructure as a Service)全庸,來了秀仲,IaaS幫我們節(jié)省了紅線所涉及的部分,包括IDC壶笼、網(wǎng)絡(luò)神僵、服務(wù)器、甚至包括部分操作系統(tǒng)覆劈,為什么說部分操作系統(tǒng)呢保礼?因為我們還是要關(guān)心操作系統(tǒng)掛掉、機器宕機等因素责语,如果我們不關(guān)心炮障,或者說我們從業(yè)務(wù)的架構(gòu)上不考慮這些因素,是很難保證業(yè)務(wù)穩(wěn)定的坤候。
? ? 而PaaS呢胁赢?PaaS幫我們節(jié)省了藍色涉及的部分,也就是說除了IaaS節(jié)省的部分外白筹,還節(jié)省了服務(wù)軟件和代碼的部分智末,換句話說,PaaS提供了一個完整的業(yè)務(wù)開發(fā)遍蟋、運行環(huán)境吹害,我們無需關(guān)心怎么安裝Apache、怎么配置緩存虚青、怎么配置數(shù)據(jù)庫讀寫分離它呀,所有這些已經(jīng)以服務(wù)的方式(注意:不是以機器的方式)提供好了,我們需要做的,只是把業(yè)務(wù)代碼放上來就好了纵穿。
? ? 總之下隧,IaaS提供的還是虛擬機資源,而PaaS提供的是實際業(yè)務(wù)的開發(fā)谓媒、運行環(huán)境淆院,正如SAE對自己的定位:“Web應(yīng)用/業(yè)務(wù)的分布式開發(fā)、運行平臺”句惯。
PaaS和IaaS的區(qū)別
? ? 剛才說了IaaS主要是虛擬機資源土辩,而PaaS提供的是業(yè)務(wù)的開發(fā)、運行環(huán)境抢野,那么PaaS和IaaS的區(qū)別就是這些嗎拷淘?
? ? 云計算追求的就是通過共享從而降低成本,并且利用技術(shù)提供更好的服務(wù)指孤。我們來看一個生活中的例子:
? ? 我們?nèi)ワ埖瓿燥埰粞模撕芎贸裕幸粋€事比較煩心:“到底點多少菜”恃轩,點的多了怕浪費结洼,點的少了怕不夠吃,快吃完了再點又怕上菜慢叉跛,現(xiàn)在我們利用云計算的思路解決這個問題=》
? ? IaaS的辦法:將菜“虛擬化”松忍,將一份菜切分為半份菜、1/3份菜昧互,甚至1/4菜挽铁,用戶可以點小份。
? ? 這種辦法很有效敞掘,可以有效降低我們吃飯的成本叽掘,但仍不是特別方便,A玖雁,我們無法準(zhǔn)確預(yù)估需要點多少份更扁;B,吃著吃著飯赫冬,突然來了一個朋友浓镜,又要現(xiàn)點份菜,這需要上菜時間劲厌,耽誤工夫膛薛。
? ? 那么怎么才能做的更好呢?人類吃飯的單位都是一口补鼻,沒有人能吃“半口飯”哄啄,能不能按照口供應(yīng)呢雅任?我們來看:
? ? PaaS的辦法:通過一種技術(shù),將菜按口供應(yīng)咨跌,每個顧客只要張嘴就可以吃菜沪么,不張嘴就不吃了,停止計費锌半,來了一個新朋友禽车,也是通過同樣的方式,只要張嘴就有菜吃刊殉。
? ? 從這張圖可以看出殉摔,PaaS對比IaaS虛擬化的粒度更細,更貼近用戶的實際需要冗澈,因為用戶真正需要的并不是虛擬機钦勘,而是滿足業(yè)務(wù)運行需求。下面我們來仔細討論一下PaaS和IaaS的區(qū)別吧:
PaaS的計費粒度更細
? ?從計費粒度上亚亲,PaaS比IaaS更細,IaaS普遍以 虛擬機的實例數(shù)*運行時間 計費腐缤,即使IaaS標(biāo)榜他們的計費單元可以精確到秒級捌归,但如果用戶業(yè)務(wù)某個時間段沒有任何請求,用戶仍然需要為這部分虛擬機使用時間付費岭粤,因為用戶無法預(yù)知下一次請求什么時候到來惜索,所以用戶無法關(guān)閉所有虛擬機。
? ? 而PaaS是以請求消耗的資源為單元計費的剃浇,如SAE價格:
? ? 這樣巾兆,如果用戶的業(yè)務(wù)暫時沒有任何請求,則用戶無需支付任何費用虎囚,做到了真正的“所付即所用”角塑。
? ? 從SAE上用戶的實際使用情況來看,幾乎所有用戶對比之前的使用IaaS時都會有不同程度的成本節(jié)約淘讥,以某創(chuàng)業(yè)為例圃伶,日均15萬PV,
PaaS比IaaS更可靠
? ? ?IaaS用戶容易高估自己的服務(wù)可靠性蒲列,這里面有兩個原因:
? ? ?- IaaS服務(wù)廠商往往夸大自己的服務(wù)可靠性窒朋,實際從目前看任何一個IaaS廠商都時不時有重大故障報出來
? ? ?- IaaS用戶迷信廠商提供的SLA,自己不進行高可靠架構(gòu)部署
? ? ?我見過在IaaS只用2臺虛擬機蝗岖,然后標(biāo)榜自己的服務(wù)可靠性有多高的用戶侥猩,殊不知當(dāng)物理機宕機時,虛擬機一定會收到影響抵赢,目前IaaS服務(wù)商能提供熱遷移的只是少數(shù)欺劳,即使能提供也是需要提前準(zhǔn)備的唧取,無法做到故障時實時切換
? ? ? PaaS隱藏了服務(wù)器、虛擬機的概念杰标,把一切功能服務(wù)化兵怯,而這些服務(wù)都是基于高可靠架構(gòu)的,以SAE提供的Cron定時服務(wù)為例腔剂,這套Cron服務(wù)是基于分布式環(huán)境媒区,任何一臺機器宕機都不會影響定時任務(wù)的準(zhǔn)確觸發(fā)。
PaaS是真正的“高可擴展”
? ? ? 要明白這個問題掸犬,我們先來看什么叫“可擴展”袜漩,可擴展有兩個層面:
? ? ? 1,用戶可以自行擴展資源湾碎,通過手工的方式(包括頁面點擊宙攻、API調(diào)用等)
? ? ? 2,隨著用戶的業(yè)務(wù)擴張介褥,自動擴展
? ? ? 幾乎所有的IaaS廠商都可以實現(xiàn)層面1座掘,但層面1的問題是,用戶不知道什么時候擴展柔滔。用戶真正需要的是層面2的擴展溢陪,即隨著業(yè)務(wù)增長,資源自動擴展睛廊,整個過程用戶可以完全不感知形真,目前這種層面的“高可擴展”沒有任何一家IaaS廠商提供。
? ? ?而SAE恰恰提供這種層面2的高可擴展超全,SAE會自動判斷用戶的業(yè)務(wù)是否存在等待隊列咆霜,一旦請求出現(xiàn)等待,將自動將請求分配新的計算節(jié)點嘶朱,通過這種機制蛾坯,用戶從PV 100/天漲到PV 1億/天,可以做到瞬間實現(xiàn)而無需用戶做任何操作见咒。
PaaS是免運維的云計算
? ? “免運維”是PaaS的最大魅力偿衰,因為用戶把代碼放上來,就可以完全不管了改览,無論業(yè)務(wù)凋零還是業(yè)務(wù)暴漲下翎,都無需人工干預(yù),當(dāng)然SAE提供完整的圖表展現(xiàn)用戶的各種請求曲線宝当,了解業(yè)務(wù)情況還是必須的视事。在SAE上的很多用戶團隊里都是0運維,也就是一個運維人員都沒有庆揩,這在傳統(tǒng)業(yè)務(wù)團隊中是不可想象的俐东。
PaaS的缺點
? ? 雖然PaaS有免運維跌穗、高可靠、自動擴展虏辫、更加節(jié)約成本等優(yōu)點蚌吸,但是PaaS也有缺點,PaaS的最大缺點就是因為用戶無法看見服務(wù)器砌庄,感受不到虛擬機羹唠,這樣限制了用戶的自主性和靈活性,比如用戶想部署一個自己的C程序娄昆,或者用戶想直接開一個FTP管理文件佩微,這些需求都無法在PaaS中滿足,因為PaaS提供的是一個業(yè)務(wù)的開發(fā)萌焰、運行環(huán)境哺眯,而不是用戶能夠登陸的云主機。
? ? 那么既然PaaS有優(yōu)點也有缺點扒俯,那么什么情況適合使用PaaS呢奶卓?
PaaS的適用場景
? ? 其實,PaaS和IaaS各有各的適用場景撼玄,主要由以下一些規(guī)律:
? ? 非HTTP業(yè)務(wù)(如游戲服務(wù)端寝杖、數(shù)據(jù)分析服務(wù))適合用IaaS,HTTP業(yè)務(wù)(網(wǎng)站互纯、RESTfulAPI服務(wù)端)適合用PaaS;
? ? 大型團隊(擁有豐富的系統(tǒng)磕蒲、網(wǎng)絡(luò)留潦、運維能力和經(jīng)驗)適合用IaaS,創(chuàng)業(yè)團隊/小型團隊(團隊規(guī)模小辣往,全部聚焦在業(yè)務(wù))適合用PaaS兔院;
? ?技術(shù)團隊(喜歡定制化、喜歡掌控一切)適合用IaaS站削,產(chǎn)品團隊(聚焦在產(chǎn)品開發(fā))適合用PaaS坊萝;
? ?資金充裕(能夠雇傭昂貴的系統(tǒng)工程師、能夠支付沒有流量的虛機費用)的團隊適合用IaaS许起,資金緊張(對成本比較care的用戶)的適合用PaaS十偶;
PaaS是真正的云計算平臺
? ?總之,在桌面時代园细,我們需要的不是IBM ThinkPad惦积、甚至不是Windows,而是上面成千上萬的應(yīng)用猛频、游戲狮崩;到了云時代蛛勉,我們需要的既不是幾core的虛擬機、也不是什么EBS存儲睦柴,而是一個能讓我們的業(yè)務(wù)穩(wěn)定可靠省心運行的環(huán)境诽凌,如果有這樣的環(huán)境,除了技術(shù)Geek坦敌,我想沒有人想管服務(wù)器侣诵。。恬试。
? ?PaaS盡管有種種問題窝趣,但它確實是從誕生就想提供給用戶一個省心、穩(wěn)定的業(yè)務(wù)運行環(huán)境训柴,用戶一旦部署哑舒,不需要關(guān)心擴容,不需要關(guān)心架構(gòu)幻馁,不需要關(guān)心宕機洗鸵,不需要關(guān)心配置,不需要關(guān)心優(yōu)化仗嗦,就可以隨著業(yè)務(wù)的發(fā)展時時滿足各種需要膘滨,所以PaaS是真正的云計算平臺。