天天看點

IaaS、PaaS和SaaS的差別雲也是分層的

IaaS、PaaS和SaaS到底是什麼,本文就用最通俗的語言來說透,這些高大上的概念到底是什麼?

“雲服務”現在已經快成了一個家喻戶曉的詞了。如果你不知道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。最近興起的公司有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。

一、定義層面的差別

雲計算就是一種按照需求通過Internet擷取計算資源的形态。這些計算資源被包裝成為服務,提供給使用者。而提供這些服務的主體,我們稱之為雲服務供應商(Cloud Service Provider)。按照NIST (National Institute of Standards and Technology,美國國家标準和技術研究院)的定義,雲服務最主要的有三類,就是題主提問的IaaS、PaaS、SaaS。

IaaS、PaaS和SaaS的差別雲也是分層的
  • IaaS(Infrastructure as a service – 基礎設施即服務):使用者可以在雲服務提供商提供的基礎設施上部署和運作任何軟體,包括作業系統和應用軟體。使用者沒有權限管理和通路底層的基礎設施,如伺服器、交換機、硬碟等,但是有權管理作業系統、存儲内容,可以安裝管理應用程式,甚至是有權管理網絡元件。簡單的說使用者使用IaaS,有權管理作業系統之上的一切功能。我們常見的IaaS服務有虛拟機、虛拟網絡、以及存儲。
  • PaaS(Platform as a service – 平台即服務):PaaS給使用者提供的能力是使用由雲服務提供商支援的程式設計語言、庫、服務以及開發工具來建立、開發應用程式并部署在相關的基礎設施上。使用者無需管理底層的基礎設施,包括網絡、伺服器,作業系統或者存儲。他們隻能控制部署在基礎設施中作業系統上的應用程式,配置應用程式所托管的環境的可配置參數。常見的PaaS服務有資料庫服務、web應用以及容器服務。成熟的PaaS服務會簡化開發人員,提供完備的PC端和移動端軟體開發套件(SDK),擁有豐富的開發環境(Inteli、Eclipse、VS等),完全可托管的資料庫服務,可配置式的應用程式建構,支援多語言的開發,面向應用市場。
  • SaaS(Software as a Service – 軟體即服務):SaaS給使用者提供的能力是使用在雲基礎架構上運作的雲服務提供商的應用程式。可以通過輕量的用戶端接口(諸如web浏覽器(例如,基于web的電子郵件))或程式接口從各種用戶端裝置通路應用程式。 使用者無需管理或控制底層雲基礎架構,包括網絡,伺服器,作業系統,存儲甚至單獨的應用程式功能,可能的例外是有限的使用者特定應用程式配置設定。類似的服務有:各類的網盤(Dropbox、百度網盤等),JIRA,GitLab等服務。而這些應用的提供者不僅僅是雲服務提供商,還有衆多的第三方提供商(ISV: independent software provider)。

這裡借用汽車的例子對IaaS、PaaS、SaaS的解釋進一步闡述三者的差別。假設你需要出去外出使用交通工具,我們有四種的方案:

On-premise方案:

自己開車,需要維護汽車,是其安全工作。同時需要為車上保險,提供燃料。(伺服器 + 作業系統/資料庫 + 應用軟體)

IaaS:

從租車公司租一輛車,汽車的維修、安檢都由租車公司承擔。你隻需要提供燃料(需要提供作業系統+應用軟體)

PaaS:

除了基礎設施(汽車),還為你提供司機。類似計程車。隻需要提供目的地,汽車的行駛和運作都有司機決定。(隻需要提供應用軟體)。

SaaS:

類似于做軌道交通, 一切都是由别人控制。隻有較少的定制化功能。

目前主流的IaaS、PaaS和SaaS産品如下圖所示:

IaaS、PaaS和SaaS的差別雲也是分層的

除此之外,雲計算目前主流的部署模式分為三類:

  • 私有雲(Private Cloud / On Premise): 私有雲是專為單個組織營運的雲基礎架構,管理的模式有内部管理,第三方管理,亦或是内部或外部托管。簡單的講,私有雲就是通過自建或者租用場地的形式建立伺服器機房或者資料中心。服務是面向私有網絡或者VPN專有網絡。企業擁有對伺服器、資料硬碟的完全控制。是以安全性很高。
  • 公有雲(Public Cloud):公有雲服務面向公開網絡暴露,服務可能也是免費的。由于網絡對外公布,是以從安全層面上也是大不相同的。常見的公有雲有AWS,Microsoft Azure,阿裡雲等。
  • 混合雲(Hybrid Cloud):混合雲是兩個或多個雲(私有雲,社群雲或公共雲)的組合,它們保持不同的實體但綁定在一起,提供多個部署模型的好處。 混合雲還意味着能夠使用雲資源連接配接搭配,托管和/或專用服務。比較常見的例子如資料公司,可能擁有很多資料,而這些資料因為合規性等原因隻能放在私有環境,當需要大規模機器學習,對資料進行脫敏後使用公有雲進行大規模學習。