Linux 上的雲端運算

來源:互聯網
上載者:User
雲端運算和儲存將實體資源(例如處理器和儲存)轉換成 Internet 上可伸縮、可共用的資源(“作為服務”
的計算和儲存)。雖然虛擬化不是一個新概念,但是通過伺服器虛擬化實現的物理系統共用,的確能使資源的延展性大得多,效率也高得多。雲端運算使使用者可以訪
問大規模計算和儲存資源,而且他們不必知道那些資源的位置及其是如何配置的。正如您預期的一樣,Linux
在此扮演著極為重要的角色。探索雲端運算,瞭解其中的奧秘。


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


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

閱讀 Tim 在 developerWorks 上發表的更多文章
  • Tim 的 Anatomy of... 文章

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

雲端運算的透視圖

雲端運算實現效用計算的思想,後者是由 John McCarthy 在 1961 年首次提出的。在效用計算中,計算被看作一種公用事業。雲端運算也可以和叢集計算(cluster computing)格線運算(grid computing)
相比,叢集計算將一組相串連的電腦看作一個單獨的用於Alibaba Cloud HPC的虛擬電腦。而格線運算則將分布在不同地理位置的電腦串連起來解決一個共
同的問題。20 世紀 60 年代,IBM、General Electric 等公司提供了分時系統(time-sharing system)。

圖 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),例如 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 上的開源開發也在迅猛發展。隨著雲端運算領域出現巨大的投資,向集中式資料中心的轉型已顯而易見。有趣的新技術和架構即將到來!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.