1. 程式人生 > >雲端計算的三種服務模式:IaaS,PaaS和SaaS

雲端計算的三種服務模式:IaaS,PaaS和SaaS

原文連結:http://www.cnblogs.com/beanmoon/archive/2012/12/10/2811547.html

 雲服務”現在已經快成了一個家喻戶曉的詞了。如果你不知道PaaS, IaaS 和SaaS的區別,那麼也沒啥,因為很多人確實不知道。
  “雲”其實是網際網路的一個隱喻,“雲端計算”其實就是使用網際網路來接入儲存或者執行在遠端伺服器端的應用,資料,或者服務。
  任何一個使用基於網際網路的方法來計算,儲存和開發的公司,都可以從技術上叫做從事雲的公司。然而,不是所有的雲公司都一樣。不是所有人都是CTO,所以有時候看到雲技術背後的一些詞可能會比較頭疼。

雲也是分層的

  任何一個在網際網路上提供其服務的公司都可以叫做雲端計算公司。其實雲端計算分幾層的,分別是Infrastructure(基礎設施)-as-a-Service,Platform(平臺)-as-a-Service,Software(軟體)-as-a-Service。基礎設施在最下端,平臺在中間,軟體在頂端。別的一些“軟”的層可以在這些層上面新增。

 IaaS: Infrastructure-as-a-Service(基礎設施即服務)

  第一層叫做IaaS,有時候也叫做Hardware-as-a-Service,幾年前如果你想在辦公室或者公司的網站上執行一些企業應用,你需要去買伺服器,或者別的高昂的硬體來控制本地應用,讓你的業務執行起來。
  但是現在有IaaS,你可以將硬體外包到別的地方去。IaaS公司會提供場外伺服器,儲存和網路硬體,你可以租用。節省了維護成本和辦公場地,公司可以在任何時候利用這些硬體來執行其應用。
  一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不過這些公司又都有自己的專長,比如Amazon和微軟給你提供的不只是IaaS,他們還會將其計算能力出租給你來host你的網站。

PaaS: Platform-as-a-Service(平臺即服務)

  第二層就是所謂的PaaS,某些時候也叫做中介軟體。你公司所有的開發都可以在這一層進行,節省了時間和資源。
  PaaS公司在網上提供各種開發和分發應用的解決方案,比如虛擬伺服器和作業系統。這節省了你在硬體上的費用,也讓分散的工作室之間的合作變得更加容易。網頁應用管理,應用設計,應用虛擬主機,儲存,安全以及應用開發協作工具等。
  一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。最近興起的公司有AppFogMendix 和 

Standing Cloud

SaaS: Software-as-a-Service(軟體即服務)

  第三層也就是所謂SaaS。這一層是和你的生活每天接觸的一層,大多是通過網頁瀏覽器來接入。任何一個遠端伺服器上的應用都可以通過網路來執行,就是SaaS了。
  你消費的服務完全是從網頁如Netflix, MOG, Google Apps, Box.net, Dropbox或者蘋果的iCloud那裡進入這些分類。儘管這些網頁服務是用作商務和娛樂或者兩者都有,但這也算是雲技術的一部分。
  一些用作商務的SaaS應用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。

Iaas和Paas之間的比較

    PaaS的主要作用是將一個開發和執行平臺作為服務提供給使用者,而IaaS的主要作用是提供虛擬機器或者其他資源作為服務提供給使用者。接下來,將在七個方面對PaaS和IaaS進行比較:

    1) 開發環境:PaaS基本都會給開發者提供一整套包括IDE在內的開發和測試環境,而IaaS方面使用者主要還是沿用之前比較熟悉那套開發環境,但是因為之前那套開發環境在和雲的整合方面比較欠缺,所以使用起來不是很方便。
    2) 支援的應用:因為IaaS主要是提供虛擬機器,而且普通的虛擬機器能支援多種作業系統,所以IaaS支援的應用的範圍是非常廣泛的。但如果要讓一個應用能跑在某個PaaS平臺不是一件輕鬆的事,因為不僅需要確保這個應用是基於這個平臺所支援的語言,而且也要確保這個應用只能呼叫這個平臺所支援的API,如果這個應用呼叫了平臺所不支援的API,那麼就需要對這個應用進行修改。
 3) 開放標準:雖然很多IaaS平臺都存在一定的私有功能,但是由於OVF等協議的存在,使得IaaS在跨平臺和避免被供應商鎖定這兩面是穩步前進的。而PaaS平臺的情況則不容樂觀,因為不論是Google的App Engine,還是Salesforce的Force.com都存在一定的私有API。
    4) 可伸縮性:PaaS平臺會自動調整資源來幫助運行於其上的應用更好地應對突發流量。而IaaS平臺則需要開發人員手動對資源進行調整才能應對。
    5) 整合率和經濟性: PaaS平臺整合率是非常高,比如PaaS的代表Google App Engine能在一臺伺服器上承載成千上萬的應用,而普通的IaaS平臺的整合率最多也不會超過100,而且普遍在10左右,使得IaaS的經濟性不如PaaS。
    6) 計費和監管:因為PaaS平臺在計費和監管這兩方面不僅達到了IaaS平臺所能企及的作業系統層面,比如,CPU和記憶體的使用量等,而且還能做到應用層面,比如,應用的反應時間(Response Time)或者應用所消耗的事務多少等,這將提高計費和管理的精確性。
    7) 學習難度:因為在IaaS上面開發和管理應用和現有的方式比較接近,而PaaS上面開發則有可能需要學一門新的語言或者新的框架,所以IaaS學習難度更低。

PaaSIaaS
開發環境完善普通
支援的應用有限
通用性欠缺稍好
可伸縮性自動伸縮手動伸縮
整合率和經濟性高整合率,更經濟低整合率
計費和監管精細簡單
學習難度略難

表1. PaaS和IaaS之間的比較

未來的PK

    在當今雲端計算環境當中,IaaS是非常主流的,無論是Amazon EC2還是Linode或者Joyent等,都佔有一席之地,但是隨著Google的App Engine,Salesforce的Force.com還是微軟的Windows Azure等PaaS平臺的推出,使得PaaS也開始嶄露頭角。談到這兩者的未來,特別是這兩者之間的競爭關係,我個人認為,短期而言,因為IaaS模式在支援的應用和學習難度這兩方面的優勢,使得IaaS將會在短期之內會成為開發者的首選,但是從長期而言,因為PaaS模式的高整合率所帶來經濟型使得如果PaaS能解決諸如通用性和支援的應用等方面的挑戰,它將會替代IaaS成為開發者的“新寵”。