Linux 上的雲端運算

來源:互聯網
上載者:User

雲端運算平台和應用

文檔選項

列印本頁

英文原文

層級: 初級

M. Tim Jones, 顧問工程師, Emulex Corp.

2008 年 9 月 10 日
更新 2009 年 3 月 09 日

雲端運算和儲存通過 Internet 將實體資源(比如處理器和儲存空間)轉換成可伸縮的共用資源(將雲端運算和儲存作為 “服務”)。儘管虛擬化不是一個新概念,但是通過伺服器虛擬化共用物理系統使得雲端運算和儲存更加高效、伸縮性更強。通過雲端運算,使用者可以訪問大量的計算和儲存資源,並且不必關心它們的位置和它們是如何配置的。正如您所料,Linux 在這個過程中扮演了重要的角色。探索雲端運算,瞭解其中的奧秘。[通過最新 參考資料 連結從 developerWorks 上獲得關於雲端運算的最新內容。]

最近,沒有哪家技術性網站不提到所謂的雲端運算的。雲端運算其實就是以服務的形式提供計算資源(電腦和儲存)。這又涉及到以一種簡單、透明的方式動態地將服務延伸到更多的電腦和儲存的能力。所有這些都類似於效用計算(utility computing)背後的思想。在效用計算中,計算資源被看作一種計量服務,就像更傳統的公用設施(例如水或電)一樣。它們的區別不在於這些思想背後的目標,而在於組合到一起、使這些思想成為現實的現有技術。

雲端運算背後最重要的概念之一就是延展性,而實現它的關鍵則是虛擬化(virtualization)。虛擬化在一台共用電腦上聚集多個作業系統和應用程式,以便更好地利用伺服器。虛擬化還允許線上遷移,因此,當一個伺服器超載時,可以將一個作業系統的一個執行個體(以及它的應用程式)遷移到一個新的、不那麼繁忙的伺服器上。

IBM 和 Amazon Web Services

雲端運算提供一種在虛擬環境中開發應用程式的方法,該環境的計算能力、頻寬、儲存、安全和可靠性都不成問題 — 您不需要在自己的系統上安裝軟體。在虛擬雲端運算環境中,可以開發、部署和管理應用程式,您僅需支付所使用的時間和容量,但這使您能夠根據不斷變化的業務需求調整應用程式。

IBM 和 Amazon Web Services 進行合作,讓您能夠在 Amazon Elastic Compute Cloud (EC2) 虛擬環境中使用 IBM 軟體產品。我們在 EC2 上提供的軟體產品包括:

  • DB2 Express-C 9.5
  • Informix Dynamic Server Developer Edition 11.5
  • WebSphere Portal Server and Lotus Web Content Management Standard Edition
  • WebSphere sMash

這是產品層級的代碼,其中的所有特性和選項都是可用的。從 IBM developerWorks Cloud Computing Resource Center 瞭解更多資訊,並下載運行這些產品的 Amazon Machine Images。

要獲得更多關於雲端運算的資源,請參見 developerWorks 上的 Cloud Computing for Developers space。

從外部看,雲端運算只是將計算和儲存資源從企業遷出,並遷入到雲中。使用者定義資源需求(例如計算和廣域網路、頻寬需求),雲提供者在它的基礎設施中虛擬地裝配這些組件, 1 所示。

圖 1. 雲端運算在 Internet 中遷移資源

但是,為什麼您會心甘情願地放棄對自己資源的控制,而讓它們虛擬地存在於雲中呢?原因有很多,但我相信最重要的兩個原因是成本和延展性。雲端運算的目標是使這些資源比您自己所能提供和管理的資源更廉價。雲端運算除了降低成本外,還有更大的靈活性和延展性。雲端運算提供者可以輕鬆地擴充虛擬環境,以通過提供者的虛擬基礎設施提供更大的頻寬或計算資源。

雲端運算在環保方面的優勢是,它可以在不同的應用程式之間虛擬化和共用資源,以提高伺服器的利用率。圖 2 顯示了一個例子。在這個例子中,不同的應用程式使用了 3 個獨立的平台,每個應用程式都在它自己的伺服器上運行。在雲中,可以在多個作業系統和應用程式之間共用(虛擬化)伺服器,從而減少伺服器的數量。更少的伺服器意味著需要更少的空間(減少資料中心佔用的空間)和更少用於製冷的電力(減少碳汙染)。

圖 2. 虛擬化和資源使用

但是,有得必有失,雲端運算並非沒有缺點。本文後面會探索其中的一些問題。但是現在,讓我們更深入地探究雲端運算。

雲端運算剖析

當您深入觀察雲時,您會發現,它實際上並不是一個單獨的服務,而是一個服務集合, 3 所示。這些層定義了提供的服務的層級。

圖 3. 雲端運算的層次

我們從最低級的服務開始,即基礎設施(Infrastructure-as-a-Service 或 IaaS)。IaaS 就是將基礎設施(計算資源和儲存)作為服務出租。這意味著虛擬電腦不僅具有有保證的處理能力,而且為儲存和 網際網路存取預留了頻寬。實際上,IaaS 具有在有特定服務品質約束的情況下出租電腦或資料中心的能力,使之能執行任意作業系統和軟體。

雲端運算的價值

除了減少與雲端運算資源相關的管理成本外,雲端運算還有其他優點。例如,當您通過 Internet 將自己與自己的資源分離開時,那些資源在哪裡並不重要。又如,它們可以在一個可自然製冷的環境中,從而減少能耗。

順著棧往上看,上一級的服務是平台(Platform-as-a-Service 或 PaaS)。PaaS 類似於 IaaS,但是它包括作業系統和圍繞特定應用的必需的服務。例如,除了虛擬伺服器和儲存外,PaaS 還提供一個特定的作業系統和應用程式集(通常是作為一個虛擬機器,即 VM,或檔案,例如 VMware 的 .vmdk 格式),以及對必要的服務(例如 MySQL 資料庫或其他專用本地資源)的訪問。換句話說,PaaS 就是 IaaS 加上一個用於給定應用的定製軟體棧。

最後,在 圖 3 頂部是可以提供的最簡單的服務:應用程式。這一層被稱作 Software-as-a-Service(SaaS),它是從一個集中的系統部署軟體,使之在一台本機電腦上(或從雲中遠程地)啟動並執行一個模型。由於是計量服務,SaaS 允許出租一個應用程式,並計時收費。

這是高度概括的雲端運算的視圖。這個視圖忽略了雲的其他一些方面,例如data-Storage-as-a-Service(dSaaS),後者以計量服務的形式提供儲存,消費者按使用的容量(使用的儲存的容量)和利用率(儲存的頻寬需求)付費。另外還有雲端服務,它為互通性和外部API(API),例如 Web 服務,提供了內部機制。



回頁首

雲端運算現狀

最近幾個月,對雲端運算和相關基礎設施的投資呈爆炸式增長。這樣巨大的投資表明,對雲中資源的虛擬化存在著巨大的需求。去年已經有了很多新的服務,圖 4 展示了其中一部分。

圖 4. 雲端運算各層及相關產品

這絕不是一份詳盡的產品類別,因為變化非常頻繁。但是,這的確給出了一些產品的概覽,並展示了它們之間的區別。本文後面的 參考資料 小節包括了其中一些產品的連結。



回頁首

Linux 和開放原始碼在雲中的應用

現在讓我們來探索一下,Linux 和開源社區如何為雲端運算領域做出貢獻。您可能已經猜到,Linux 和開放原始碼扮演著極其重要的角色。

Software-as-a-Service

SaaS(軟體即服務)就是以服務的形式訪問 Internet 上的軟體。一種早期的 SaaS 方法是 Application Service Provider(ASP)。ASP 提供對 Internet 上存放或交付的軟體的訂閱。ASP 交付軟體,並根據軟體的使用收費。這樣一來,您就不必購買軟體,只需隨需租用軟體。

SaaS 執行個體

傳統應用程式與 Saas 應用程式之間的對比的一個有趣的例子是 SoftwarePlanner.com 提供的應用程式生命週期管理工具。該公司以傳統形式或 SaaS 的形式提供他們的工具。當使用傳統形式時,客戶將應用程式套件放在他們的企業中;而當使用 SaaS 形式時,客戶擁有應用程式套件,並將其放到 Internet 上。

SaaS 的另一個方面是在 Internet 上使用遠程執行的軟體。這種軟體可以是本地應用程式所使用的服務(並定義為 Web 服務),也可以是通過 網頁瀏覽器看到的遠程應用程式。遠程應用程式服務的一個例子是 Google Apps,它通過一個標準的 網頁瀏覽器提供一些公司專屬應用程式。要遠程地執行應用程式,通常需要依賴於一個應用伺服器來公布所需的服務。應用伺服器 是一個軟體架構,它公布軟體服務的 API(例如交易管理或資料庫訪問)。具體的例子有 Red Hat JBoss Application Server、Apache Geronimo 和 IBM WebSphere Application Server 等。另外還有很多其他的應用伺服器,參考資料 小節給出了一份詳細的列表。

SaaS 的另一個最近的例子是 Google 的 Chrome 瀏覽器。這個瀏覽器是作為新案頭的理想環境,除了具有傳統的 網頁瀏覽體驗外,還可以通過它來(以本地或遠程方式)交付應用程式。(要瞭解更多資訊,請參閱 參考資料)。

Platform-as-a-Service

PaaS 可描述為一個完整的虛擬平台,它包括一個或多個伺服器(在一組物理伺服器上虛擬而成)、作業系統以及特定的應用程式(例如用於基於 Web 的應用程式的 Apache 和 MySQL)。在某些情況下,這些平台可以預先定義和選擇。而在另一些情況下,可以提供一個 VM 鏡像,該鏡像包含所有的特定於使用者的應用程式。

PaaS 一個有趣的例子是 Google App Engine。App Engine 是一個服務,通過它可以在 Google 的延展性極佳的架構上部署 Web 應用程式。App Engine 為可通過 Internet 引用的 Python 應用程式提供一個沙箱(將來還會支援更多的語言)。除了支援使用者認證、鏡像操作和電子郵件發送外,App Engine 還提供了 Python API,用於持久地儲存和管理資料(使用 Google Query Language 或 GQL)。Web 應用程式運行時所在的沙箱將限制對底層作業系統的訪問。雖然 App Engine 限制了應用程式可用的功能,但是它支援有用的 Web 服務的構造。請參閱 參考資料 小節,瞭解更多資訊。

注意:在一定的頻寬和儲存約束範圍內,在 App Engine 中部署應用程式是免費的。但是,如果要用 App Engine 構建生產 Web 網站,則需要評估使用費。

PaaS 的另一個例子是 10gen,它既是一個雲平台,又是一個可下載的開放原始碼包,可用於建立您自己的私人雲端。10gen 是類似於 App Engine 的一個軟體棧,它提供與 App Engine 類似的功能 — 但有一些不同之處。通過 10gen,可以使用 Python 以及 JavaScript 和 Ruby 程式設計語言開發應用程式。該平台還使用沙箱概念隔離應用程式,並且通過自己的應用伺服器的許多電腦(當然,是在 Linux 上構建)提供一個可靠的環境。

Infrastructure-as-a-Service

IaaS 是以服務的形式交付電腦基礎設施。這一層與 PaaS 的不同之處在於,只提供虛擬硬體,而沒有軟體棧。客戶提供一個 VM 鏡像,該鏡像在一個或多個虛擬伺服器上被調用。IaaS 是作為服務的計算的最原始的形式(除了對物理基礎設施的訪問)。最著名的商業 IaaS 提供者是 Amazon Elastic Compute Cloud(EC2)。在 EC2 中,可以指定一個特定的 VM(作業系統和應用程式集),然後將應用程式部署到它上面,或者提供要在伺服器上執行的 VM 鏡像。然後,只需根據計算時間、儲存和網路頻寬付費。

Eucalyptus 項目(Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)是 Amazon EC2 的一個開源實現,它與商務服務介面相容。和 EC2 一樣,Eucalyptus 依賴於 Linux 和 Xen 進行作業系統虛擬化。Eucalyptus 是加利福尼亞大學(Santa Barbara)為進行雲端運算研究而開發的。您可以從該大學的網站上下載它(見 參考資料),或者通過 Eucalyptus Public Cloud 體驗它,不過後者有一些限制。

另一個 EC2 風格的 IaaS 是 Enomalism 雲端運算平台。Enomalism 是一個開放原始碼項目,它提供了一個功能類似於 EC2 的雲端運算架構。Enomalism 基於 Linux,同時支援 Xen 和 Kernel Virtual Machine(KVM)。與其他純 IaaS 解決方案不同的是,Enomalism 提供了一個基於 TurboGears Web 應用程式架構和 Python 的軟體棧。



回頁首

其他雲開發

除了前面已經討論過的開發外,還有其他一些基於 Linux 的開放原始碼包,它們在雲環境中也比較有用。Hadoop 是一個開放原始碼 Java 軟體架構,它類似於 PaaS,但是著重於在一組連網的伺服器上操縱大型的資料集(受 Google MapReduce 的啟發,後者支援大型資料集的平行處理)。因此,它在 Web 搜尋和廣告應用中派上用場 — 特別是在 Yahoo! 上。Hadoop 還提供一些子項目,這很像 Google 應用程式。例如,HBase 提供類似於 Google BigTable 資料庫的功能,Hadoop Distributed File System(HDFS)提供類似於 Google File System(GFS)的功能。



回頁首

問題和挑戰

雲端運算的問題顯而易見 — 其中最重要的兩個問題是保密性和安全性。保密性可以通過加密來解決,但是在選擇雲端運算服務時,要審慎一些。在 Web 剛開始發展時,即使是電子商務也受到了懷疑。在全球,每年要發生價值上萬億美元的電子商務事務,所以雲端運算可以收益於當今所有提供 Web 安全的技術(例如安全通訊端層或 SSL)。



回頁首

結束語

雲端運算的風暴已經開始,推動雲端運算的 Linux 開源開發也在迅猛發展。隨著雲端運算領域出現巨大的投資,向集中式資料中心的轉型已顯而易見。有趣的新技術和架構即將到來!

參考資料

學習

  • 您可以參閱本文在 developerWorks 全球網站上的 英文原文。
  • 在這個分為 5 部分的 Cloud computing with Amazon Web Services 系列(developerWorks,2008 年 2 月至 7 月)中更多地瞭解雲端運算。
  • “自動化 Linux 雲安裝”(developerWorks,2008 年 11 月)示範如何在 Power 系統或 System p LPAR 上安裝 SUSE Linux。
  • 閱讀更多關於現在在全世界設立的 IBM “Blue Cloud” 中心 的資訊。在 2008 年 6 月,IBM 在中國北京和南非的約翰內斯堡設立了兩個新的中心。IBM 將開設至少 13 個雲端運算資料中心,以支援不同地理位置的資料保護。
  • Wikipedia 對 雲端運算 及其相關技術作了很好的介紹:
    • IaaS
    • PaaS
    • SaaS
    • 效用計算
    • 格線運算
  • 在 “虛擬 Linux”(developerWorks,2006 年 12 月)中,學習更多關於各種類型的虛擬化的知識。雲端運算依賴於虛擬化來實現對伺服器提供的資源的最佳利用。通過虛擬化,伺服器可用於容納多個作業系統和應用程式集。
  • 看看 World Wide Web Consortium(W3C)對 Web 服務架構和服務 的詳細討論。
  • Wikipedia 給出了很好的 應用伺服器之間的比較,包括開放原始碼和專有解決方案。您將發現標準的 Java 2 Platform, Enterprise Edition 應用伺服器,甚至還有基於函數式編程的應用伺服器,比如面向 Haskell 的 HApps。
  • Michael Sheehan 通過使用 Google trends 比較了 雲端運算與格線運算 的關鍵因素。
  • 在 developerWorks Linux 專區 尋找為 Linux 開發人員(包括 Linux 新手入門)準備的更多參考資料,查閱我們 最受歡迎的文章和教程。
  • 在 developerWorks 上查閱所有 Linux 技巧 和 Linux 教程。
  • 隨時關注 developerWorks 技術活動和網路廣播。

獲得產品和技術

  • JBoss Application Server、Geronimo 和 WebSphere Application Server 是一些最流行的應用伺服器,它們為 SaaS 提供本地和 Web 服務模型。
  • 閱讀對 Google App Engine 和 10gen 軟體棧 的介紹。它們示範了 PaaS 解決方案,這些解決方案提供一個虛擬作業系統和用於使用者應用程式的軟體棧。
  • 最值得注意的 IaaS 解決方案是 Amazon EC2,但是還有一些開源解決方案,例如 Eucalyptus 和 Enomalism。IaaS 提供一個虛擬化的硬體基礎設施,可以在其中運行 VM。
  • Hadoop 是一個軟體棧,通過它可以以一種可伸縮的、高效的方式處理大量的資料。它提供了一個基於編程的平台,以及Distributed File System和應用程式。
  • 用可直接從 developerWorks 下載的 IBM 試用軟體 構建您的下一個 Linux 開發項目。

討論

  • 通過部落格、論壇、podcast 和空間加入 developerWorks 社區。

關於作者

 

M. Tim Jones 是一名嵌入式韌體架構師,同時也是 Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming(第二版)、AI Application Programming(第二版)和 BSD Sockets Programming from a Multilanguage Perspective 等書的作者。他的工程背景非常廣泛,從同步宇宙飛船的核心開發到嵌入式架構設計,再到網路通訊協定的開發。Tim 是位於科羅拉多州 Longmont 的 Emulex Corp. 的一名顧問工程師。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.