霧里看花 巧辨真假PaaS
云計算已經(jīng)刮起了流行旋風(fēng),隨著其不斷成熟,應(yīng)用不斷增長,新用戶涌現(xiàn)。在IT業(yè)界軟件即服務(wù)和基礎(chǔ)架構(gòu)即服務(wù)愈發(fā)如魚得水。但是因為云洗白和市場不成熟,平臺即服務(wù)仍舊處在黎明前的黑暗中。
對軟件即服務(wù)(SaaS)這樣特定類型的應(yīng)用,以一種方式訪問復(fù)雜應(yīng)用輕而易舉,而且無需大量現(xiàn)金支出,只需要很低的管理支出即可。同樣,基礎(chǔ)架構(gòu)即服務(wù)(IaaS)吸引了越來越多的企業(yè),提供了一種訪問多種且大量計算、存儲和帶寬資源的能力,而且可以像本地基礎(chǔ)架構(gòu)那樣受到控制,無需先期投入。
平臺即服務(wù)(PaaS)則是完全另一幅光景。主要受到前瞻性的開發(fā)者的擁戴,PaaS的主要價值定位在于增加了生產(chǎn)率以及更快的部署時間。PaaS也提供了內(nèi)置的自動擴展和故障恢復(fù),如果開發(fā)者想要在其應(yīng)用中增加這些功能,則不需要學(xué)習(xí)這些復(fù)雜的代碼。
“結(jié)合了預(yù)制OS和開發(fā)平臺,應(yīng)用部署就變得輕而易舉,”Roger Jennings說道,他是OakLeaf Systems的***咨詢師,同時也是一位.NET開發(fā)者。盡管大多數(shù)IT人士自然而然的趨向于用IaaS滿足自身需求,但是在微軟的Windows Azure PaaS上只需要十分之一的時間即可搭建一個網(wǎng)站。
霧里看花 巧辨真假PaaS
當(dāng)今,PaaS市場只是整個公有云市場的一小部分。但是如果PaaS飛黃騰達,很多專家也確信會是這樣的結(jié)果,它將對IT人士產(chǎn)生廣泛的影響,他們的角色和職責(zé)也會發(fā)生轉(zhuǎn)變。但是市場仍舊處于初期,對于企業(yè)IT而言,很難預(yù)測會有多少應(yīng)用、什么類型的PaaS平臺,以及PaaS內(nèi)置的應(yīng)用是他們可能需要落地的。
PaaS剖析
大多數(shù)IT部門需要做的***件事就是了解真正的PaaS和假冒的PaaS之間的區(qū)別。
“你否記得我們過去看到的所有的云洗白都是來自基礎(chǔ)架構(gòu)提供商?”James Staten說道,他是Forrester Research的以為分析師,“在PaaS領(lǐng)域其實更為糟糕。”
Staten解釋道,他經(jīng)常看到一些廠商嘗試將IaaS的上的老一套,在增加一點服務(wù)就變成了PaaS,讓開發(fā)者和運維人員甘傲困惑。
從核心觀點將,真正的PaaS平臺必須包含抽象的運行時環(huán)境、應(yīng)用服務(wù)器、緩存層、整合開發(fā)工具,增加自動擴展以及故障恢復(fù)功能。用一個老一點的術(shù)語——中間件,它可以在公有IaaS之上運行,或者通過在本地硬件上運行實現(xiàn)交付。
真正的PaaS包括但不僅限于,比如微軟Azure、Engine Yard、Heroku、CloudBees和Google App Engine。亞馬遜Web服務(wù)(AWS)的Elastic BeanStalk,盡管經(jīng)常說自己是PaaS,卻完全對不起自己的賬單,不符合PaaS的規(guī)則。
“Elastic BeanStalk就一個如何在IaaS上部署復(fù)雜應(yīng)用的腳本,增加了一些故障恢復(fù)和可擴展的腳本,”Staten說道。相反,真正的PaaS并不提供腳本,但是暴露出可以為應(yīng)用所調(diào)用的組件。
真正的PaaS和假冒PaaS之間的區(qū)別不止是學(xué)術(shù)上的差異;對于開發(fā)團隊會產(chǎn)生實際的影響。對于那些相信自己就是在PaaS上開發(fā)的開發(fā)者來說,期望是“我編寫我的代碼,我來部署,可以自動化擴展而且能夠自動化實現(xiàn)故障恢復(fù),”Staten說道,而假冒的PaaS則是“應(yīng)用無法真的擴展和實現(xiàn)故障恢復(fù)。”
PaaS平臺來源
很多PaaS平臺都起源于具體的編程語言。隨著時間推移,大多數(shù)PaaS廠商都開始超越單一的語言,提倡多語言。然而,值得我們銘記的是,要找到適合你的環(huán)境的最適合的選擇。下面是一些PaaS廠商以及他們的原始開發(fā)環(huán)境的不完全列表。
AppFog——PHP
CloudBees——Java
CloudFoundry——Ruby on Rails
Engine Yard——Ruby on Rails、PHP
Google App Engine——Python
Heroku——Ruby
Microsoft Windows Azure——.Net