云服務(wù)”現(xiàn)在已經(jīng)快成了一個(gè)家喻戶曉的詞了。如果你不知道PaaS, IaaS 和SaaS的區(qū)別,那么也沒啥,因?yàn)楹芏嗳舜_實(shí)不知道。
“云”其實(shí)是互聯(lián)網(wǎng)的一個(gè)隱喻,“云計(jì)算”其實(shí)就是使用互聯(lián)網(wǎng)來接入存儲(chǔ)或者運(yùn)行在遠(yuǎn)程服務(wù)器端的應(yīng)用,數(shù)據(jù),或者服務(wù)。
任何一個(gè)使用基于互聯(lián)網(wǎng)的方法來計(jì)算,存儲(chǔ)和開發(fā)的公司,都可以從技術(shù)上叫做從事云的公司。然而,不是所有的云公司都一樣。不是所有人都是CTO,所以有時(shí)候看到云技術(shù)背后的一些詞可能會(huì)比較頭疼。
云也是分層的
任何一個(gè)在互聯(lián)網(wǎng)上提供其服務(wù)的公司都可以叫做云計(jì)算公司。其實(shí)云計(jì)算分幾層的,分別是Infrastructure(基礎(chǔ)設(shè)施)-as-a-Service,Platform(平臺(tái))-as-a-Service,Software(軟件)-as-a-Service?;A(chǔ)設(shè)施在最下端,平臺(tái)在中間,軟件在頂端。別的一些“軟”的層可以在這些層上面添加。
IaaS: Infrastructure-as-a-Service(基礎(chǔ)設(shè)施即服務(wù))
第一層叫做IaaS,有時(shí)候也叫做Hardware-as-a-Service,幾年前如果你想在辦公室或者公司的網(wǎng)站上運(yùn)行一些企業(yè)應(yīng)用,你需要去買服務(wù)器,或者別的高昂的硬件來控制本地應(yīng)用,讓你的業(yè)務(wù)運(yùn)行起來。
但是現(xiàn)在有IaaS,你可以將硬件外包到別的地方去。IaaS公司會(huì)提供場(chǎng)外服務(wù)器,存儲(chǔ)和網(wǎng)絡(luò)硬件,你可以租用。節(jié)省了維護(hù)成本和辦公場(chǎng)地,公司可以在任何時(shí)候利用這些硬件來運(yùn)行其應(yīng)用。
一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不過這些公司又都有自己的專長(zhǎng),比如Amazon和微軟給你提供的不只是IaaS,他們還會(huì)將其計(jì)算能力出租給你來host你的網(wǎng)站。
PaaS: Platform-as-a-Service(平臺(tái)即服務(wù))
第二層就是所謂的PaaS,某些時(shí)候也叫做中間件。你公司所有的開發(fā)都可以在這一層進(jìn)行,節(jié)省了時(shí)間和資源。
PaaS公司在網(wǎng)上提供各種開發(fā)和分發(fā)應(yīng)用的解決方案,比如虛擬服務(wù)器和操作系統(tǒng)。這節(jié)省了你在硬件上的費(fèi)用,也讓分散的工作室之間的合作變得更加容易。網(wǎng)頁應(yīng)用管理,應(yīng)用設(shè)計(jì),應(yīng)用虛擬主機(jī),存儲(chǔ),安全以及應(yīng)用開發(fā)協(xié)作工具等。
一些大的PaaS提供者有Google App Engine,Microsoft Azure,F(xiàn)orce.com,Heroku,Engine Yard。最近興起的公司有AppFog, Mendix 和 Standing Cloud
SaaS: Software-as-a-Service(軟件即服務(wù))
第三層也就是所謂SaaS。這一層是和你的生活每天接觸的一層,大多是通過網(wǎng)頁瀏覽器來接入。任何一個(gè)遠(yuǎn)程服務(wù)器上的應(yīng)用都可以通過網(wǎng)絡(luò)來運(yùn)行,就是SaaS了。
你消費(fèi)的服務(wù)完全是從網(wǎng)頁如Netflix, MOG, Google Apps, Box.net, Dropbox或者蘋果的iCloud那里進(jìn)入這些分類。盡管這些網(wǎng)頁服務(wù)是用作商務(wù)和娛樂或者兩者都有,但這也算是云技術(shù)的一部分。
一些用作商務(wù)的SaaS應(yīng)用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。
Iaas和Paas之間的比較
PaaS的主要作用是將一個(gè)開發(fā)和運(yùn)行平臺(tái)作為服務(wù)提供給用戶,而IaaS的主要作用是提供虛擬機(jī)或者其他資源作為服務(wù)提供給用戶。接下來,將在七個(gè)方面對(duì)PaaS和IaaS進(jìn)行比較:
1) 開發(fā)環(huán)境:PaaS基本都會(huì)給開發(fā)者提供一整套包括IDE在內(nèi)的開發(fā)和測(cè)試環(huán)境,而IaaS方面用戶主要還是沿用之前比較熟悉那套開發(fā)環(huán)境,但是因?yàn)橹澳翘组_發(fā)環(huán)境在和云的整合方面比較欠缺,所以使用起來不是很方便。
2) 支持的應(yīng)用:因?yàn)镮aaS主要是提供虛擬機(jī),而且普通的虛擬機(jī)能支持多種操作系統(tǒng),所以IaaS支持的應(yīng)用的范圍是非常廣泛的。但如果要讓一個(gè)應(yīng)用能跑在某個(gè)PaaS平臺(tái)不是一件輕松的事,因?yàn)椴粌H需要確保這個(gè)應(yīng)用是基于這個(gè)平臺(tái)所支持的語言,而且也要確保這個(gè)應(yīng)用只能調(diào)用這個(gè)平臺(tái)所支持的API,如果這個(gè)應(yīng)用調(diào)用了平臺(tái)所不支持的API,那么就需要對(duì)這個(gè)應(yīng)用進(jìn)行修改。
3) 開放標(biāo)準(zhǔn):雖然很多IaaS平臺(tái)都存在一定的私有功能,但是由于OVF等協(xié)議的存在,使得IaaS在跨平臺(tái)和避免被供應(yīng)商鎖定這兩面是穩(wěn)步前進(jìn)的。而PaaS平臺(tái)的情況則不容樂觀,因?yàn)椴徽撌荊oogle的App Engine,還是Salesforce的Force.com都存在一定的私有API。
4) 可伸縮性:PaaS平臺(tái)會(huì)自動(dòng)調(diào)整資源來幫助運(yùn)行于其上的應(yīng)用更好地應(yīng)對(duì)突發(fā)流量。而IaaS平臺(tái)則需要開發(fā)人員手動(dòng)對(duì)資源進(jìn)行調(diào)整才能應(yīng)對(duì)。
5) 整合率和經(jīng)濟(jì)性: PaaS平臺(tái)整合率是非常高,比如PaaS的代表Google App Engine能在一臺(tái)服務(wù)器上承載成千上萬的應(yīng)用,而普通的IaaS平臺(tái)的整合率最多也不會(huì)超過100,而且普遍在10左右,使得IaaS的經(jīng)濟(jì)性不如PaaS。
6) 計(jì)費(fèi)和監(jiān)管:因?yàn)镻aaS平臺(tái)在計(jì)費(fèi)和監(jiān)管這兩方面不僅達(dá)到了IaaS平臺(tái)所能企及的操作系統(tǒng)層面,比如,CPU和內(nèi)存的使用量等,而且還能做到應(yīng)用層面,比如,應(yīng)用的反應(yīng)時(shí)間(Response Time)或者應(yīng)用所消耗的事務(wù)多少等,這將提高計(jì)費(fèi)和管理的精確性。
7) 學(xué)習(xí)難度:因?yàn)樵贗aaS上面開發(fā)和管理應(yīng)用和現(xiàn)有的方式比較接近,而PaaS上面開發(fā)則有可能需要學(xué)一門新的語言或者新的框架,所以IaaS學(xué)習(xí)難度更低。
未來的PK
在當(dāng)今云計(jì)算環(huán)境當(dāng)中,IaaS是非常主流的,無論是Amazon EC2還是Linode或者Joyent等,都占有一席之地,但是隨著Google的App Engine,Salesforce的Force.com還是微軟的Windows Azure等PaaS平臺(tái)的推出,使得PaaS也開始嶄露頭角。談到這兩者的未來,特別是這兩者之間的競(jìng)爭(zhēng)關(guān)系,我個(gè)人認(rèn)為,短期而言,因?yàn)镮aaS模式在支持的應(yīng)用和學(xué)習(xí)難度這兩方面的優(yōu)勢(shì),使得IaaS將會(huì)在短期之內(nèi)會(huì)成為開發(fā)者的首選,但是從長(zhǎng)期而言,因?yàn)镻aaS模式的高整合率所帶來經(jīng)濟(jì)型使得如果PaaS能解決諸如通用性和支持的應(yīng)用等方面的挑戰(zhàn),它將會(huì)替代IaaS成為開發(fā)者的“新寵”。