從一個方面來分析,開發(fā)云應(yīng)用程序的平臺即服務(wù)模式有兩種:一種是專用模式,托管在本地或私有云中;另一種是公共模式,由第三方提供商來托管,并采用訂閱支付模式。那只是問題的一個方面。還可以以一種全然不同的方式來分析PaaS:這種方式基于與云環(huán)境的聯(lián)系。
據(jù)長期的IT和云計算顧問Judith Hurwitz聲稱,從這種聯(lián)系的角度來分析PaaS,會發(fā)現(xiàn)存在兩種不同的模式。其中之一是,PaaS與某個特定的軟件即服務(wù)(SaaS)環(huán)境聯(lián)系在一起,比如Salesforce的Force.com和Heroku Enterprise。另一種是PaaS受制于某個特定的云操作環(huán)境,以亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)的Elastic Beanstalk為代表。另外還有可以自由添加的PaaS解決方案,它們并不與任何一個云聯(lián)系在一起。這些包括Apprenda、CloudBees、Engine Yard及其他PaaS解決方案。
隨著公眾對云提供商安全的信心不斷加強,對PaaS的依賴程度也隨之提高,用于開發(fā)云應(yīng)用程序。雖然PaaS支出僅占總體云環(huán)境的一小部分,但正以驚人的速度增長。MarketsAndMarkets公司在最近一項研究中預(yù)測,到2018年,全球PaaS市場會增長到69.4億美元,而五年前還僅僅只有12.8億美元――年復合增長率高達32.54%。
作為Hurwitz提出的兩種模式中的第一種,將PaaS綁定到SaaS讓提供商得以“通過提供一個完整的、受保護的生態(tài)系統(tǒng),延伸品牌,”她說。“這是獨立軟件開發(fā)商或企業(yè)開發(fā)人員構(gòu)建旨在完全在該環(huán)境中運行的自定義應(yīng)用程序的最容易、最快速、最安全的方式。”這不是什么新的想法:2011年――按云計算行業(yè)的標準來看那已是很久以前,Workday發(fā)布了自己的受制型PaaS,采用的品牌名是Workday集成云平臺(Workday Integration Cloud Platform)。這家公司位于加州普萊森頓,專門開發(fā)基于云的人力資源和財務(wù)管理應(yīng)用軟件。
在第二種模式中,PaaS解決方案與整個云操作環(huán)境、而不是與某個特定的應(yīng)用服務(wù)緊密聯(lián)系起來。她說:“如果你打算編寫只在AWS、微軟Azure或IBM Bluemix上運行的應(yīng)用程序,選擇它們的PaaS解決方案是合理的選擇。”她表示,比如說,如果某家企業(yè)組織在.NET框架方面有扎實的專長,或者有一大批應(yīng)用程序在使用.NET框架,那么選擇微軟的Azure開發(fā)和部署生態(tài)系統(tǒng)將是自然而然的選擇。
據(jù)Hurwitz聲稱,這個PaaS領(lǐng)域勢必會出現(xiàn)重大變化。她說:“雖然我們?nèi)匀豢吹脚c某個特定平臺綁定的PaaS解決方案,但現(xiàn)在我們更多地看到Pivotal的開源Cloud Foundry受到追捧,作為實施PaaS的一種標準方法。” EMC旗下的VMware部門在2011年推出了Cloud Foundry。兩年后,EMC將那些資產(chǎn)作為Pivotal Software拆分出來。
Dave McCrory是Basho科技公司的首席技術(shù)官,這家公司專門開發(fā)Riak開源數(shù)據(jù)庫。他表示,想選擇合適類型的PaaS來開發(fā)云應(yīng)用程序,關(guān)鍵因素是了解手頭的項目。沒有哪一種類型的PaaS適合所有情形,而這勢必需要開發(fā)人員的工具包中同時有幾個PaaS。
McCrory說:“由于應(yīng)用程序開發(fā)場景不同,所以有眾多不同的PaaS類型。”他贊同Hurwitz的觀點,表示一種就是SaaS式樣,以Force綁定到Salesforce這種方式為代表。他表示,Heroku不一樣,就在于“你上傳想要運行的各個組件,然后將應(yīng)用程序上線。它并不像Force那樣緊密地綁定到Salesforce。”
McCory表示,其他PaaS解決方案允許開發(fā)與基礎(chǔ)設(shè)施更緊密結(jié)合的云應(yīng)用程序,他提到Mesosphere就是個例子。“這是一種PaaS式樣的服務(wù),更接近網(wǎng)絡(luò)物理層。”
最近云計算領(lǐng)域新增的一個角色是AWS Lambda,它自稱是“構(gòu)建和運行云端應(yīng)用程序的一種全新方式。”McCrory表示,雖然它不是典型的PaaS,但基于這個想法:編寫極小的代碼片段,以便將其他小小的代碼模塊連接起來。McCrory說:“你不是構(gòu)建一個龐大的程序;相反,你是構(gòu)建一系列小小的組件。” McCrory表示,與其他PaaS模式一樣,其目的也是加快開發(fā)、簡化維護。
無論最終選擇哪種類型的PaaS來幫助開發(fā)人員加快開發(fā)和部署,McCrory表示,仍要認識到PaaS只是整個開發(fā)環(huán)境里面的一個組件而已,這點很重要。他說:“當前的趨勢就是,擁有從頭到尾的綜合工作流程、實現(xiàn)測試和部署自動化,即從基于云的IDE(可以在其中編寫代碼),到源代碼庫(比如GitHub)。”
McCrory表示,對于開發(fā)人員來說,轉(zhuǎn)移到PaaS模式最終是為了加快開發(fā)應(yīng)用程序和更新應(yīng)用程序(一旦部署到生產(chǎn)環(huán)境中)。“優(yōu)點在于,你不需要升級龐大的整體式應(yīng)用程序,而是只要進行小幅的增量變化。”
系統(tǒng)可能順暢地運行幾個月,結(jié)果卻在軟件變化后出現(xiàn)崩潰,無論是大變化還是小變化。推特已經(jīng)在2016年1月出現(xiàn)停運,幾乎遍及全世界,公司將這六小時的停運歸咎于“內(nèi)部的代碼變化”。后來代碼回滾消除了那個問題。McCrory說:“如果你在更新后遇到了問題,若使用PaaS模式,可以輕松回滾,并檢查導致問題的增量變化。這要比另一種方法:六個月的升級周期好得多,因為那樣可能進行了數(shù)千處變化,你在查找導致問題的代碼時,可能要停運好幾天。”
Hurwitz表示,雖然由于性能和安全方面的問題,PaaS概念沒有迅速流行起來,但現(xiàn)在這個概念普遍得到了接受。她說:“從單槍匹馬的個體開發(fā)人員,到小型部門,再到大企業(yè),PaaS可能是開發(fā)云計算應(yīng)用程序的一種必然選擇。你幾乎可以馬上搭建并運行起來,測試現(xiàn)有代碼,或者用你選擇的一種語言來編寫新代碼。作為一種開發(fā)方法,PaaS已站穩(wěn)了腳跟。”