本節書摘來華章計算機《雲計算:概念、技術與架構》一書中的第3章 ,第3.1節,(美)thomas erl (英)zaigham mahmood 著 (巴西)ricardo puttini 龔奕利 賀 蓮 胡 創 譯更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
3.1.1 簡要曆史
“雲”中計算的想法可以追溯到效用計算的起源,這個概念是計算機科學家john mccarthy在1961年公開提出的:
“如果我倡導的計算機能在未來得到使用,那麼有一天,計算也可能像電話一樣成為公用設施。……計算機應用(computer utility)将成為一種全新的、重要的産業的基礎。”
1969年,arpanet項目(advanced research project agency network,apranet,為internet的前身)的首席科學家leonard kleinrock表示:
“現在,計算機網絡還處于初期階段,但是随着網絡的進步和複雜化,我們将可能看到‘計算機應用’的擴充……”
從20世紀90年代中期開始,普通大衆已經開始以各種形式使用基于internet的計算機應用,比如:搜尋引擎(yahoo!、google)、電子郵件(hotmail、gmail)、開放的釋出平台(myspace、facebook、youtube),以及其他類型的社交媒體(twitter、linkedin)。雖然這些服務是以使用者為中心的,但是它們普及并且驗證了形成現代雲計算基礎的核心概念。
20世紀90年代後期,salesforce.com率先在企業中引入遠端提供服務的概念。2002年,amazon.com啟用amazon web服務(amazon web service,aws)平台,該平台是一套面向企業的服務,提供遠端配置存儲、計算資源以及業務功能。
20世紀90年代早期,在整個網絡行業出現了“網絡雲”或“雲”這一術語,但其含義與現在的略有不同。它是指異構公共或半公共網絡中資料傳輸方式派生出的一個抽象層,雖然蜂窩網絡也使用“雲”這個術語,但是這些網絡主要使用分組交換。此時,組網方式支援資料從一個端點(本地網絡)傳輸到“雲”(廣域網),然後繼續傳遞到特定端點。由于網絡行業仍然引用“雲”這個術語,是以,這是相關的,并且被認為是較早采用的奠定效能計算基礎的概念。
直到2006年,“雲計算”這一術語才出現在商業領域。在這個時期,amazon推出其彈性計算雲(elastic compute cloud,ec2)服務,使得企業通過“租賃”計算容量和處理能力來運作其企業應用程式。同年,google apps也推出了基于浏覽器的企業應用服務。三年後,google應用引擎(google app engine)成為了另一個裡程碑。
gartner公司在其報告中将雲計算放在戰略技術領域的前沿,進一步重申了雲計算是整個行業的發展趨勢。在這份報告中,gartner公司将雲計算正式定義為:
“……一種計算方式,能通過internet技術将可擴充的和彈性的it能力作為服務傳遞給外部使用者。”
這個定義對gartner公司2008年的原始定義做了一點修訂,将原來的“大規模可擴充性”修改為“可擴充的和彈性的”。這表明了可擴充性與垂直擴充能力相關的重要性,而不僅僅與規模龐大相關。
forrester research公司将雲計算定義為:
“……一種标準化的it性能(服務、軟體或者基礎設施),以按使用付費和自助服務方式,通過internet技術進行傳遞。”
該定義被業界廣泛接受,它是由美國國家标準與技術研究院(nist)制定的。早在2009年,nist就公布了其對雲計算的原始定義,随後在2011年9月,根據進一步評審和企業意見,釋出了修訂版定義:
“雲計算是一種模型,可以實作随時随地、便捷地、按需地從可配置計算資源共享池中擷取所需的資源(例如,網絡、伺服器、存儲、應用程式及服務),資源可以快速供給和釋放,使管理的工作量和服務提供者的介入降低至最少。這種雲模型由五個基本特征、三種服務模型和四種部署模型構成。”
本書給出了雲計算更為簡潔的定義:
“雲計算是分布式計算的一種特殊形式,它引入效用模型來遠端供給可擴充和可測量的資源。”
這個簡化定義與之前雲計算行業中其他組織定義的版本是一緻的。nist定義中提到的特性、服務模型與部署模型将在第4章中進一步讨論。
在深入探究層層雲技術之前,首先要了解導緻行業上司者進行創造的動機。本節将要介紹若幹激勵現代雲技術的主要商業驅動力。
後續章節中闡述了各種特性、模型與機制,它們的起源和靈感都來源于下面将要介紹的商業驅動力。這些驅動力從兩端影響着雲的形成和整個雲計算市場,注意到這一點是很重要的。它們促使企業為了支援其自動化需求而采用雲計算。同時它們也使得其他組織成為雲環境和技術的提供者,創造并滿足使用者需求。
1..容量規劃
容量規劃是确定和滿足一個組織未來對it資源、産品和服務需求的過程。這裡的“容量”(capacity)是指在一段給定時間内,一個it資源能夠提供的最大工作量。it資源容量與其需求之間的差異會導緻系統效率低下(過度配置)或是無法滿足使用者需求(配置不足)。容量規劃的重點就是将這個差異最小化,以便系統獲得預期的效率和性能。
容量規劃政策分為如下三種類型:
領先政策(lead strategy)——根據預期增加it資源的容量。
滞後政策(lag strategy)——當it資源達到其最大容量時增加資源容量。
比對政策(match strategy)——當需求增加時,小幅增加it資源容量。
由于需要估計“使用負載”的變化,是以,容量規劃頗具挑戰性。在不過度配置基礎設施的同時,要不斷平衡峰值使用需求。比如,若按照最大使用負載配置it資源,就會出現不合理的資金投入。反之,有限的投資就會導緻配置不足,導緻由于使用限度降低而出現交易損失和使用受限。
2..降低成本
it成本與業務性能之間的恰好平衡是很難保持的。it環境的擴充總是與對其最大使用需求的評估相對應,這可以讓不斷增加的投資自動支援新的、擴充的業務。大部分所需資金都注入到基礎設施的擴建中,這是因為,給定的自動化解決方案的使用潛力總是受限于底層基礎設施的處理能力。
需要考慮的成本分為兩種:獲得新基礎設施的成本和保有其所有權的成本。營運開銷在it預算中占了相當大一部分,往往超過了前期投資成本。
常見的與基礎設施相關的營運成本有如下幾種形式:
為保證環境正常運作所需的技術人員。
引入額外測試和部署周期的更新和更新檔。
電源和制冷所需的水電費和資金支出。
維護和加強基礎設施資源保護的安全和通路控制措施。
為跟蹤許可證和支援部署安排所需要的行政和财務人員。
持續的内部技術基礎設施所有權帶來的是沉重責任,這會對企業預算造成多重影響。是以,it部門可能成為一個主要的——有時甚至是絕對的——花錢部門,它能潛在地抑制企業的反應能力、盈利能力和總體發展。
3..組織靈活性
企業需要有适應和進步的能力,以便成功應對由于各種因素而導緻的變化。組織靈活性是組織對變化響應程度的衡量。
it企業常常需要應對行業變化,通常采取的措施是在原來預期或計劃的it資源規模上進行擴充。比如,若預算不足,使得原來的容量規劃打了折扣,那麼即使預見到使用波動,不足的基礎設施也可能妨礙組織對此作出響應。
在其他情況下,變化的業務需求和優先級也會要求it資源具備更高的可用性和可靠性。比如,即使有足夠的基礎設施來應對預期的使用波動,也可能由于應用自身的特點降低托管伺服器的性能,造成運作異常。由于在基礎設施内缺乏可靠性控制,那麼,對使用者或使用者需求的響應可能會導緻業務的持續性受到威脅。
從更廣泛的範圍來說,采用新的或是擴充業務自動化解決方案,所需要的預付投資以及基礎設施所有權成本可能會使企業望而卻步。企業會勉強接受差強人意的it基礎設施品質,因而降低企業滿足現實世界需求的能力。
更糟的是,企業在審查其基礎設施預算後,可能決定完全不采用自動化解決方案,原因非常簡單,那就是企業無法負擔該預算。但是,這種無法應對的結果将使得企業無法緊跟市場需求、對抗競争壓力以及實作其戰略目标。
成熟技術通常是新技術創新的靈感來源,它是新技術創新衍生和建立的實際基礎。本節簡要介紹了對雲計算産生主要影響的前期技術。
1..叢集化
叢集是一組互聯的獨立it資源,以整體形式工作。由于叢集固有的備援和容錯特性,當其可用性和可靠性提高時,系統故障率就會降低。
硬體叢集的一個必備條件是,它的元件系統由基本相同的硬體和作業系統構成。這樣,當一個故障元件被其他元件替代後,叢集仍能達到差不多的性能水準。構成叢集的元件裝置通過專用的高速通信鍊路來保持同步。
内置備援和故障轉移是雲平台的核心概念。在第8章中,叢集概念将作為資源叢集(resource cluster)機制的一部分來進一步讨論。
2.網格計算
計算網格(或“計算的網格”)為計算資源提供了一個平台,使其能組織成一個或多個邏輯池。這些邏輯池統一協調為一個高性能分布式網格,有時也稱為“超級虛拟計算機”。網格計算與叢集的差別在于,網格系統更加松耦合,更加分散。是以,網格計算系統可以包含異構的,且處于不同地理位置的計算資源,而叢集計算系統一般不具備這種特性。
從20世紀90年代早期開始,網格計算作為計算科學的一部分,其研究工作一直持續着。網格計算項目取得的技術成就影響了雲計算平台和機制的方方面面,尤其是通用特性,比如網絡接入、資源池、可擴充性和可恢複性。這些特性均以各自特有的形式呈現在網格計算和雲計算中。
比如,網格計算以中間件層為基礎,這個中間件層是在計算資源上部署的。這些it資源構成一個網格池,實作一系列負載配置設定和協調功能。中間層可以包含負載均衡邏輯、故障轉移控制和自動配置管理,這些都啟發了類似的——有些甚至是更複雜的——雲計算技術。是以,有些觀點認為雲計算是早期網格計算的衍生品。
3.虛拟化
虛拟化是一個技術平台,用于建立it資源的虛拟執行個體。虛拟化軟體層允許實體it資源提供自身的多個虛拟映像,這樣多個使用者就可以共享它們的底層處理能力。
虛拟化技術出現之前,軟體隻能被綁定在靜态硬體環境中。而虛拟化則打斷了這種軟硬體之間的依賴性,因為在虛拟化環境中運作的仿真軟體可以模拟對硬體的需求。
在一些雲特性和雲計算機制中能發現現有的虛拟化技術的影子,這些技術啟發了雲計算的某些核心特性。随着雲計算的演化,出現了現代虛拟化技術,這些技術克服了傳統虛拟化平台在性能、可靠性和可擴充性等方面的局限性。
作為當代雲技術的基礎,現代虛拟化技術提供了各種虛拟化類型和技術層次,具體内容将在第5章中分别進行讨論。
4.技術創新與使能技術
還有其他幾個技術也很重要,它們一直都影響着現代雲平台技術。這就是雲使能技術(cloud-enabling technology),第5章将具體讨論其中的内容:
寬帶網絡和internet架構
資料中心技術
(現代)虛拟化技術
web技術
多租戶技術
服務技術
在雲計算正式出現之前,每種雲使能技術都以某種形式存在着。随着雲計算的演進,有些技術更加精進了,而有些技術則被重新定義了。
