大致剖析源代碼在云計算中的應用
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 服務),也可以是通過 Web 瀏覽器看到的遠程應用程序。遠程應用程序服務的一個例子是 Google Apps,它通過一個標準的 Web 瀏覽器提供一些企業應用。要遠程地執行應用程序,通常需要依賴于一個應用服務器來公布所需的服務。應用服務器 是一個軟件框架,它公布軟件服務的 API(例如事務管理或數據庫訪問)。具體的例子有 Red Hat JBoss Application Server、Apache Geronimo 和 IBM® WebSphere® 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 還提供了 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 的軟件棧。
【編輯推薦】