云计算架构中的Iaas、Paas、SaaS详解
云計算的架構
云計算涉及了很多產品與技術,表面上看起來的確有點紛繁復雜,但是云計算本身還是有跡可循和有理可依的,下面介紹一套云計算的架構,具體請看圖:
標題上面這個云架構共分為服務和管理這兩大部分。
在服務方面,主要以提供用戶基于云的各種服務為主,共包含三個層次:其一是Software as a Service軟件即服務,簡稱SaaS,這層的作用是將應用主要以基于Web的方式提供給客戶;其二是Platform as a Service平臺即服務,簡稱PaaS,這層的作用是將一個應用的開發和部署平臺作為服務提供給用戶;其三是Infrastructure as a Service基礎架構即服務,簡稱IaaS,這層的作用是將各種底層的計算(比如虛擬機)和存儲等資源作為服務提供給用戶。從用戶角度而言,這三層服務,它們之間關系是獨立的,因為它們提供的服務是完全不同的,而且面對的用戶也不盡相同。但從技術角度而言,云服務這三層之間的關系并不是獨立的,而是有一定依賴關系的,比如一個SaaS層的產品和服務不僅需要使用到SaaS層本身的技術,而且還依賴PaaS層所提供的開發和部署平臺或者直接部署于IaaS層所提供的計算資源上,還有,PaaS層的產品和服務也很有可能構建于IaaS層服務之上。
在管理方面,主要以云的管理層為主,它的功能是確保整個云計算中心能夠安全和穩定的運行,并且能夠被有效地管理,主要包括用戶管理、監控系統、計費管理、安全管理、服務管理、資源管理、容災支持、運維管理、客戶支持幾個方面。
下面主要對Saas、PaaS、IaaS幾個方面做介紹
標題1、軟件即服務SaaS
軟件即服務(SaaS)為商用軟件提供基于網絡的訪問。您有可能已經使用過SaaS,即使您當時并不知道。SaaS的示例太多了,例如Netflix、Photoshop.com、Acrobat.com、Intuit QuickBooks Online、Gmail、Google Docs、Office Web Apps、Zoho、WebQQ、新浪微盤等等。可能不太明顯的SaaS實現包括移動應用程序市場中的相當一部分。
標題SaaS為企業提供一種降低軟件使用成本的方法 —?按需使用軟件而不是為每臺計算機購買許可證。尤其是考慮到大多數計算機在差不多70%的時間是空閑的,SaaS可能非常有效。企業不必為單一用戶購買多個許可證,而是讓許可證的使用時間盡可能接近100%,從而盡可能節省成本。
1.1 SaaS的優勢
SaaS 給軟件廠商提供了新的機會。尤其是,SaaS軟件廠商可以通過四個因素提高 ROI(投資回報):提高部署的速度、增加用戶接受率、減少支持的需要、降低實現和升級的成本。
(1)提高部署的速度
在過去,部署傳統的桌面應用程序需要很大的工作量。正如Tariq Ahmed在Flex 4 in Action (Manning Press) 的第1章中指出的,“要想讓數千甚至數萬客戶機同時運行軟件的某一版本,后勤方面的復雜性是非常高的。”
這正是向云計算轉移的過程比較緩慢且平緩的主要原因之一。在大多數情況下,符合邏輯的解決方案是分階段地把軟件轉移到云中,首先以SaaS的形式提供原應用程序的高度簡化的版本。考慮到開發商對版本控制的控制水平,這么做是很合理的。
云計算與過去的 “LAN 計算” 之間有許多相似之處。典型的LAN架構由站內的許多工作站組成,它們常常被稱為啞終端,它們通過連接強大的大型機(常常由IBM 提供)運行應用程序。這種計算類型過去非常適合企業,因 IT部門能夠完全控制版本,可以非常方便地多次部署更新。同樣,過去妨礙桌面軟件應用程序開發商進行版本控制的后勤障礙在云中也不存在,因為軟件在開發公司能夠直接訪問的基礎設施上運行。
考慮到SaaS必須能夠服務的客戶機數量,SaaS基礎設施的規模要比LAN大得多。但是底層的概念是相同的。大型機能夠駐留足夠多的軟件實例,從而為本地網絡中連接它的所有客戶機提供服務;而云由許多不同的計算機資源組成,它們共同提供計算能力,從而運行為世界各地的客戶機提供服務所需的許多軟件實例。
(2)增加接受率
以前一些軟件的許可證費用太高,而現在SaaS讓一般消費者能夠以合理的價格使用它們。一個好例子是 Adobe 以SaaS的形式提供Adobe Photoshop。盡管這項工作是Adobe正在做的試驗,但是已經取得了一些效果。
SaaS提供的多種業務模型尤其有吸引力。例如,Intuit 以SaaS的形式提供QuickBooks Online,按月收取服務費。作為經常旅行的企業主,這種服務非常有用。同時,Adobe在Photoshop.com和Acrobat.com中應用了SaaS,以freemium服務的形式提供軟件 — freemium服務是指一種基于許可證軟件產品的SaaS縮略版的業務模型。
freemium SaaS基于的收入模型是,預計免費用戶中的一部分最終會覺得軟件很有用,他們會升級到啟用了更多特性的SaaS付費版本,或者購買包含所有特性和功能的桌面版本的許可證。這種方法往往比通過 “受限制的演示” 模式試用軟件更好,因為演示模式要求用戶在桌面計算機上安裝他們可能不會購買的應用程序。另外,如果免費用戶中升級的比例低于預期,還可以通過廣告進一步補充這個模型。隨著云計算的發展,傳統的桌面軟件廠商經常使用這種方法適應市場的變化。
(3)減少支持的需要
大型客戶服務中心的成本很高,不得不支持多種平臺會導致支持問題增加,而SaaS可以大大緩解這些難題。首先,部署的簡便性讓開發人員能夠在發現bug之后很快進行修復,這意味著大多數bug可以在大量用戶遇到它們之前被修復,這會減少客戶支持部門接到的電話數量,提高客戶滿意度,降低客戶流失的可能性。
另外,傳統桌面軟件應用程序的開發商常常必須支持多種平臺。例如,開發商可能必須支持Windows 7和Apple Mac OS X 10.6操作系統,添加對第二種操作系統的支持差不多會讓開發成本加倍;而且,如果支持這些操作系統的許多不同版本,問題會更多。支持操作系統的多個版本還會產生限制。
(4)降低實現和升級的成本
SaaS推動ROI的第四個因素與第一個因素有點兒相似。但是,部署的速度是指快速、簡便地部署應用程序更新所帶來的好處。與之相反,降低實現和升級的成本是指開發公司由于能夠控制版本和運行軟件的基礎設施所獲得的經濟利益。
因為開發商可以控制運行軟件的平臺(平臺通常對于用戶完全透明),所以他們不必負擔在多個平臺上測試和部署bug補丁和新特性的額外開銷,這會節省大量資金。這讓SaaS應用程序的升級成本更低。節省的大量時間和資金讓開發商有機會更好地響應客戶的請求并增強易用性,從而提高客戶滿意度,降低客戶流失的可能性,這會帶來間接的經濟利益。
1.2 SaaS使用的技術
SaaS層離普通用戶非常接近,下面是其中最主要的五種:
(1)HTML :標準的Web頁面技術,現在主要以HTML4為主,但是即將推出的HTML5會在很多方面推動Web頁面的發展,比如視頻和本地存儲等方面。
(2)JavaScript :一種用于Web頁面的動態語言,通過JavaScript ,能夠極大地豐富Web頁面的功能,最流行的JS框架有jQuery和Prototype 。
(3)CSS :主要用于控制Web頁面的外觀,而且能使頁面的內容與其表現形式之間進行優雅地分離。
(4)Flash :業界最常用的RIA(Rich Internet Applications)技術,能夠在現階段提供HTML等技術所無法提供的基于Web的富應用,而且在用戶體驗方面,非常不錯。
(5)Silverlight :來自業界巨擎微軟的RIA技術,雖然其現在市場占有率稍遜于Flash,但由于其可以使用C#來進行編程,所以對開發者非常友好。
在SaaS層的技術選型上,首先,由于通用性和較低的學習成本,大多數云計算產品都會比較傾向HTML 、JavaScript和CSS這對黃金組合,但是在HTML5被大家廣泛接受之前,RIA技術在用戶體驗方面,還是具有一定的優勢,所以Flash和Silverlight也將會有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技術,而微軟的云計算產品肯定會在今后大量使用Silverlight技術。
2、平臺即服務PaaS
平臺即服務(Platform as a Service,PaaS)提供對操作系統和相關服務的訪問。它讓用戶能夠使用提供商支持的編程語言和工具把應用程序部署到云中。用戶不必管理或控制底層基礎架構,而是控制部署的應用程序并在一定程度上控制應用程序駐留環境的配置。PaaS的提供者包括Google App Engine、Windows Azure、Force.com、Heroku等。小企業軟件工作室是非常適合使用PaaS的企業。通過使用云平臺,可以創建世界級的產品,而不需要負擔內部生產的開銷。
標題通過PaaS這種模式,用戶可以在一個提供SDK(Software Development Kit,即軟件開發工具包)、文檔、測試環境和部署環境等在內的開發平臺上非常方便地編寫和部署應用,而且不論是在部署,還是在運行的時候,用戶都無需為服務器、 操作系統、網絡和存儲等資源的運維而操心,這些繁瑣的工作都由PaaS云供應商負責。而且PaaS在整合率上面非常驚人,比如一臺運行Google App Engine的服務器能夠支撐成千上萬的應用,也就是說,?PaaS是非常經濟的。 PaaS主要面對的用戶是開發人員。
2.1 PaaS的優勢
一般來說,和現有的基于本地的開發和部署環境相比,PaaS平臺主要有下面這六方面有非常大的優勢:
(1)友好的開發環境:通過提供SDK和IDE(Integrated Development Environment ,集成開發環境)等工具來讓用戶不僅能在本地方便地進行應用的開發和測試,而且能進行遠程部署。
(2)豐富的服務:PaaS平臺會以API的形式將各種各樣的服務提供給上層的應用。
(3)精細的管理和監控:PaaS能夠提供應用層的管理和監控,比如能夠觀察應用運行的情況和具體數值(比如吞吐量Throughput和響應時間Response Time等)來更好地衡量應用的運行狀態,還有能夠通過精確計量應用使用所消耗的資源來更好地計費。
(4)伸縮性強: PaaS 平臺會自動調整資源來幫助運行于其上的應用更好地應對突發流量。
(5) 多租戶(Multi-Tenant)機制:許多PaaS平臺都自帶多租戶機制,不僅能更經濟地支撐龐大的用戶規模,而且能提供一定的可定制性以滿足用戶的特殊需求。
(6)整合率和經濟性:PaaS平臺整合率是非常高,比如PaaS的代表Google App Engine能在一臺服務器上承載成千上萬的應用。
2.2 PaaS的主要成分
PaaS分解為主要組件:平臺和服務。考慮提供的服務,這稱為解決方案堆。也就是說,PaaS 的兩個主要成分是計算平臺和解決方案堆。
為了說明這兩個 “成分”,我們進一步研究一下它們的定義。按照最簡單的形式,計算平臺是指一個可以一致地啟動軟件的地方(只要代碼滿足平臺的標準)。平臺的常見示例包括 Windows、Apple Mac OS X和Linux操作系統;用于移動計算的Google Android、Windows Mobile和Apple iOS;以及作為軟件框架的Adobe AIR和Microsoft .NET Framework。要記住的重點是,計算平臺不是指軟件本身,而是指構建并運行軟件的平臺。下面提供一張示意圖以幫助理解這種關系。
云計算分類與PaaS元素之間關系的圖形化解釋?
解決方案堆由應用程序組成,這些應用程序有助于開發過程和應用程序部署。這些應用程序是指操作系統、運行時環境、源代碼控制存儲庫和必需的所有其他中間件。
2.3 PaaS使用的技術
PaaS 層的技術比較多樣性,下面是常見的五種:
(1)REST :通過 REST(Representational State Transfer,表述性狀態轉移)技術,能夠非常方便和優雅地將中間件層所支撐的部分服務提供給調用者。
(2)多租戶:就是能讓一個單獨的應用實例可以為多個組織服務,而且能保持良好的隔離性和安全性,并且通過這種技術,能有效地降低應用的購置和維護成本。
(3)并行處理:為了處理海量的數據,需要利用龐大的x86集群進行規模巨大的并行處理,Google的MapReduce是這方面的代表之作。
(4)應用服務器:在原有的應用服務器的基礎上為云計算做了一定程度的優化,比如用于Google App Engine的Jetty應用服務器。
(5)分布式緩存:通過分布式緩存技術,不僅能有效地降低對后臺服務器的壓力,而且還能加快相應的反應速度,最著名的分布式緩存例子莫過于Memcached 。
對于很多PaaS平臺,比如用于部署Ruby應用的Heroku云平臺,應用服務器和分布式緩存都是必備的,同時REST技術也常用于對外的接口,多租戶技術則主要用于SaaS應用的后臺,比如用于支撐Salesforce 的CRM等應用的Force.com多租戶內核,而并行處理技術常被作為單獨的服務推出,比如Amazon的Elastic MapReduce 。
3、基礎架構即服務IaaS
基礎架構,或稱基礎設施(Infrastructure)是云的基礎。它由服務器、網絡設備、存儲磁盤等物理資產組成。在使用IaaS時,用戶并不實際控制底層基礎架構,而是控制操作系統、存儲和部署應用程序,還在有限的程度上控制網絡組件的選擇。
標題通過IaaS這種模式,用戶可以從供應商那里獲得他所需要的計算或者存儲等資源來裝載相關的應用,并只需為其所租用的那部分資源進行付費,而同時這些基礎設施繁瑣的管理工作則交給IaaS供應商來負責。
IaaS的關鍵概念:
* 云爆發(cloud bursting)
* 多租戶計算(multi-tenant computing)
* 資源共用(resources pooling)
* 虛擬機監控程序(hypervisor)
IaaS最與眾不同的兩個方面:可伸縮性和虛擬化(elasticity and virtualization)。
對于企業而言,IaaS的巨大價值通過云爆發(cloudbursting)概念實現。云爆發是指當業務瞬間增長,需要大量的計算資源時,將任務負載擴展到云環境的過程。云爆發促成的資本節約潛力巨大,因為企業無需額外投資利用率很低的服務器,那些服務器一年中只有兩三次使用 70% 的容量,其余時間僅有 7-10% 的負荷。
3.1 從”基礎架構即資產“到”基礎架構即服務”
在過去50年之內,大量成功的公司花費大量寶貴時間和資源來構建基礎架構,其目標是通過創建一個更大、更快、更強的網絡來獲取戰勝其競爭對手的競爭優勢。IT 行業中的 “基礎架構即資產” 范式擁有上世紀六七十年代的 “暴力跑車(muscle cars)” 所擁有的相同或類似的低效率和不利特征。對于企業計算,這些低效率包括:
* 大量未使用的計算能力和容量,它們耗費的成本與大型、昂貴的數據中心中的硬件消耗的大量空間相關聯。比如服務器一年中可能只有兩三次使用70%的容量,其余時間僅有7-10%的負荷。* 昂貴的人力資源需求,包括要求基礎架構資產(服務器、路由器、交換機等)所在的數據中心的網絡管理員進行24小時監控。* 旨在應對高水平能源浪費的Green Computing計劃的一個巨大障礙。IaaS標志著從 “基礎架構即資產” 到 “基礎架構即服務” 的轉變。云計算的其他兩個類別也標志著范式轉變。對于Platform as a Service (PaaS),轉變來自 “平臺即資產” 范式,該范式的特征是大量采購許可。同樣的轉變也適用Software as a Service (SaaS),這種轉變是從 “軟件以許可形式作為組織資產” 到 “軟件以服務形式提供”。
3.2 IaaS的主要特征
(1)可伸縮性
可伸縮性是IaaS的首要關鍵特征。
假設云由一些粘在一起的棉花糖簇組成,這樣人們就可以坐在它們上面。每個棉花糖都能承載一定數量的人,具體取決于組成云的棉花糖簇的數量和那些簇中包含的棉花糖的數量。隨著越來越多的人登上棉花糖云,可以通過粘貼更多的棉花糖來擴展棉花糖簇,增加表面面積。人代表需要計算資源的應用程序,比如承載網站并運行軟件的資源。棉花糖簇代表VM集群,每個棉花糖代表一 VM。
盡管這聽起來有點像Seuss博士的書中可能出現的內容,但它提供了一種方法來理解許多黑魔法(dark art)考慮的一個概念:可伸縮的集群(elastic clustering)。集群化幾個物理服務器來形成一個虛擬云稱為云集群(cloud clustering),如果它真是一種黑魔法,則精通程度可以通過一位藝術家的系統設計的可伸縮性來衡量。
(2)虛擬化
IaaS很容易定位,因為它通常是獨立于平臺的。IaaS有一個硬件和軟件資源組合組成。IaaS軟件是低級代碼,獨立于操作系統運行,例如虛擬機監控程序。虛擬機監控程序負責管理硬件資源的庫存并根據需要分配上述資源。這個過程稱為資源共用(resource pooling)。虛擬機監控程序實現的資源共用使得虛擬化成為可能,虛擬化使多租戶計算(multi-tenant computing)成為可能。多租戶計算概念指由幾個組織共享的一個基礎架構,這些組織在安全需求和遵從性問題方面有類似的興趣。
VMs、虛擬機監控程序和計算機之間的關系通過 IaaS,我們可以擁有提供處理、存儲、網絡和其他計算資源的能力,可以在那里部署和運行任意軟件,比如操作系統和應用程序。大多數云計算用例遵循已經習慣的基礎分層結構:一個軟件解決方案堆棧或平臺被部署在一個網絡基礎架構上,一些應用程序在那個平臺之上運行。但是,虛擬化使得云范式獨一無二。
3.3 IaaS的優勢
IaaS服務和傳統的企業數據中心相比,在很多方面都存在一定的優勢,下面是最明顯的五個。
(1)免維護:主要的維護工作都有IaaS云供應商負責,所以不必用戶操心。
(2)非常經濟:首先免去了用戶前期的硬件購置成本,而且由于IaaS云大都采用虛擬化技術,所以在應用和服務器的整合率普遍在10以上,這樣能有效降低使用成本。
(3)開放標準:雖然很多IaaS平臺都存在一定的私有功能,但是由于OVF等應用發布協議的誕生,使得IaaS在跨平臺方面穩步前進,從而使得應用能在多個IaaS云上靈活的遷移,而不會被固定在某個企業數據中心內。
(4)支持的應用:因為IaaS主要是提供虛擬機,而且普通的虛擬機能支持多種操作系統,所以IaaS所支持應用的范圍是非常廣泛的。
(5)伸縮性強:IaaS云只需幾分鐘就能提供用戶一個新的計算資源,而傳統的企業數據中心則往往需要幾周時間,并且計算資源可以根據用戶需求來調整其資源的大小。
3.4 IaaS使用的技術
在IaaS所采用的技術方面,都是一些比較底層的技術,其中有四種技術是比較常用的:
(1)虛擬化:也可以理解它為基礎設施層的“多租戶”,因為通過虛擬化技術,能夠在一個物理服務器上生成多個虛擬機,并且能在這些虛擬機之間能實現全面的隔離, 這樣不僅能減低服務器的購置成本,而且還能同時降低服務器的運維成本,成熟的x86虛擬化技術有VMware的ESX和開源的Xen 。
(2)分布式存儲:為了承載海量的數據,同時也要保證這些數據的可管理性,所以需要一整套分布式的存儲系統,在這方面, Google 的GFS是典范之作。
(3)關系型數據庫:基本是在原有的關系型數據庫的基礎上做了擴展和管理等方面的優化,使其在云中更適應。
(4)NoSQL:為了滿足一些關系數據庫所無法滿足的目標,比如支撐海量的數據等,一些公司特地設計一批不是基于關系模型的數據庫,比如Google的BigTable和Facebook的Cassandra等。
現在大多數的IaaS服務都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技術的vCloud ,同時業界也有幾個基于關系型數據庫的云服務,比如Amazon 的RDS(Relational Database Service,關系型數據庫服務)和Windows Azure SDS(SQL Data Services, SQL數據庫服務)等。關于分布式存儲和NoSQL,它們已經被廣泛用于云平臺的后端,比如Google App Engine的Datastore就是基于BigTable和GFS這兩個技術之上的,而Amazon則推出基于NoSQL技術的Simple DB 。
總結一下
分享一個跨概念矩陣來理解云計算的這三個類別:
標題總結
以上是生活随笔為你收集整理的云计算架构中的Iaas、Paas、SaaS详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python罗盘时钟代码,罗盘时钟(原创
- 下一篇: Windows10安装IIS服务器