天天看點

雲計算的三種服務模式的講解

 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。最近興起的公司有AppFog, Mendix 和 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學習難度更低。

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

表1. PaaS和IaaS之間的比較

未來的PK

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

它們之間的關系主要可以從兩個角度進行分析:其一是使用者體驗角度,從這個角度而言,它們之間關系是獨立的,因為它們面對不同類型的使用者。其二是技術角度,從這個角度而言,它們并不是簡單的繼承關系(Saa.....

三種服務模式

根據現在最常用,也是比較權威的NIST(National Institute of Standards and Technology,美國國家标準技術研究院)定義,雲計算主要分為三種服務模式,而且這個三層的分法重要是從使用者體驗的角度出發的:

Software as a Service,軟體即服務,簡稱SaaS,這層的作用是将應用作為服務提供給客戶。

Platform as a Service,平台即服務,簡稱PaaS,這層的作用是将一個開發平台作為服務提供給使用者。

Infrastructure as a Service, 基礎設施即服務,簡稱IaaS,這層的作用是提供虛拟機或者其他資源作為服務提供給使用者。

<注:此圖不是原文配圖>

雲計算的三種服務模式的講解

一、SaaS模式

作用

通過SaaS這種模式,使用者隻要接上網絡,并通過浏覽器,就能直接使用在雲端上運作的應用,而不需要顧慮類似安裝等瑣事,并且免去初期高昂的軟硬體投入。SaaS主要面對的是普通的使用者。

産品

主要産品包括:Salesforce Sales Cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等。

功能

談到SaaS的功能,也可以認為是要實作SaaS服務,供應商需要完成那些功能?主要有四個方面:

随時随地通路:在任何時候或者任何地點,隻要接上網絡,使用者就能通路這個SaaS服務。

支援公開協定:通過支援公開協定(比如HTML4/5),能夠友善使用者使用。

安全保障:SaaS供應商需要提供一定的安全機制,不僅要使存儲在雲端的使用者資料處于絕對安全的境地,而且也要在用戶端實施一定的安全機制(比如HTTPS)來保護使用者。

多住戶(Multi-Tenant)機制:通過多住戶機制,不僅能更經濟地支撐龐大的使用者規模,而且能提供一定的可定制性以滿足使用者的特殊需求。

二、PaaS模式

作用

通過PaaS這種模式,使用者可以在一個包括SDK,文檔和測試環境等在内的開發平台上非常友善地編寫應用,而且不論是在部署,或者在運作的時候,使用者都無需為伺服器,作業系統,網絡和存儲等資源的管理操心,這些繁瑣的工作都由PaaS供應商負責處理,而且PaaS在整合率上面非常驚人,比如一台運作Google App Engine的伺服器能夠支撐成千上萬的應用,也就是說,PaaS是非常經濟的。PaaS主要的使用者是開發人員。

産品

主要産品包括:Google App Engine,force.com,heroku和Windows Azure Platform等。

功能

為了支撐着整個PaaS平台的運作,供應商需要提供那麼功能?主要有四大功能:

友好的開發環境:通過提供SDK和IDE等工具來讓使用者能在本地友善地進行應用的開發和測試。

豐富的服務:PaaS平台會以API的形式将各種各樣的服務提供給上層的應用。

自動的資源排程:也就是可伸縮這個特性,它将不僅能優化系統資源,而且能自動調整資源來幫助運作于其上的應用更好地應對突發流量。

精細的管理和監控:通過PaaS能夠提供應用層的管理和監控,比如,能夠觀察應用運作的情況和具體數值(比如,吞吐量和反映時間)來更好地衡量應用的運作狀态,還有能夠通過精确計量應用使用所消耗的資源來更好地計費。

三、IaaS模式

作用

通過IaaS這種模式,使用者可以從供應商那裡獲得他所需要的虛拟機或者存儲等資源來裝載相關的應用,同時這些基礎設施的繁瑣的管理工作将由IaaS供應商來處理。IaaS能通過它上面對虛拟機支援衆多的應用。IaaS主要的使用者是系統管理者。

産品

主要産品包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。

功能

IaaS供應商需要在那些方面對基礎設施進行管理以給使用者提供資源?或者說IaaS雲有那些功能?在《虛拟化與雲計算》中列出了IaaS的七個基本功能:

資源抽象:使用資源抽象的方法(比如,資源池)能更好地排程和管理實體資源。

資源監控:通過對資源的監控,能夠保證基礎實施高效率的運作。

負載管理:通過負載管理,不僅能使部署在基礎設施上的應用運能更好地應對突發情況,而且還能更好地利用系統資源。

資料管理:對雲計算而言,資料的完整性,可靠性和可管理性是對IaaS的基本要求。

資源部署:也就是将整個資源從建立到使用的流程自動化。

安全管理:IaaS的安全管理的主要目标是保證基礎設施和其提供的資源能被合法地通路和使用。

計費管理:通過細緻的計費管理能使使用者更靈活地使用資源。

接下來,稍微給大家介紹一下雲的三種形式和雲計算好處。

三種模式之間的關系

它們之間的關系主要可以從兩個角度進行分析:其一是使用者體驗角度,從這個角度而言,它們之間關系是獨立的,因為它們面對不同類型的使用者。其二是技術角度,從這個角度而言,它們并不是簡單的繼承關系(SaaS基于PaaS,而PaaS基于IaaS),因為首先SaaS可以是基于PaaS或者直接部署于IaaS之上,其次PaaS可以建構于IaaS之上,也可以直接建構在實體資源之上。

繼續閱讀