云計算的三種服務(wù)模式:IaaS篮绿,PaaS和SaaS
云服務(wù)”現(xiàn)在已經(jīng)快成了一個家喻戶曉的詞了。如果你不知道PaaS, IaaS 和SaaS的區(qū)別吕漂,那么也沒啥亲配,因為很多人確實不知道。
“云”其實是互聯(lián)網(wǎng)的一個隱喻惶凝,“云計算”其實就是使用互聯(lián)網(wǎng)來接入存儲或者運行在遠程服務(wù)器端的應(yīng)用吼虎,數(shù)據(jù),或者服務(wù)苍鲜。
任何一個使用基于互聯(lián)網(wǎng)的方法來計算思灰,存儲和開發(fā)的公司,都可以從技術(shù)上叫做從事云的公司混滔。然而洒疚,不是所有的云公司都一樣。不是所有人都是CTO坯屿,所以有時候看到云技術(shù)背后的一些詞可能會比較頭疼油湖。
云也是分層的
任何一個在互聯(lián)網(wǎng)上提供其服務(wù)的公司都可以叫做云計算公司。其實云計算分幾層的领跛,分別是Infrastructure(基礎(chǔ)設(shè)施)-as-a-Service乏德,Platform(平臺)-as-a-Service,Software(軟件)-as-a-Service隔节《炀基礎(chǔ)設(shè)施在最下端寂呛,平臺在中間,軟件在頂端瘾晃。別的一些“軟”的層可以在這些層上面添加贷痪。
IaaS: Infrastructure-as-a-Service(基礎(chǔ)設(shè)施即服務(wù))
第一層叫做IaaS,有時候也叫做Hardware-as-a-Service蹦误,幾年前如果你想在辦公室或者公司的網(wǎng)站上運行一些企業(yè)應(yīng)用劫拢,你需要去買服務(wù)器,或者別的高昂的硬件來控制本地應(yīng)用强胰,讓你的業(yè)務(wù)運行起來舱沧。
但是現(xiàn)在有IaaS,你可以將硬件外包到別的地方去偶洋。IaaS公司會提供場外服務(wù)器熟吏,存儲和網(wǎng)絡(luò)硬件,你可以租用玄窝。節(jié)省了維護成本和辦公場地牵寺,公司可以在任何時候利用這些硬件來運行其應(yīng)用。
一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不過這些公司又都有自己的專長恩脂,比如Amazon和微軟給你提供的不只是IaaS帽氓,他們還會將其計算能力出租給你來host你的網(wǎng)站。
PaaS: Platform-as-a-Service(平臺即服務(wù))
第二層就是所謂的PaaS俩块,某些時候也叫做中間件黎休。你公司所有的開發(fā)都可以在這一層進行,節(jié)省了時間和資源玉凯。
PaaS公司在網(wǎng)上提供各種開發(fā)和分發(fā)應(yīng)用的解決方案势腮,比如虛擬服務(wù)器和操作系統(tǒng)。這節(jié)省了你在硬件上的費用壮啊,也讓分散的工作室之間的合作變得更加容易嫉鲸。網(wǎng)頁應(yīng)用管理,應(yīng)用設(shè)計歹啼,應(yīng)用虛擬主機玄渗,存儲,安全以及應(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)頁瀏覽器來接入屡限。任何一個遠程服務(wù)器上的應(yīng)用都可以通過網(wǎng)絡(luò)來運行品嚣,就是SaaS了。
你消費的服務(wù)完全是從網(wǎng)頁如Netflix, MOG, Google Apps, Box.NET, Dropbox或者蘋果的iCloud那里進入這些分類钧大。盡管這些網(wǎng)頁服務(wù)是用作商務(wù)和娛樂或者兩者都有翰撑,但這也算是云技術(shù)的一部分。
一些用作商務(wù)的SaaS應(yīng)用包括Citrix的GoToMeeting啊央,Cisco的WebEx眶诈,Salesforce的CRM,ADP瓜饥,Workday和SuccessFactors逝撬。
Iaas和Paas之間的比較
PaaS的主要作用是將一個開發(fā)和運行平臺作為服務(wù)提供給用戶,而IaaS的主要作用是提供虛擬機或者其他資源作為服務(wù)提供給用戶乓土。接下來宪潮,將在七個方面對PaaS和IaaS進行比較:
1) 開發(fā)環(huán)境:PaaS基本都會給開發(fā)者提供一整套包括IDE在內(nèi)的開發(fā)和測試環(huán)境,而IaaS方面用戶主要還是沿用之前比較熟悉那套開發(fā)環(huán)境帐我,但是因為之前那套開發(fā)環(huán)境在和云的整合方面比較欠缺坎炼,所以使用起來不是很方便。
2) 支持的應(yīng)用:因為IaaS主要是提供虛擬機拦键,而且普通的虛擬機能支持多種操作系統(tǒng),所以IaaS支持的應(yīng)用的范圍是非常廣泛的檩淋。但如果要讓一個應(yīng)用能跑在某個PaaS平臺不是一件輕松的事芬为,因為不僅需要確保這個應(yīng)用是基于這個平臺所支持的語言,而且也要確保這個應(yīng)用只能調(diào)用這個平臺所支持的API蟀悦,如果這個應(yīng)用調(diào)用了平臺所不支持的API媚朦,那么就需要對這個應(yīng)用進行修改。
3) 開放標準:雖然很多IaaS平臺都存在一定的私有功能日戈,但是由于OVF等協(xié)議的存在询张,使得IaaS在跨平臺和避免被供應(yīng)商鎖定這兩面是穩(wěn)步前進的。而PaaS平臺的情況則不容樂觀浙炼,因為不論是Google的App Engine份氧,還是Salesforce的Force.com都存在一定的私有API。
4) 可伸縮性:PaaS平臺會自動調(diào)整資源來幫助運行于其上的應(yīng)用更好地應(yīng)對突發(fā)流量弯屈。而IaaS平臺則需要開發(fā)人員手動對資源進行調(diào)整才能應(yīng)對蜗帜。
5) 整合率和經(jīng)濟性: PaaS平臺整合率是非常高,比如PaaS的代表Google App Engine能在一臺服務(wù)器上承載成千上萬的應(yīng)用资厉,而普通的IaaS平臺的整合率最多也不會超過100厅缺,而且普遍在10左右,使得IaaS的經(jīng)濟性不如PaaS。
6) 計費和監(jiān)管:因為PaaS平臺在計費和監(jiān)管這兩方面不僅達到了IaaS平臺所能企及的操作系統(tǒng)層面湘捎,比如诀豁,CPU和內(nèi)存的使用量等,而且還能做到應(yīng)用層面窥妇,比如且叁,應(yīng)用的反應(yīng)時間(Response Time)或者應(yīng)用所消耗的事務(wù)多少等,這將提高計費和管理的精確性秩伞。
7) 學(xué)習(xí)難度:因為在IaaS上面開發(fā)和管理應(yīng)用和現(xiàn)有的方式比較接近逞带,而PaaS上面開發(fā)則有可能需要學(xué)一門新的語言或者新的框架,所以IaaS學(xué)習(xí)難度更低纱新。
PaaS IaaS
開發(fā)環(huán)境 完善 普通
支持的應(yīng)用 有限 廣
通用性 欠缺 稍好
可伸縮性 自動伸縮 手動伸縮
整合率和經(jīng)濟性 高整合率展氓,更經(jīng)濟 低整合率
計費和監(jiān)管 精細 簡單
學(xué)習(xí)難度 略難 低
表1. PaaS和IaaS之間的比較
未來的PK
在當今云計算環(huán)境當中,IaaS是非常主流的脸爱,無論是Amazon EC2還是Linode或者Joyent等遇汞,都占有一席之地,但是隨著Google的App Engine簿废,Salesforce的Force.com還是微軟的Windows Azure等PaaS平臺的推出空入,使得PaaS也開始嶄露頭角。談到這兩者的未來族檬,特別是這兩者之間的競爭關(guān)系歪赢,我個人認為,短期而言单料,因為IaaS模式在支持的應(yīng)用和學(xué)習(xí)難度這兩方面的優(yōu)勢埋凯,使得IaaS將會在短期之內(nèi)會成為開發(fā)者的首選,但是從長期而言扫尖,因為PaaS模式的高整合率所帶來經(jīng)濟型使得如果PaaS能解決諸如通用性和支持的應(yīng)用等方面的挑戰(zhàn)白对,它將會替代IaaS成為開發(fā)者的“新寵”。
它們之間的關(guān)系主要可以從兩個角度進行分析:其一是用戶體驗角度换怖,從這個角度而言甩恼,它們之間關(guān)系是獨立的,因為它們面對不同類型的用戶沉颂。其二是技術(shù)角度条摸,從這個角度而言,它們并不是簡單的繼承關(guān)系(Saa.....
三種服務(wù)模式
根據(jù)現(xiàn)在最常用兆览,也是比較權(quán)威的NIST(National Institute of Standards and Technology屈溉,美國國家標準技術(shù)研究院)定義,云計算主要分為三種服務(wù)模式抬探,而且這個三層的分法重要是從用戶體驗的角度出發(fā)的:
Software as a Service子巾,軟件即服務(wù)帆赢,簡稱SaaS,這層的作用是將應(yīng)用作為服務(wù)提供給客戶线梗。
Platform as a Service椰于,平臺即服務(wù),簡稱PaaS仪搔,這層的作用是將一個開發(fā)平臺作為服務(wù)提供給用戶瘾婿。
Infrastructure as a Service, 基礎(chǔ)設(shè)施即服務(wù)烤咧,簡稱IaaS偏陪,這層的作用是提供虛擬機或者其他資源作為服務(wù)提供給用戶。
<注:此圖不是原文配圖>
iaaspaassaas
一煮嫌、SaaS模式
作用
通過SaaS這種模式笛谦,用戶只要接上網(wǎng)絡(luò),并通過瀏覽器昌阿,就能直接使用在云端上運行的應(yīng)用饥脑,而不需要顧慮類似安裝等瑣事,并且免去初期高昂的軟硬件投入懦冰。SaaS主要面對的是普通的用戶灶轰。
產(chǎn)品
主要產(chǎn)品包括:Salesforce Sales Cloud,Google Apps刷钢,Zimbra笋颤,Zoho和IBM Lotus Live等。
功能
談到SaaS的功能闯捎,也可以認為是要實現(xiàn)SaaS服務(wù)椰弊,供應(yīng)商需要完成那些功能?主要有四個方面:
隨時隨地訪問:在任何時候或者任何地點,只要接上網(wǎng)絡(luò)瓤鼻,用戶就能訪問這個SaaS服務(wù)。
支持公開協(xié)議:通過支持公開協(xié)議(比如HTML4/5)贤重,能夠方便用戶使用茬祷。
安全保障:SaaS供應(yīng)商需要提供一定的安全機制,不僅要使存儲在云端的用戶數(shù)據(jù)處于絕對安全的境地并蝗,而且也要在客戶端實施一定的安全機制(比如HTTPS)來保護用戶祭犯。
多住戶(Multi-Tenant)機制:通過多住戶機制,不僅能更經(jīng)濟地支撐龐大的用戶規(guī)模滚停,而且能提供一定的可定制性以滿足用戶的特殊需求沃粗。
二、PaaS模式
作用
通過PaaS這種模式键畴,用戶可以在一個包括SDK最盅,文檔和測試環(huán)境等在內(nèi)的開發(fā)平臺上非常方便地編寫應(yīng)用突雪,而且不論是在部署,或者在運行的時候涡贱,用戶都無需為服務(wù)器咏删,操作系統(tǒng),網(wǎng)絡(luò)和存儲等資源的管理操心问词,這些繁瑣的工作都由PaaS供應(yīng)商負責處理督函,而且PaaS在整合率上面非常驚人,比如一臺運行Google App Engine的服務(wù)器能夠支撐成千上萬的應(yīng)用激挪,也就是說辰狡,PaaS是非常經(jīng)濟的。PaaS主要的用戶是開發(fā)人員垄分。
產(chǎn)品
主要產(chǎn)品包括:Google App Engine宛篇,force.com,heroku和Windows Azure Platform等锋喜。
功能
為了支撐著整個PaaS平臺的運行些己,供應(yīng)商需要提供那么功能?主要有四大功能:
友好的開發(fā)環(huán)境:通過提供SDK和IDE等工具來讓用戶能在本地方便地進行應(yīng)用的開發(fā)和測試。
豐富的服務(wù):PaaS平臺會以API的形式將各種各樣的服務(wù)提供給上層的應(yīng)用嘿般。
自動的資源調(diào)度:也就是可伸縮這個特性段标,它將不僅能優(yōu)化系統(tǒng)資源,而且能自動調(diào)整資源來幫助運行于其上的應(yīng)用更好地應(yīng)對突發(fā)流量炉奴。
精細的管理和監(jiān)控:通過PaaS能夠提供應(yīng)用層的管理和監(jiān)控逼庞,比如,能夠觀察應(yīng)用運行的情況和具體數(shù)值(比如瞻赶,吞吐量和反映時間)來更好地衡量應(yīng)用的運行狀態(tài)赛糟,還有能夠通過精確計量應(yīng)用使用所消耗的資源來更好地計費。
三砸逊、IaaS模式
作用
通過IaaS這種模式璧南,用戶可以從供應(yīng)商那里獲得他所需要的虛擬機或者存儲等資源來裝載相關(guān)的應(yīng)用,同時這些基礎(chǔ)設(shè)施的繁瑣的管理工作將由IaaS供應(yīng)商來處理师逸。IaaS能通過它上面對虛擬機支持眾多的應(yīng)用司倚。IaaS主要的用戶是系統(tǒng)管理員。
產(chǎn)品
主要產(chǎn)品包括:Amazon EC2篓像,Linode动知,Joyent,Rackspace员辩,IBM Blue Cloud和Cisco UCS等盒粮。
功能
IaaS供應(yīng)商需要在那些方面對基礎(chǔ)設(shè)施進行管理以給用戶提供資源?或者說IaaS云有那些功能?在《虛擬化與云計算》中列出了IaaS的七個基本功能:
資源抽象:使用資源抽象的方法(比如,資源池)能更好地調(diào)度和管理物理資源奠滑。
資源監(jiān)控:通過對資源的監(jiān)控丹皱,能夠保證基礎(chǔ)實施高效率的運行妒穴。
負載管理:通過負載管理,不僅能使部署在基礎(chǔ)設(shè)施上的應(yīng)用運能更好地應(yīng)對突發(fā)情況种呐,而且還能更好地利用系統(tǒng)資源宰翅。
數(shù)據(jù)管理:對云計算而言,數(shù)據(jù)的完整性爽室,可靠性和可管理性是對IaaS的基本要求汁讼。
資源部署:也就是將整個資源從創(chuàng)建到使用的流程自動化。
安全管理:IaaS的安全管理的主要目標是保證基礎(chǔ)設(shè)施和其提供的資源能被合法地訪問和使用阔墩。
計費管理:通過細致的計費管理能使用戶更靈活地使用資源嘿架。
接下來,稍微給大家介紹一下云的三種形式和云計算好處啸箫。
三種模式之間的關(guān)系
它們之間的關(guān)系主要可以從兩個角度進行分析:其一是用戶體驗角度耸彪,從這個角度而言,它們之間關(guān)系是獨立的忘苛,因為它們面對不同類型的用戶蝉娜。其二是技術(shù)角度,從這個角度而言扎唾,它們并不是簡單的繼承關(guān)系(SaaS基于PaaS召川,而PaaS基于IaaS),因為首先SaaS可以是基于PaaS或者直接部署于IaaS之上胸遇,其次PaaS可以構(gòu)建于IaaS之上荧呐,也可以直接構(gòu)建在物理資源之上。