大致剖析源代碼在云計算中的應用
Linux 和開放源代碼在云計算中的應用,現(xiàn)在讓我們來探索一下,Linux 和開源社區(qū)如何為云計算領(lǐng)域做出貢獻。您可能已經(jīng)猜到,Linux 和開放源代碼扮演著極其重要的角色。
Software-as-a-Service
SaaS(軟件即服務)就是以服務的形式訪問 Internet 上的軟件。一種早期的 SaaS 方法是 Application Service Provider(ASP)。ASP 提供對 Internet 上存放或交付的軟件的訂閱。ASP 交付軟件,并根據(jù)軟件的使用收費。這樣一來,您就不必購買軟件,只需隨需租用軟件。
SaaS 實例
傳統(tǒng)應用程序與 Saas 應用程序之間的對比的一個有趣的例子是 SoftwarePlanner.com 提供的應用程序生命周期管理工具。該公司以傳統(tǒng)形式或 SaaS 的形式提供他們的工具。當使用傳統(tǒng)形式時,客戶將應用程序套件放在他們的企業(yè)中;而當使用 SaaS 形式時,客戶擁有應用程序套件,并將其放到 Internet 上。
SaaS 的另一個方面是在 Internet 上使用遠程執(zhí)行的軟件。這種軟件可以是本地應用程序所使用的服務(并定義為 Web 服務),也可以是通過 Web 瀏覽器看到的遠程應用程序。遠程應用程序服務的一個例子是 Google Apps,它通過一個標準的 Web 瀏覽器提供一些企業(yè)應用。要遠程地執(zhí)行應用程序,通常需要依賴于一個應用服務器來公布所需的服務。應用服務器 是一個軟件框架,它公布軟件服務的 API(例如事務管理或數(shù)據(jù)庫訪問)。具體的例子有 Red Hat JBoss Application Server、Apache Geronimo 和 IBM® WebSphere® Application Server 等。另外還有很多其他的應用服務器,參考資料 小節(jié)給出了一份詳細的列表。
SaaS 的另一個最近的例子是 Google 的 Chrome 瀏覽器。這個瀏覽器是作為新桌面的理想環(huán)境,除了具有傳統(tǒng)的 Web 瀏覽體驗外,還可以通過它來(以本地或遠程方式)交付應用程序。(要了解更多信息,請參閱 參考資料)。
Platform-as-a-Service
PaaS 可描述為一個完整的虛擬平臺,它包括一個或多個服務器(在一組物理服務器上虛擬而成)、操作系統(tǒng)以及特定的應用程序(例如用于基于 Web 的應用程序的 Apache 和 MySQL)。在某些情況下,這些平臺可以預先定義和選擇。而在另一些情況下,可以提供一個 VM 鏡像,該鏡像包含所有的特定于用戶的應用程序。
PaaS 一個有趣的例子是 Google App Engine。App Engine 是一個服務,通過它可以在 Google 的可伸縮性極佳的架構(gòu)上部署 Web 應用程序。App Engine 為可通過 Internet 引用的 Python 應用程序提供一個沙盒(將來還會支持更多的語言)。除了支持用戶認證、鏡像操作和電子郵件發(fā)送外,App Engine 還提供了 Python API,用于持久地存儲和管理數(shù)據(jù)(使用 Google Query Language 或 GQL)。Web 應用程序運行時所在的沙盒將限制對底層操作系統(tǒng)的訪問。雖然 App Engine 限制了應用程序可用的功能,但是它支持有用的 Web 服務的構(gòu)造。請參閱 參考資料 小節(jié),了解更多信息。
注意:在一定的帶寬和存儲約束范圍內(nèi),在 App Engine 中部署應用程序是免費的。但是,如果要用 App Engine 構(gòu)建生產(chǎn) Web 站點,則需要評估使用費。
PaaS 的另一個例子是 10gen,它既是一個云計算平臺,又是一個可下載的開放源代碼包,可用于創(chuàng)建您自己的私有云計算。10gen 是類似于 App Engine 的一個軟件棧,它提供與 App Engine 類似的功能 — 但有一些不同之處。通過 10gen,可以使用 Python 以及 JavaScript 和 Ruby 編程語言開發(fā)應用程序。該平臺還使用沙盒概念隔離應用程序,并且通過自己的應用服務器的許多計算機(當然,是在 Linux 上構(gòu)建)提供一個可靠的環(huán)境。
Infrastructure-as-a-Service
IaaS 是以服務的形式交付計算機基礎(chǔ)設施。這一層與 PaaS 的不同之處在于,只提供虛擬硬件,而沒有軟件棧。客戶提供一個 VM 鏡像,該鏡像在一個或多個虛擬服務器上被調(diào)用。IaaS 是作為服務的計算的最原始的形式(除了對物理基礎(chǔ)設施的訪問)。最著名的商業(yè) IaaS 提供程序是 Amazon Elastic Compute Cloud(EC2)。在 EC2 中,可以指定一個特定的 VM(操作系統(tǒng)和應用程序集),然后將應用程序部署到它上面,或者提供要在服務器上執(zhí)行的 VM 鏡像。然后,只需根據(jù)計算時間、存儲和網(wǎng)絡帶寬付費。
Eucalyptus 項目(Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)是 Amazon EC2 的一個開源實現(xiàn),它與商業(yè)服務接口兼容。和 EC2 一樣,Eucalyptus 依賴于 Linux 和 Xen 進行操作系統(tǒng)虛擬化。Eucalyptus 是加利福尼亞大學(Santa Barbara)為進行云計算研究而開發(fā)的。您可以從該大學的網(wǎng)站上下載它(見 參考資料),或者通過 Eucalyptus Public Cloud 體驗它,不過后者有一些限制。
另一個 EC2 風格的 IaaS 是 Enomalism 云計算平臺。Enomalism 是一個開放源代碼項目,它提供了一個功能類似于 EC2 的云計算框架。Enomalism 基于 Linux,同時支持 Xen 和 Kernel Virtual Machine(KVM)。與其他純 IaaS 解決方案不同的是,Enomalism 提供了一個基于 TurboGears Web 應用程序框架和 Python 的軟件棧。
【編輯推薦】


















