雲計算的基礎設施服務

《雲計算:企業實施手冊》中將雲計算的基礎設施即服務劃分爲3個類別:服務器服務、存儲服務和網絡連接服務。 服務提供商可能會提供虛擬服務器實例,在這些實例上,用戶可以安裝和運行一個自定義的映像。持久性的存儲是一種單獨的服務,客戶可以單獨購買。最後,還會有一些用於擴展網絡連接的產品。

亞馬遜是基礎設施即服務的事實標準。雖然他們並沒有自己獨特的產品,但幾乎所有的基礎設施即服務業務要麼被認爲是亞馬遜Web服務的補充,要麼就被看做其競爭對手。因此,本書中對基礎設施即服務的架構分析採用了亞馬遜的產品結構。

在深入討論之前,本書希望提請讀者注意的是,有一個相當於亞馬遜Web服務的開源軟件,並且兩者在接口上也大致兼容,稱爲Eucalyptus。Eucalyptus的全稱是用於連接應用程序到實際可用系統的彈性效用計算架構(Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems),其可以作爲源代碼包、遠程數據包管理程序以及磁盤映像文件使用。Eucalyptus也是隨着Ubuntu一起下載的軟件,實際上Ubuntu 9.04版是其默認的雲計算工具軟件。

3.2.1   服務器服務

服務器實際上代表了隨着計算資源一起分配的最小存儲空間和輸入/輸出信道的資源集合。雲計算可以被看做是如Savvis、Navisite、Terremark這樣的虛擬託管服務提供商的演進。虛擬託管服務提供商提供主機託管服務以及安裝在機架上的服務器資源池。其虛擬主機託管能力通常包括提供在專用基礎設施上的虛擬資源,並通過控制檯進行配置。

服務器外包可以分爲3種配置模式:物理資源、虛擬專用資源、共享虛擬資源。物理資源配置模式是指將特定的硬件資源分配給客戶,如同上一段提到的例子。虛擬專用服務器提供專用的硬件,但提供了在物理機上的管理程序,因此客戶可以運行多個操作系統,並且最大限度地提高了服務器的利用率。共享的虛擬服務器都是以虛擬機池的形式提供給客戶。這種情況下,不能明顯地區分一個特定的實例運行在某一個物理設備上,也不能區分同一機器上是否還有其他應用程序運行。

除了這些區別,一些關鍵的區別還包括支持的操作系統類型(通常僅限於Windows和Linux的一些版本)和現成可用的軟件包(如應用程序框架)。

有許多服務提供商都能夠提供多種組合配置、操作系統和文件包的選擇。其中一些最知名提供商如下:

亞馬遜屬於共享虛擬機的服務提供商,而且可能是最有名的一家。每個虛擬機都基於亞馬遜主機映像文件(Amazon Machine Image,AMI)。客戶可以使用亞馬遜預封裝的主機映像文件或者第三方提供的映像文件,也可以自己建立的一個映像文件。這些映像文件在資源配置上各有不同,包括內存、計算單元、本地磁盤大小;在操作系統配置上也不同,包括多個不同的Windows版本和Linux發行版;在安裝的應用框架的配置上就更不一樣,包括可能安裝的Jboss、MySQL和甲骨文數據庫系統。

AppNexus提供的是基於戴爾(Dell)計算機和Ipsilon存儲的專用虛擬服務器。不同之處在於其提供對服務器位置的高度可見性,同時保證數據中心以及機架位置的透明性。

LayeredTech提供主機託管服務和專用的以及虛擬化的服務器產品。他們僱用底層的操作系統廠家VMware和3Tera Applogic爲自己提供虛擬化解決方案,並建立了一套名爲Virtuozzo Containers的私有技術。這個技術與通常的管理程序不同。在該方案中,管理程序在提供虛擬機隔離的同時,還能共享底層的操作系統。

使用多個虛擬服務器的挑戰在於這些虛擬服務器通常不會維護任何本地存儲並可能因爲相互調用而丟失自己的狀態。但這種方法有其優勢所在。畢竟,任何重要的配置信息或其他數據都可以存儲在外部。但對於某些特定用途,保持永久的本地存儲可能會更好或更容易。所以,一些服務器產品也提供這樣的功能。

Rackspace雲(以前也被稱爲Mosso)是另一個非常著名的基礎設施即服務的供應商。其提供許多虛擬主機託管選擇以及虛擬服務器產品,涵蓋了許多Linux發行版本(如Ubuntu、Fedora、CentOS和RedHat的企業版)。同時其擁有一個很大的專用IP地址池,並提供對所有實例的永久存儲。

Joyent公司使用了“加速器”這一名詞來指代其永久虛擬機產品。他們在OpenSolaris上運行Apache、Nginx、MySQL、PHP、Rubyon Rails和預安裝的Java,也具有添加其他軟件包的能力。它有一個叫做“自動CPU突發(automatic CPU bursting)”的功能可以提供一個反應性彈性功能。Joyent還提供一個自有管理框架的專用版本,稱爲CloudControl, 可以用於企業數據中心管理。

GoGrid提供了一個如圖3-3所示的專用服務器配置,以及一些預裝的映像文件,包括Windows和Linux版本,還有Apache、IIS、MySQL和其他一些應用程序的軟件包。GoGrid還免費提供了一個基於硬件的負載平衡機制以優化客戶實例的性能。

3-3 

圖3-3   GoGrid的專用服務器

ElasticHosts目前主要瞄準的是英國市場,在倫敦附近建立了2個數據中心。他們不使用較常見的管理程序,而是選擇了Linux KVM作爲其管理程序的架構。這個公司可能在一些同樣採用KVM管理程序的組織中出現。他們還提供了按照連續數值進行單獨服務器規格配置的能力,如圖3-4所示。

3-4 

圖3-4   彈性主機服務器規格

3.2.2   存儲

像存儲網絡(StorageNetworks)一樣,存儲服務,自20世紀90年代後期,就已經出現。類似於最初的應用託管服務提供商,開始這類產品不是很賺錢(Ruth,2009年)。但是最近以來,按需服務產品改變了這一局勢,並使得存儲即服務成爲雲計算最有前途的領域之一。

這類產品通常提供與位置無關的虛擬化數據存儲,這樣促進了對通過彈性機制製造無限容量存儲的期望,而且高度的自動化水平使得用戶能非常容易地使用。最常見的應用程序之一是採用軟件即服務模式的在線備份業務,比如Mozy或者SugarSync。存儲服務對壓縮歸檔、內容分發、災難恢復和Web應用程序開發都有用。

這類服務也面臨着一些挑戰,例如停電、供應商鎖定、數據混合和性能約束。不過,存儲服務也提供一些好處,它降低了存儲基礎設施、維護和服務的成本,同時也減少了對工作人員的挑戰。與此同時,這些服務提供了更多的靈活性,給客戶帶來專業化的好處,比如,服務提供商具備合規性、安全性、私密性,並且具備對存儲信息進行壓縮歸檔、重複數據刪除以及數據分類的先進信息管理技術。

爲了滿足雲計算提出的嚴格要求,許多存儲產品廠商,比如EMC 的Atmos產品線,已經開始提供新的硬件和軟件。這些軟硬件是專門設計用於地理上分散的內容倉庫,具備複製、版本管理、重複數據刪除和壓縮的功能。這些存儲產品廠商爲存儲服務提供商以及衆多企業提供產品,而這些購買者所追求的共性在於私有云中提供的相似的功能。

在研究按需存儲的服務時,需要考慮的一些因素包括永久性和可複製選項以及數據訪問的速度和延遲。需要注意的是,由於內容分發網絡的同步要求,觀察到的讀出和寫入數據的速度可能完全不一樣。與此相關的一些影響因素還包括系統的訪問協議和機制以及數據結構。

亞馬遜提供了2個永久存儲的功能:簡單存儲服務(Simple Storage Service,S3)和彈性塊存儲(Elastic Block Storage,EBS)。值得注意的是,如上所述,亞馬遜的映像文件(AMI)不具有任何的永久存儲空間,但本地安裝的磁盤空間可以在該實例處於激活狀態時,用於日誌記錄、業績及中期數據記錄。

S3可以通過REST和SOAP的應用程序接口訪問。S3提供分佈式冗餘的文件塊,這些都是通過亞馬遜的內容分發網絡CloudFront分發到跨越歐洲、亞洲和美國的各地完成的。S3可容納從單個字節到5GB的數據類型,通過亞馬遜Web服務認證(Amazon Web Services authentication)提供控制訪問的權限。

2010年2月,亞馬遜擴展了S3的功能以支持版本服務,於是客戶可以恢復意外刪除或覆蓋的對象。這一功能也適合其自身要求的數據保留和歸檔功能。

彈性塊存儲的目的是作爲一個高性能的虛擬硬盤。它可以作爲一個文件系統被格式化,然後安裝在任何EC2實例中。存儲空間的大小可以從1GB到1TB。亞馬遜還提供了一種機制在S3中存儲一個長期持久性彈性塊存儲快照。

其他的存儲服務包括:
Rackspace雲:Rackspace雲文件類似於S3,通過REST 應用程序接口訪問。它爲數據容器提供靜態內容,這些內容可以通過Limelight內容分發網絡複製到超過50個的邊緣數據中心中。

GoGrid:GoGrid雲存儲不容易通過應用程序接口訪問。但它支持其他機制的訪問,如SCP、FTP、Samba和rsync。

LayeredTech:Dynavol服務支持數據的冗餘映像,並支持多種接入機制,包括: HTTP、FTP、SFTP、SSH、scp、rdiff、rdist、rsync和smbfs。

Nirvanix:CloudNAS是一個基於策略的專注於企業需求的產品。它可以作爲一個Linux和Windows的虛擬掛載點,支持雙重/三重複制與區域規範(比如支持歐盟要求的合規性或因性能要求而進行的分區)。

ParaScale:ParaScale本身不是一個供應商。然而,他們爲雲存儲服務提供商們開發基於雲的存儲技術,提供先進的基於策略的複製功能,並支持常見的訪問機制,包括NFS、WebDAV、FTP和HTTP。

Hadoop:對雲文件系統最重要的開放源碼來自於基於Apache 的Hadoop系統。Hadoop本身不是服務,而是服務的一個重要組成部分。這一系統是模仿谷歌的MapReduce和谷歌文件系統開發的一個開放源碼。

Hadoop分佈式文件系統(Hadoop Distributed File System,HDFS)將大文件分割存儲在多個網絡主機上。Hadoop分佈式文件系統通過HDFS的特定塊協議(HDFS-specific block protocol)或基於HTTP的瀏覽器訪問通過網絡提供對這些數據塊進行訪問。文件系統中的節點可以互相溝通以重新平衡數據、移動數據備份,並保證大量的複製數據。默認情況下,複製的份數是3,即數據存儲在3個節點上:其中2個節點在相同的機架上,而另一個在不同的機架上。

對於更結構化的數據也有不同的雲數據庫的選擇。需要注意的是,雖然大多數的信息是以表格形式存儲的,但通常並不是SQL的格式,可能不支持連接(join)、外鍵(foreign key)、觸發器(trigger)和存儲過程這些數據庫操作。不支持這些功能是因爲這些系統都需要更好地處理非結構化數據(數據塊)。

以亞馬遜簡單數據庫(Simple DB,SDB)爲例,它並不採用schema模式。相反,它定義了“域(domain)”的概念,包括多達256個的屬性(attribute)和域值(value)。一個域值可以容納從1B到1KB的數據。該數據庫還支持一些簡單的操作,如=、!=、<、>、<=、> =、STARTS-WITH、AND、OR、NOT、INTERSECTION、 UNION。因此,只要在單個域內進行的常見的查詢類型都可以執行。

還有其他一些有趣的數據服務如下:

谷歌BigTable:谷歌BigTable是一個快速的超大規模的數據庫管理系統(DBMS)。該數據庫管理系統設計規模到PB級,並橫跨了數百或上千臺的機器。每個數據表有多種維度。其中一個維度是時間值,這樣可以進行版本控制。這個數據庫系統被許多的谷歌應用程序使用着,比如MapReduce。

Hypertable:Hypertable是一個開源的數據庫。這個數據庫系統是建立在谷歌發佈的BigTable設計原理的論文內容基礎之上,並由世界領先的中文搜索引擎百度贊助出資。這個數據庫系統中運行了分佈式的文件系統,比如Apache Hadoop的DFS、GlusterFS或Kosmos File System(KFS)。

Dynamo:Dynamo是亞馬遜建立的等效於BigTable的數據庫系統。這是一個具有高可用性的鍵值存儲的相關數據庫系統,數據存儲和複製都建立在散列環(hash ring)算法上。雖然Dynamo不是直接提供給消費者的服務,但它驅動着亞馬遜很大一部分的網絡服務,包括S3。

Cassandra:Cassandra是Facebook的分佈式存儲系統。這一存儲系統發展的是混合功能類型,其中結合了谷歌BigTable的數據模型和亞馬遜Dynamo的方式。

3.2.3   網絡連接

如果沒有網絡連接,雲計算的概念將是完全沒有意義的。但是,僅僅有網絡也是不夠的。在網絡連接中也有很多不同的能力可以選擇。例如,在默認情況下,亞馬遜EC2的實例將獲得一個動態地址(採用DHCP分配地址)。如果實例需要額外的地址、靜態地址或永久的域名,那麼實例就需要分別地去請求這些地址或域名。

雲服務提供商還可能提供另外兩個與網絡相關的功能。第一個功能是對網絡分段和爲這些分段網絡提供的橋接機制。第二功能是性能相關的功能,如負載平衡。

許多雲服務器提供商允許客戶自定義防火牆,例如亞馬遜的EC2。通過定義特定的IP地址範圍和端口號可以限制流入和流出的數據流量。此外,客戶操作系統可進一步申請個人防火牆設置。

AppNexus爲每個客戶提供一個私有的VLAN。這樣不僅提供了靜態IP地址,也減少了系統暴露於外部廣播流量的威脅,而且也可以區分多租戶的不同流量,只需要在訪問中使用訪問控制列表(Access Control List,ACL)。

Cohesive FT提供一種服務叫做***-Cubed。該服務是基於一個開源的SSL-***項目Open***。通過設置防火牆服務器,創建進入系統內部的網絡連接,爲每個企業建立了一個加密通道。在雲服務內部也可以建立這樣的隧道。這樣能夠通過提供虛擬IP地址池來維護使用的IP地址,還可以提供如負載平衡、故障恢復和訪問控制這樣的功能。

2009年,亞馬遜推出一種服務,能夠增強雲之間的連接性並保證連接的安全性。亞馬遜虛擬私有云(Amazon Virtual Private Cloud)可以用於企業混合雲的建設,它在企業和亞馬遜網絡服務之間爲企業創建了一個安全的虛擬專用網絡,並擴展了一些基礎設施,包括防火牆、***檢測和橋接網絡間的網絡管理。

一旦配置好連接,接下來的任務就是確保網絡連接令人滿意地運行。雲服務的網絡性能主要是由2個因素決定。一個是時延,這與跨越的地理位置範圍直接相關,因爲時延與客戶機和服務器間的物理距離成比例關係。另一個是帶寬,就是雲服務提供商能夠從其網絡提供商那裏獲得網絡帶寬大小。

但是,也可能存在雲系統內部的瓶頸問題從而影響了系統的性能。特別是,服務器本身在長時間工作後有可能過載,因此服務器不能以足夠快的速度響應服務請求。假設應用程序可以橫向擴展到多個服務器,那麼解決這一瓶頸問題的辦法是平衡分擔新發起的請求。這種平衡可以實現在本地層面(內部的數據中心)或全球範圍。

許多雲服務提供商提供本地負載均衡能力。最簡單的方法是使用DNS輪循機制,將多個IP地址添加到DNS中的同一個域名中。負載平衡也可能是基於軟件的實現,如Joyent使用的Zeus ZXTM LB。Zeus ZXTM LB提供高性能的SSL和內容壓縮、基於內容識別的流量管理規則和靈活的狀態檢測。另外,許多雲服務提供商如AppNexus和GoGrid,使用基於硬件的負載流量,如F5 BIG-IP Local Traffic Managers。

全球負載均衡的重點是減少使用負載過大的服務器,並更多地按照地理位置進行負載分擔。這樣使得用戶連接到最近可用的服務上。這可以通過特殊的設備實現,如BIG-IP Global Traffic Manager。但也可以通過對DNS進行分區,使區域的DNS服務器指向每一個域內的負載均衡器。DNS客戶端將依次發送DNS請求並接受第一個響應指令,將客戶端指向最近的一個服務器。

3.2.4   整合

設置好網絡連接後,下一步是配置應用程序,這樣就能夠進行數據交換和同步。在這個層面上,不同的基礎設施即服務提供商支持的水平也有差異。從理論上講,他們並不需要進行集成和整合。應用程序應該可以直接交互,或者客戶可以安裝專用的中間件組件。然而,對基礎設施即服務的雲服務提供商來說,這是做增值業務的方向,許多提供商也正在進行這方面的服務。

亞馬遜提供一種稱爲簡單隊列服務(Simple Queue Service,SQS)的業務。正如這個名字本身的字面意思一樣,該服務提供了一個無限長的消息隊列,其中消息最大可以達到爲8 KB。客戶可以創建隊列和發送消息。任何授權的應用程序都可以接收或刪除消息。由於消息可以留在系統中長達4天時間,這就爲應用程序之間的同步提供了一個良好的異步通信機制。

如上所述,實現連接同步可以不需要任何基礎設施的支持。但是,沒有其他的服務提供商能像OpSource一樣提供附加的網絡服務以供應用程序利用。OpSource Services Bus 提供了一個應用程序接口,允許運行在OpSource On-Demand平臺上的應用程序來拓展Web服務,例如商業分析、入職和計費。這一平臺能夠提供報告和一系列可視化的關鍵性能指標(key Performance indicator,KPI)數據。這些指標都基於一些基本的數據,如單位指標、應用程序事件、用戶登錄、應用運行時間、帶寬利用率、應用響應時間、監測警報和計費統計。

OpSource連接服務擴展了Services Bus的服務內容,提供了雙向交互式的Web服務,從而使得用戶能夠通過一個統一的Web服務基礎設施來消費或者發佈各種應用程序。消費基礎設施的用戶對這樣的服務感興趣,尤其是當他們準備將這些應用作爲一個Web服務推向用戶,並從此獲取利潤的時候。

Apache的Hadoop系統也提供了一種更加緊密的協調應用程序交互的框架模式。作業跟蹤程序(Job Tracker)和任務跟蹤程序(Task Tracker)本來是爲了谷歌map/reduce(谷歌的一種並行處理機制)引擎開發的程序,但對數據密集型的分佈式應用程序也能普遍地適用。客戶端應用程序向作業跟蹤程序提交工作任務,作業跟蹤程序將這些工作任務分配給可用的任務跟蹤程序節點。

使用這一技術的前提是大量的數據通過Hadoop分佈式文件系統分佈在系統中,文件系統準確地掌握着所有數據的精確位置(節點、機架、數據中心)。作業跟蹤程序分配工作時,分配的任務儘可能從物理上靠近數據節點位置,以儘量減少處理時延。

3.2.5   管理

大多數基礎設施層的組件最終是通過虛擬化技術供應商的設施進行管理的。根據使用的管理程序不同,管理的方式也不一樣。有第三方提供的內部組件方式,如Xen、VMware、Hyper-V和 KVM,也有其他的虛擬化解決方案。

除了內部組件提供的管理方式外,還有可能存在更高層的管理框架,如BMC Patrol、CA Unicenter、IBM的Tivoli產品套件或HP的業務技術優化解決方案(BusinessTechnology Optimization solutions)。對於高度可擴展的私有云解決方案,比如Moab 自適應計算(Adaptive Computing)這樣的軟件,可以利用惠普和IBM的工具來建立功能齊全的動態計算環境,並自動調整和配置資源以適應業務流程的要求。

對於公有云也有一些服務能用於管理基礎設施服務,如Elastra、RightScale和enStratus。這些服務提供對亞馬遜EC2以及其他基礎設施即服務產品的前端管理:

Elastra:亞馬遜給予Elastra部分資金支持。但除了支持亞馬遜Web服務以外,Elastra還支持基於VMware的內部和混合部署。其建模工具允許用戶自定義主機性能指標集,如指明CPU架構、速度、內核數量、內存和網絡接口,並允許用戶爲定義的主機集分配資源,並在這些主機之間建立連接器。一旦模型建立,該工具會生成端到端的部署計劃,自動在內部、外部和虛擬環境中進行部署。

RightScale:RightScale支持亞馬遜Web服務、Eucalyptus、Flexiscale、GoGrid和Rackspace雲系統。它提供基於雲的服務器模板,並隨送打包在一起的啓動和運行腳本。這些模板有助於服務的自動部署並在不同服務提供者之間提供可移植性,因爲這些服務器能進行獨立於基礎設施的功能操作,如獲得IP地址、訪問存儲的數據和提交監測數據。

RightScale還提供了通過輸入參數對服務器進行分組的方式,比如根據代碼庫和數據庫進行分組,因此可以將這些服務器進行集合化管理和部署。在對一個大規模系統實施系統性的改變時,這一機制就具有特殊的優勢。

enStratus:enStratus能夠提供一個控制檯實時顯示亞馬遜和Rackspace公司的雲基礎設施的細節。它包括了預留IP地址機制,並能以可視化的方式通過文件目錄系統顯示亞馬遜EC2上的文件。它的羣集管理器還可以定義設備之間的依存關係,如服務器、負載平衡器和數據庫之間的依存關係,以及爲應用程序定義自愈策略。

CohesiveFT提供了一個彈性服務器管理系統。這是一個集中式的基於網頁的控制檯,其本身也可以運行在一個雲計算系統中。這一管理器可以用來將應用協議棧封裝到虛擬機映像中。客戶可以自定義不依賴於目標系統的應用程序和配置/設置軟件包。管理系統將這些組件的映像進行組合後,根據選擇的目標雲系統所採用的虛擬化技術,爲其創建一個特定的映像文件。由於用戶的配置集可以在整個CohesiveFT社區共享,這個小規模的系統正在不斷增長,並促進更合理地利用各種用戶自定義的組件。

3.2.6   支付和結算

對基於效用的服務進行有效的計費依賴於2個功能:細粒度的計量和一個簡單的、值得信賴的支付系統。可以說,在這些領域的領導者一直是電信公司,尤其是移動運營商。因此,毫不奇怪地看到雲產品在大型國際通信公司涌現,如英國電信、德國電信、日本NTT、新加坡電信和Orange。

然而,主要基於信用卡結算的電子商務在最近幾年內也獲得了蓬勃的發展。比如PayPal這樣的公司,他們爲小規模的還不具備一定公信度的企業充當中介。

與此同時,許多雲服務提供商已經開發了自己的儀表和計費系統。這些可以用於他們自己的業務,而且也可能以一定的費用提供給他們的客戶和合作伙伴使用。

要理解這種多重模式的商業模型,重要的是要記住,儘管基礎設施服務和軟件應用服務之間存在着重要的不同之處,但這並不意味着它們是完全無關的。基礎設施即服務最常見的用途之一就是作爲一個SaaS的架構基礎。除了提供原始計算和存儲能力,一些基礎設施即服務提供商也協助SaaS的支付和結算服務,這樣作爲基礎設施即服務客戶的SaaS服務提供商就可以利用這些支付和結算服務來獲得實際收益。

亞馬遜靈活支付服務(Flexible Payments Service,FPS)就是這樣一種服務,這是亞馬遜爲開發者創建的。這一服務利用了亞馬遜先進的零售計費系統。如果客戶直接從亞馬遜預定業務,客戶可以使用亞馬遜的統一身份標識、運輸方式和支付信息。

計量和計費服務包括對系統情況的動態跟蹤和報告,以及提供一系列可選的支付方式,包括一次性付款、週期費用、延遲付款和小額聚合支付。這些都可以通過應用程序接口進行設置和更改。

對於那些使用亞馬遜以外其他雲平臺的SaaS服務提供商而言,OpSource提供了一個客戶生命週期管理(Customer Lifecycle Management,CLM)的解決方案,它能夠自動爲客戶開始服務,然後通過檢測用戶使用情況和對最終用戶提供計費單據來管理客戶購買的情況。

-------------------------------

 

本文節選自《雲計算:企業實施手冊》第3章“基礎設施即服務”,瞭解更多請訪問http://product.china-pub.com/198434

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章