面向企業的雲端計算—瞭解雲的一些基本概念

CloudSpace發表於2009-07-30

作者:Dustin Amrhein, 軟體工程師, IBM
Scott Quint, 雲端計算技術推廣人, IBM

引言

要獲得更多雲端計算資源,請參閱 developerWorks 上的:

什麼是雲端計算?

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

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

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

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

為什麼要使用雲端計算?

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

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

雲剖析

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


圖 1. 雲剖析
圖 1. 雲剖析

構成雲的各層包括:

  • 應用程式服務

    日常 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):


    圖 2. 雲型別
    圖 2. 雲型別

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

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

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

    • 私有云是在企業內提供的雲服務。這些雲在公司防火牆之內,由企業管理。

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

      私有云確實可提供超過公共雲的優勢。對構成雲的各種資源的較細粒度控制可為公司提供所有的全部配置選項。此外,由於安全性和法規問題,當要執行的工作型別對公共雲不實用時,用私有云比較合適。

    • 混合雲是公共雲和私有云的混合。這些雲一般由企業建立,而管理職責由企業和公共雲提供商分擔。混合雲利用既在公共空間又在私有空間中的服務。

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

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

      SOA 和雲端計算

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

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

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


      圖 3. 雲服務
      圖 3. 雲服務

      雲與開發

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

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

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

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

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

      針對雲的工具

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

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

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

      總結

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-610832/,如需轉載,請註明出處,否則將追究法律責任。

相關文章