開原始程式碼及Linux在雲計算中的應用

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

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


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


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

雲計算在 Internet 中遷移資源


雲計算的目標是使這些資源比您自己所能提供和管理的資源更廉價。 雲計算除了降低成本外,還有更大的靈活性和可伸縮性。 雲計算提供者可以輕鬆地擴展虛擬環境,以通過提供者的虛擬基礎設施提供更大的頻寬或計算資源。


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

虛擬化和資源使用


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


Software-as-a-Service


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


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


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


Platform-as-a-Service


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


PaaS 一個有趣的例子是 Google App Engine。 App Engine 是一個服務,通過它可以在 Google的可伸縮性極佳的架構上部署 Web 應用程式。 App Engine 為可通過 Internet 引用的 Python應用程式提供一個沙箱(將來還會支援更多的語言)。 除了支援使用者認證、鏡像操作和電子郵件發送外,App Engine 還提供了 PythonAPI,用於持久地存儲和管理資料(使用 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 Architecturefor Linking Your Programs To Useful Systems)是 Amazon EC2的一個開源實現,它與商務服務 介面相容。 和 EC2 一樣,Eucalyptus 依賴于 Linux 和 Xen進行作業系統虛擬化。 Eucalyptus 是加利福尼亞大學(SantaBarbara)為進行雲計算研究而開發的。 您可以從該大學的網站上下載它(見 參考資料),或者通過 Eucalyptus PublicCloud 體驗它,不過後者有一些限制。


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

聯繫我們

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