瞭解雲的一些基本概念

回顧我們最近的科技發展歷程,可以清晰地看出,自從分佈式計算及其相關技術(如網格計算和 SOA)被普遍採用以來,雲計算運動已應運而生。雖然雲計算已經成爲一種新興技術,但還有許多關於這一新技術的問題。本系列文章的第 1 部分將概括討論雲計算,然後剖析雲的各個層次,介紹不同的雲類型及其優缺點,並解釋爲什麼雲計算運動對企業開發人員非常重要。

來自 IBM WebSphere Developer Technical Journal。

引言
要獲得更多雲計算資源,請參閱 developerWorks 上的:
雲計算空間


什麼是雲計算?

這個問題看起來似乎是老生常談並且很簡單,但事實上卻不是這樣。目前,網上有數百(甚至數千)種雲計算定義。要全面回答此問題,在嘗試定義之前先了解什麼不是雲計算也許是更便捷的方法。

有些人說雲計算只不過是一直在 Web 2.0 運動前沿的軟件作爲服務 (SaaS) 模型的另一種稱謂。還有一些人說,雲計算是一種市場宣傳,只不過是老技術(如效用計算、虛擬化或網格計算)換了張新面孔。此觀點忽略了這樣一個事實,即雲計算比這些特定技術中的任何一個的範圍都要廣。爲了確保做到這一點,雲解決方案通常包括這些技術(和其他一些技術),但是,它是一個綜合性策略,可以將雲計算與其前代產品區分開來。

對於本文而言,我們將雲計算定義爲是一個全面解決方案,在此解決方案中,所有的計算資源(硬件、軟件、網絡、存儲等)均可根據命令指示快速提供給用戶。可以管理所提供的資源或服務,以確保可用性、安全和質量等。這些解決方案的關鍵因素是它們能夠擴展和收縮,使用戶能夠獲取正好適合他們需求的資源:既不多也不少。

簡而言之,雲計算解決方案使 IT 能夠作爲服務提供。

爲什麼要使用雲計算?

越來越多的公司轉向包括雲計算的 IT 解決方案的原因有許多。首先,雲計算可以減少與提供 IT 服務相關的成本。通過僅在需要資源時獲取資源並僅爲所需的資源付費,可以減少資本和運營成本。此外,通過減輕整個企業中與管理各種資源相關的某些負擔,您的關鍵人員可以將工作重點更多地放在創造價值和業務創新上。最後,雲計算模型可提供業務靈活性。由於可以通過擴展或收縮整個 IT 基礎結構來滿足要求,所以公司可以更加輕鬆地滿足快速改變的市場需求,確保能夠讓其客戶處於領先地位。

在許多方法中,雲計算實現了將許多現有技術(SOA、虛擬化、自動計算)與新思想相結合,從而制定完整的 IT 解決方案。


雲剖析

有了可接受的雲計算定義支持,現在我們看一下雲的各個層。圖 1 概括了雲模型的三種規則組件。該圖精確地反映了 IT 數量與成本、物理空間要求、維護、管理、管理監督和陳舊化相關的比例。另外,這些層不但可以表示雲剖析,而且還表示一般的 IT 剖析。


構成雲的各層包括:
應用程序服務

日常 Web 用戶可能最熟悉該層。該應用程序服務層駐留着適合 SaaS 模型的應用程序。它們是一些運行在雲中的應用程序,並按需求作爲服務提供給用戶。有時這些服務是免費的,提供商從網絡廣告之類的項目中生成收入,有時應用程序提供商直接從使用服務中創造收入。是不是聽起來有些耳熟?可能如此,因爲我們大家幾乎都用過它們。如果您用 Turbo Tax 在線報過稅,用 GMail 或 Yahoo Mail 查閱過您的郵件,或者用 Google Calendar 安排過約會,則一定熟悉雲的頂層。它們只是這些類型的應用程序中的兩個示例。從實際記錄上看有數千種 SaaS 應用程序,使用 Web 2.0 技術後,該數量還在日益增長。

也許公衆並不完全知道這些應用程序,這是因爲應用程序服務層中的許多應用程序都直接面向企業團體。有這樣一些託管的軟件產品:處理工資單流程、人力資源管理、協作、客戶關係管理、業務合作伙伴關係管理等。這些產品的常見示例包括:IBM® Lotus® Live、IBM Lotus Sametime®、Unyte、Salesforce.com、Sugar CRM 和 WebEx。

在這兩個用例中,通過 SaaS 模型提供的應用程序都可以讓使用者受益,他們不必安裝和維護軟件,並且這些應用程序可以通過支持使用付費概念的許可證模型來使用。
平臺服務

這是一個我們可以將應用程序基礎結構視爲一套服務的層。這包括但不僅限於中間件作爲服務、消息傳遞作爲服務、集成作爲服務、信息作爲服務、連接性作爲服務等。此處的服務主要是爲了支持應用程序。這些應用程序可以運行在雲中,並且可以運行在更加傳統的企業數據中心中。爲了實現雲內所需的可擴展性,此處提供的不同服務經常被虛擬化。本部分中關於雲的產品示例包括 IBM® WebSphere® Application Server 虛擬映像、Amazon Web Services、Boomi、Cast Iron 和 Google App Engine。平臺服務可讓使用者能夠確保基於需求提供應用程序基礎結構,並配備滿足用戶需求的應用程序。
基礎結構服務

雲的底層是基礎結構服務層。這裏,我們看到的是一套物理資產,如服務器、網絡設備,以及作爲供給服務提供給使用者的存儲磁盤。此處的服務支持應用程序基礎結構(與該基礎結構是否通過雲提供無關)和更多的使用者。對於平臺服務,虛擬化是提供按需分配資源的常用方法。基礎結構服務的示例包括:IBM BlueHouse、VMWare、Amazon EC2、Microsoft Azure Platform、Sun ParaScale Cloud Storage 等。

基礎結構服務主要通過按需分配計算能力來解決正確配備數據中心這一問題。此外,由於此層一般利用虛擬化技術,因此可以實現由更加高效的資源利用率帶來的成本節約。


公共、私有和混合雲

現在您已經瞭解了什麼是雲計算,哪些內容構成雲計算解決方案,下面讓我們看一下雲的三大主要類型。對於本文而言,我們將介紹幾個與雲計算的企業使用者相關的類型(圖 2):


公共雲是由第三方(供應商)提供的雲服務。它們在公司防火牆之外,由雲提供商完全承載和管理。

公共雲嘗試爲使用者提供無後顧之憂的 IT 元素。無論是軟件、應用程序基礎結構,還是物理基礎結構,雲提供商都負責安裝、管理、供給和維護。客戶只要爲其使用的資源付費即可,根本不存在利用率低這一問題。

但是,這要付出一些代價。這些服務通常根據“配置慣例”提供,即根據適應最常見使用的情形這一思想提供。如果資源由使用者直接控制,則配置選項一般是這些資源的一個較小子集。另一件需要記住的事情是,由於使用者幾乎無法控制基礎結構,需要嚴格安全性和法規遵從性的流程並不總能很好地適合於公共雲。
私有云是在企業內提供的雲服務。這些雲在公司防火牆之內,由企業管理。

私有云可提供公共雲所提供的許多好處,一個主要不同點是:企業負責設置和維護雲。建立內部雲的困難和成本有時難以承擔,且內部雲的持續運營成本可能會超出使用公共雲的成本。

私有云確實可提供超過公共雲的優勢。對構成雲的各種資源的較細粒度控制可爲公司提供所有的全部配置選項。此外,由於安全性和法規問題,當要執行的工作類型對公共雲不實用時,用私有云比較合適。
混合雲是公共雲和私有云的混合。這些雲一般由企業創建,而管理職責由企業和公共雲提供商分擔。混合雲利用既在公共空間又在私有空間中的服務。

當公司需要使用既是公共雲又是私有云的服務時,選擇混合雲比較合適。從這個意義上說,公司可以列出服務目標和需要,然後相應地從公共或私有云中獲取。結構完好的混合雲可以爲安全、至關重要的流程(如接收客戶支付)以及輔助業務流程(如員工工資單流程)提供服務。

該雲的主要缺陷是很難有效創建和管理此類解決方案。必須獲取來自不同源的服務並且必須像源自單一位置那樣進行供給,並且私有和公共組件之間的交互會使實施更加複雜。由於這是雲計算中一個相對新穎的體系結構概念,因此有關此模式的最佳實踐和工具將繼續出現,但是在對其進行更多瞭解之前,一般都不太願意採用此模型。


SOA 和雲計算

雲計算的前代產品是一些爲數衆多且廣爲人知的技術。它們有效用計算、網格計算、虛擬化、管理程序和大量其他計算。雲計算不是總能(但實際上應該)談到的一種技術概念是 SOA。面向服務的體系結構在雲計算髮展到今天這種情況方面起了一定的作用,同時它還應該在雲計算髮展方面發揮着舉足輕重的作用。

在許多方面,雲計算可被視爲 SOA 後應用程序的擴展,並且已進入了應用程序和物理基礎結構。由於企業和雲提供商在尋求提供雲解決方案,其基本目標就是將企業 IT 基礎結構作爲一種服務來提供。還應該總結集成和將企業應用程序作爲離散服務所得到的經驗教訓,因爲基礎結構層也作爲服務來組織和提供。該應用程序和物理基礎結構(非常類似於 SOA 中的應用程序)必須是可發現、可管理和可支配的。在理想情況下(非常類似於 SOA),規定如何發現、使用、管理和支配服務的開放標準將不斷髮展。這些標準將概括雲解決方案的整個生命週期。

圖 3 記錄了三層雲方法的觀點,並顯示了其中的每個層如何從根本上向整個 SOA 提供服務。在某些情況下,兩個底層的服務作爲 SOA 的一部分提供,但是,重要的是認識該雲所有層基於服務的方法。


雲與開發

如果您是一名軟件開發人員或測試人員,可能會認爲所有這些聽起來很不錯,但是不太確定這是否與您有關。畢竟,這是針對管理人員的,不是嗎?這是常見的第一個觀點,但是沒有考慮到雲計算可以爲開發和測試團隊帶來的明顯優勢。

例如,在測試和開發方面的最大障礙是能否獲取、部署、配置和承載在其中執行開發單元測試、原型設計和完整產品測試的環境。雲計算解決方案可用來快速創建和承載此類環境,從而減輕測試和開發團隊的負擔,將問題放在雲領域中。對於開發團隊來說,這意味着諸如持續不斷的代碼集成和原型設計工作將變得更加便於執行,因爲對產品更新和新代碼的測試相對來說比較輕鬆。對於測試團隊來說,可以將更多的時間用於測試產品質量,用較少的時間來支持測試。

除了爲開發團隊提供運行時環境外,還有另外一個直接面向開發人員的雲領域。工具作爲服務是 SaaS 的子集,是可以在雲中提供開發工具的思想。IDE 和簡單代碼編輯器將成爲開發人員使用 Internet 連接訪問的承載軟件。這樣,開發人員就不必在其所有的每臺計算機上都持有本地 IDE 和相應的許可證。作爲一名開發人員,您可能知道能夠從任何計算機上隨時訪問一般開發環境的潛在價值。

雲計算對開發人員還有另外一種影響。如果條件成熟,要不失時機地倡導開發人員採用標準編程模型 API。所有開發人員都力爭成爲模型編程員,因而恪守標準,但是多數人可能會時不時地偏離標準。偏離標準也許是因爲專有的 API 爲您提供了諸如性能之類的切實好處;而在其他情況下,或許您只想“追求實用”。在雲中,與標準 API 的任何偏離都特別危險,而其原因也相當明瞭。儘管使用者知道他們從雲提供商那裏獲得所請求的服務,但他們可能不知道該服務的實現細節。

例如,假定從一個雲提供商那裏請求 J2EE™ 應用服務器服務。該雲提供商提供應用服務器服務,但您可能完全不知道接收供應商的哪個服務器,除非您與該提供商簽署了具體的協議。您選擇部署到提供的服務器的任何應用程序都不應受到特定於供應商代碼的限制,因爲您最終可能會遇到始料未及的應用服務器實現。


針對雲的工具

上面提到的雲計算中的主要組件是工具。在許多方面,這對雲計算解決方案的成功至關重要。在市場上有一種提供雲解決方案的重要技術,但是,這些技術往往因缺少完整、可理解的工具而難以付諸實施。

考慮雲中的應用程序服務層。此層中的工具可以提供一個可幫助雲應用程序開發的環境,並且應該提供打包和將應用程序部署到雲基礎結構中的方法。我們知道,已經有許多符合所述要求的此類工具,但問題是,這些工具幾乎都與雲提供商的基礎結構聯繫在一起。開放標準是從此工具中獲得最大功能和靈活性的關鍵。每當開發人員改變雲基礎結構時,他們無法支付學習新工具導致的成本;另外,開發團隊也不會不斷地支付因轉換雲基礎結構而導致重寫應用程序的成本。因此,該工具必須以能使完成的項目跨多個雲基礎結構移植的方式幫助應用程序開發、打包和部署。

工具在基礎結構服務層中也擔當着非常重要的角色。爲雲構建基礎結構並不是一個無足輕重的流程。對於雲提供商來說,所有的物理資產,無論該提供商是內部還是外部的都需要考慮,以便將正確的物理資源分配給雲。此空間中的工具應該幫助公司虛擬化其 IT 資產,以便爲該雲考慮到所有資源。但是,僅向雲構建者提供資產虛擬化還不夠。此空間中的工具還應爲創建雲提供某些智能。過去,IT 管理員的一項艱苦工作就是嘗試將預期的要求與物理資源進行匹配。這已帶來了資源利用不足的問題,此問題成了雲的有力催化劑。工具必須基於期望的系統需求特徵指導用戶完成雲的物理組成。



總結

在目前和可預知的未來,雲計算將在技術行業中扮演非常重要的角色。最終,它會將 IT 作爲服務提供給使用者。雲計算空間中產品和服務的數量將持續增長,而且這也是大勢所趨。我們非常高興雲計算給我們的 WebSphere 開發人員帶來的機會,在後續的文章中,我們將討論這些機會是什麼,並瞭解一些將雲計算從概念轉化爲企業利潤回報的 WebSphere 解決方案。

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