云計算服務模型,第 1 部分: 基礎架構即服務(IaaS)
英文原文:Cloud computing service models, Part 1: Infrastructure as a Service
本文介紹三個云類別中的第一個:基礎架構即服務(infrastructure as a service,IaaS)。IaaS 的一些關鍵概念包括:
- 云爆發(cloudbursting)
- 多租戶計算(multi-tenant computing )
- 資源共用(resources pooling)
- 虛擬機監控程序(hypervisor)
最重要的是了解 IaaS 與眾不同的兩個方面:彈性和虛擬化。
IaaS 的價值
對于企業而言,IaaS 的巨大價值通過云爆發(cloudbursting) 概念實現 — 云爆發是指當需要的計算資源最多時將任務卸載到云環境的過程。云爆發促成的資本節約潛力巨大,因為企業無需額外投資利用率很低的服務器,那些服務器一年中只有兩三次使用 70% 的容量,其余時間僅有 7-10% 的負荷。
但是,對于要在這方面利用 IaaS 優勢的企業而言,IT 部門必須能夠構建和實現能夠將一些流程重新分配到一個 IaaS 云的軟件。要構建和實現能夠管理這種再分配流程的軟件,需要考慮 4 個重要事項:
- 事實證明,如果某個供應商可能會停業,那么針對該供應商的專有 IaaS 進行開發將是一個代價不菲的錯誤。
- 編寫良好的資源分配軟件通常比較復雜,需要頂尖的開發人員資源,這種資源的成本不會低廉。預先為您能找到的最好資源準備更多預算將為您自己和您的組織節約大量時間、減少挫折并消除預料之外的費用。
- 您需要將什么發送到云并在云中處理?將個人身份、財務信息和醫療保健之類的數據發送到云將使您面臨違反美國 Sarbanes-Oxley (SOX) Act、Payment Card Industry (PCI) 或 Health Insurance Portability and Accountability Act (HIPAA) 法規的風險。
- 務必理解轉移企業日常運營關鍵流程的危險。一個好主意是事先繪制一張包含三列的表,第一列是涉及合規性關鍵數據的流程,第二列是涉及業務關鍵任務的流程,第三列是涉及非關鍵任務的流程。然后,計劃在第一階段只讓軟件卸載第三列中的項目。
另外,組織需要注意云計算市場的供應商鎖定(lock-in)狀態。擁有可以從數據中心移動到云環境和在供應商的云之間移動的虛擬機(VM)對于企業而言可能是一種資產,但這需要供應商支持一種標準文件格式,而供應商通常不愿意那樣做。
而實際情況是,目前沒有一種公開規范或位于一個標準組織之下的規范。換句話說,目前沒有一種真正標準化的格式,這種情況的結果至多是使事情變得復雜,原因是沒有人保證您的構建基于的格式將來會受到支持。但是,有一點值得注意,假如這種新格式的規范是公開的,或者您擁有訪問它的權限,那么將一種虛擬設備移植到另一種格式通常是可行的。令人感到欣慰的是,最近在對 Open Virtualization Format (OVF) 的支持方面取得了重大進展,OVF 很有可能成為標準 。另一個有希望的候選項是 Virtual Machine Disk (VMDK) 格式。VMDK 最初是 VMware 的一種專有格式,但現在它公開了,并受到了幾個第三方組織的支持。
基礎架構即資產
為展示云計算的演變過程,我們來回顧一下汽車工業在過去 50 年內的發展歷程。在上世紀 60 年代到 70 年代,汽車制造商的相對優勢完全取決于馬力和扭矩。但是,到了 80 年代,事實證明這種模式不利于市場和環境,這迫使模式從基礎架構即資產轉移到基礎架構即服務。
類似地,大量成功的公司在過去 50 年之內花費大量寶貴時間和資源來構建基礎架構,其目標是通過創建一個更大、更快、更強的網絡來獲取戰勝其競爭對手的競爭優勢。IT 行業中的 “基礎架構即資產” 范式擁有上世紀六七十年代的 “暴力跑車(muscle cars )” 所擁有的相同或類似的低效率和不利特征。對于企業計算,這些低效率包括:
- 大量未使用的計算能力和容量,它們耗費的成本與大型、昂貴的數據中心中的硬件消耗的大量空間相關聯。
- 昂貴的人力資源需求,包括要求基礎架構資產(服務器、路由器、交換機等)所在的數據中心的網絡管理員進行 24 小時監控。
- 旨在應對高水平能源浪費的 Green Computing 計劃的一個巨大障礙。
為幫助您理解云計算的這三個類別,我創建了一個跨概念矩陣供您參考(參見表1)。范式(paradigm)是大多數用戶遵循的模式。如前所述,IaaS 標志著從 “基礎架構即資產” 到 “基礎架構即服務” 的轉變。云計算的其他兩個類別(見表1)也標志著范式轉變。對于 Platform as a Service (PaaS),轉變來自 “平臺即資產” 范式,該范式的特征是大量采購許可。同樣的轉變也適用 Software as a Service (SaaS),這種轉變是從 “軟件以許可形式作為組織資產” 到 “軟件以服務形式提供”。本系列第 2 和第 3 部分將分別討論 PaaS 和 SaaS。
范式轉變 | 特征 | 關鍵詞 | 優勢 | 劣勢和風險 | 不適用時間 | |
---|---|---|---|---|---|---|
IaaS | Infrastructure as an asset | 通常獨立于平臺;基礎架構成本被共享從而減少;SLAs;根據使用情況付費;自我伸縮 | 網格計算、效用計算、計算實例、虛擬機監控程序、云爆發、多租戶計算、資源共用 | 避免硬件和人力資源上的資本投入;ROI 風險減小;準入門檻低;簡化和自動化的伸縮 | 業務效率和生產力極大地依賴供應商的能力;長期成本可能更高;集中化需要新的/不同的安全措施 | 當資本預算大于經營預算時 |
PaaS | 許可采購 | 使用云基礎架構;服務敏捷項目管理方法 | 解決方案堆棧 | 簡化了的版本部署 | 集中化需要新的/不同的安全措施 | N/A |
SaaS | Software as an asset(企業和消費者) | SLA;瘦客戶機應用程序驅動的 UI;云組件;通過 API 通信;無狀態;松散耦合;模塊化;語義互操作性 | 瘦客戶機;客戶機-服務器應用程序 | 避免軟件和開發資源上的資本投入;ROI 風險減小;簡化和迭代的更新 | 集中化需要新的/不同的安全措施 | N/A |
IaaS 的主要方面
與其將互聯網想象成一個單一的全球云,不如將其想象為由許多云組成的一個系統(比如一個暴風雨云)可能更準確。通過這種比喻,就可以從邏輯上斷定:閃電是云際通信的天氣系統等價物。假設那些云以一種系統方式相互交互,創建一個單一結果:互聯網,從這個意義上講,上述比喻可能更準確。
但互聯網不太可能只由一個云組成——至少在不遠的將來不太可能——原因是云計算標準缺乏,且企業也沒有進行長期投資以消除供應商鎖定的明顯嘗試。不管怎樣,如果它不是有利于資本主義精神的創新,云計算也無法發展到今天的程度。也許有一天,互聯網真的能成為一個單一、互聯的云,在那個云中:虛擬機可以輕松轉移到 “那個云”,而不必擔心文件格式;互聯的 VM 集群可以跨服務提供商得到管理——只需通過一個界面即可實現。但在此之前,我們還是認為互聯網由很多云組成。( 具有諷刺意味的是,我正在使用 Apple MobileMe 云來存儲這篇文章,這樣我才能跨幾個設備處理它。)
彈性是 IaaS 的首要關鍵方面。為了闡述彈性的概念,我需要您展開想象。假設云由一些粘在一起的棉花糖簇組成,這樣人們就可以坐在它們上面。每個棉花糖都能承載一定數量的人,具體取決于組成云的棉花糖簇的數量和那些簇中包含的棉花糖的數量。隨著越來越多的人登上棉花糖云,您可以通過粘貼更多的棉花糖來擴展棉花糖簇,增加表面面積。您可能已經明白,人代表需要計算資源的應用程序,比如承載網站并運行軟件的資源。棉花糖簇代表 VM 集群,每個棉花糖代表一個 VM。
盡管這聽起來有點像 Seuss 博士的書中可能出現的內容,但它提供了一種方法來理解許多黑魔法(dark art)考慮的一個概念:彈性集群化(elastic clustering)。集群化幾個物理服務器來形成一個虛擬云稱為云集群化(cloud clustering),如果它真是一種黑魔法,則精通程度通過一位藝術家的系統設計的可伸縮性來衡量。
我們來看一個例子。假設您是一位為美國政府工作的統計研究員。政府有點人手不足,您剛剛接受一個任務,需要編輯最近的美國人口統計的所有數據。您負責制定必要的統計數據,以便議會能夠制定關于經濟恢復資金分配和從現在起三天內的稅收金額的重要決策。毋庸諱言,這是一項非常重要的工作,您的時間有點緊張。而且,您必須處理的數據量簡直是個天文數字,您剛剛發現,編輯那些統計數據需要的計算資源需要 IT 部門三周時間才能準備好!
這種問題正是您可以使用 IaaS 輕松緩解的。事實上,使用 IaaS,您可以在一小時之內完成全美人口普查數據分析。您首先創建一個服務器的單個實例,這個服務器包含在數據上運行查詢需要的數據庫軟件。這個實例稱為一個映像。
當您部署映像并將數據導入數據庫之后,就可以根據需要復制那個映像任意多次,并開始運行您的數據處理任務。當任務運行時,您可以手動或自動添加和移除資源。例如,如果計算任務的運行速度不夠快,只需將更多機器實例副本添加到集群。
理解彈性概念之后,現在我們來看看 IaaS 的第二個主要方面:虛擬化。
Sergey Brin 和 Larry Page——Google 的創始人——早在 1995 年就有了正確的想法,當時他們每天晚上都在斯坦福大學的計算機科學大樓后面的廢料箱里翻檢,找出被人忽略的計算機零件。他們將那些隨意的、基于 x86 的計算機零件帶回宿舍,將它們添加到托管具有傳奇色彩的 “爬網蛛” 的 Frankenstein 機器上,爬網蛛——兩次——記錄下了斯坦福市的整個網絡 。
今天,Google 預計在 12 個主要數據中心擁有超過 100 萬臺 x86 服務器,在各大洲擁有約 20 個小型數據中心。那是一個非常大的云。兩個系統設計關鍵因素曾在 1995 年允許他們伸縮他們的 “宿舍怪獸”,而它們仍然適用今天的 Google 網絡中的一百多萬臺服務器。直到今天,Google 仍然繼續使用廉價的 x86 零件,而不是許多公司數據中心中昂貴得多的企業服務器組件。其次,故障轉移、冗余性、監控、集群化和其他基礎架構管理任務通過在操作系統層之下運行的一個虛擬系統來處理,而不是使用負載平衡器之類的獨立硬件來處理類似任務。
IaaS 很容易定位,因為它通常是獨立于平臺的。IaaS 有一個硬件和軟件資源組合組成。IaaS 軟件是低級代碼,獨立于操作系統運行——稱為虛擬機監控程序——并負責管理硬件資源的庫存并根據需要分配上述資源(見圖1)。這個過程稱為資源共用(resource pooling)。 虛擬機監控程序實現的資源共用使得虛擬化成為可能,虛擬化使多租戶計算(multi-tenant computing) 成為可能——多租戶計算概念指由幾個組織共享的一個基礎架構,這些組織在安全需求和遵從性問題方面有類似的興趣。
通過 IaaS,您擁有提供處理、存儲、網絡和其他計算資源的能力,您可以在那里部署和運行任意軟件,比如操作系統和應用程序。大多數云計算用例遵循您已經習慣的基礎分層結構:一個軟件解決方案堆棧或平臺被部署在一個網絡基礎架構上,一些應用程序在那個平臺之上運行。但是,虛擬化使得云范式獨一無二。
結束語
在本文中,您了解了云計算的許多原則,IaaS 的架構,以及云計算如何用于一個真實場景。本系列第二篇文章將深入第二個主要的云計算類別:PaaS。在此期間,請查看參考資料部分的鏈接,了解關于 IaaS 的更多信息。
參考資料
- Grace Walker 的 developerWorks 文章 “云計算基礎” 是一個不錯的云計算簡介。
- 查看 Cloudscaling 的 IaaS 購買者指南。
- Wikipedia 詳細提供了 云計算背景知識。
- 查看 Eweek.com 的 使用 IaaS 的公司調查。
- 當今有許多公司正在提供 IaaS。下面是兩個主要的提供商:
- 探索 developerWorks 云計算專區,其中包括寶貴的社區討論和關于云的新技術資源。
- 在 IBM 智能業務云計算 中,獲取寶貴的業務建議,增強云中的性能和效率。
- 閱讀 Cloud Computing—A Primer,了解云計算基本知識。
- 觀看 developerWorks 演示中心,包括面向初學者的產品安裝和設置演示,以及為經驗豐富的開發人員提供的高級功能。
關于作者
Dan Orlando 是企業開發社區一位公認的領袖。Dan 長期擔任顧問,他在 Adobe 技術平臺方面的專業技術經常受到工業領袖和 IBM developerWorks、Adobe Developer Connection 和 Amazon Web Services 等出版物的引用。Dan 還定期在 DanOrlando.com 撰寫博客。