誰是開發(fā)者的夢中情人?PaaS與IaaS之爭
前言
云計算主要有SaaS,PaaS和IaaS這三種服務(wù)模式。對普通用戶而言,他們主要面對的是SaaS這種服務(wù)模式,但是對普通的開發(fā)者而言,云計算對他們而言,卻有兩種服務(wù)模式可供選擇,PaaS和IaaS,而且這兩種模式有很多的不同,而且它們之間還存在一定程度的競爭,接下來將首先對這兩種模式進(jìn)行比較,之后將預(yù)測一下它們的未來,也就是那種模式將會更受到開發(fā)者的青睞。
比較
大家應(yīng)該知道,PaaS的主要作用是將一個開發(fā)和運行平臺作為服務(wù)提供給用戶,而IaaS的主要作用是提供虛擬機(jī)或者其他資源作為服務(wù)提供給用戶。下面將在七個方面對PaaS和IaaS兩者進(jìn)行比較:
開發(fā)環(huán)境
PaaS基本都會給開發(fā)者提供一整套包括IDE在內(nèi)的開發(fā)和測試環(huán)境,而在IaaS方面用戶主要還是沿用之前那套開發(fā)環(huán)境,雖然比較熟悉,但是因為之前那套開發(fā)環(huán)境在與云的整合方面比較欠缺,所以有時候會很不方便,比如通過PaaS提供的工具部署一個應(yīng)用到云上,可能只需幾下鼠標(biāo)點擊和十多秒即可完成,而在IaaS平臺上部署應(yīng)用,相對而言比較復(fù)雜,特別是在剛開始使用的時候。
支持的應(yīng)用
因為IaaS主要是提供虛擬機(jī),而且普通的虛擬機(jī)能支持多種基于X86架構(gòu)的操作系統(tǒng),包括Linux、OpenBSD和Windows等,所以IaaS支持的應(yīng)用的范圍是非常廣泛的。但如果要讓一個應(yīng)用能跑在某個PaaS平臺不是一件輕松的事,因為不僅需要確保這個應(yīng)用是基于這個平臺所支持的語言,而且也要確保這個應(yīng)用只能調(diào)用這個平臺所支持的API,如果這個應(yīng)用調(diào)用了平臺所不支持的API,那么就需要在部署之前,對這個應(yīng)用進(jìn)行修改。
開放標(biāo)準(zhǔn)
雖然很多IaaS平臺都存在一定的私有功能,但是由于OVF等協(xié)議的存在,使得IaaS在跨平臺和避免被供應(yīng)商鎖定這兩面是穩(wěn)步前進(jìn)的。而PaaS平臺的情況則不容樂觀,因為不論是Google的App Engine,還是Salesforce的Force.com都存在一定的私有API。
可伸縮性
PaaS平臺會自動調(diào)整資源來幫助運行于其上的應(yīng)用更好地應(yīng)對突發(fā)流量。而IaaS平臺則常需要開發(fā)人員手動對資源進(jìn)行調(diào)整才能應(yīng)對。
整合率和經(jīng)濟(jì)性
PaaS平臺整合率是非常高,比如PaaS的代表Google App Engine能在一臺服務(wù)器上承載成千上萬的應(yīng)用,而普通的IaaS平臺的整合率最多也不會超過100,而且普遍在10左右,使得IaaS的經(jīng)濟(jì)性不如PaaS。
計費和監(jiān)管
因為PaaS平臺在計費和監(jiān)管這兩方面不僅達(dá)到了IaaS平臺所能企及的操作系統(tǒng)層面,比如,CPU和內(nèi)存的使用量等,而且還能做到應(yīng)用層面,比如,應(yīng)用的反應(yīng)時間(Response Time)或者應(yīng)用調(diào)用某個服務(wù)的次數(shù)等,這將提高計費和管理的精確性。
學(xué)習(xí)難度
對于那些熟悉類UNIX系統(tǒng)的程序員而言,能很快學(xué)習(xí)在IaaS的開發(fā)和管理應(yīng)用的方式,雖然現(xiàn)在IaaS產(chǎn)品普遍對Windows開發(fā)環(huán)境沒有很好的支持,而如果要學(xué)會PaaS上面開發(fā)則有可能需要學(xué)一門新的語言或者新的框架,所以IaaS學(xué)習(xí)難度更低。
下面將通過一張表來總結(jié)一下上面的比較:
▲表1. PaaS和IaaS之間的比較
未來的競爭
在當(dāng)今云計算環(huán)境當(dāng)中,IaaS是非常主流的,無論是Amazon EC2還是Linode或者Joyent等,都占有一席之地,但是隨著Google的App Engine,Salesforce的Force.com還是微軟的Windows Azure等PaaS平臺的推出,使得PaaS也開始嶄露頭角。談到這兩者的未來,特別是這兩者之間的競爭關(guān)系,我個人認(rèn)為,短期而言,因為IaaS模式在支持的應(yīng)用和學(xué)習(xí)難度這兩方面的優(yōu)勢,使得IaaS將會在短期之內(nèi)會成為開發(fā)者的***,但是從長期而言,如果PaaS能解決諸如通用性和支持的應(yīng)用等方面的挑戰(zhàn),PaaS模式會因為其高整合率所帶來經(jīng)濟(jì)性從而替代IaaS成為開發(fā)者的“新寵”。
作者簡介
吳朱華,之前在IBM中國研究院參與過多個云計算產(chǎn)品的開發(fā)工作,現(xiàn)在專注于YunTable和YunEngine的研發(fā)工作,并即將發(fā)表《剖析云計算》一書,敬請期待。
【編輯推薦】