天天看點

15個你可能不知道的開源雲平台

Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems(Eucalyptus) 是一種開源的軟體基礎結構,用來通過計算叢集或工作站群實作彈性的、實用的雲計算。它最初是美國加利福尼亞大學 Santa Barbara 計算機科學學院的一個研究項目,現在已經商業化,發展成為了 Eucalyptus Systems Inc。不過,Eucalyptus 仍然按開源項目那樣維護和開發。Eucalyptus

Systems 還在基于開源的 Eucalyptus 建構額外的産品;它還提供支援服務。

不管是源代碼還是包安裝,Eucalyptus 很容易安裝在現今大多數 Linux® 釋出版上。

它提供了如下這些進階特性:

與 EC2 和 S3 的接口相容性(SOAP 接口和 REST 接口)。使用這些接口的幾乎所有現有工具都将可以與基于 Eucalyptus 的雲協作。

支援運作在 Xen hypervisor 或 KVM 之上的 VM 的運作。未來版本還有望支援其他類型的 VM,比如 VMware。

用來進行系統管理和使用者結算的雲管理工具。

能夠将多個分别具有各自私有的内部網絡位址的叢集配置到一個雲内。

架構

Eucalyptus 包含五個主要元件,它們能互相協作共同提供所需的雲服務。這些元件使用具有 WS-Security 的 SOAP 消息傳遞安全地互相通信。

Cloud Controller (CLC)

在 Eucalyptus 雲内,這是主要的控制器元件,負責管理整個系統。它是所有使用者和管理者進入 Eucalyptus 雲的主要入口。所有客戶機通過基于 SOAP 或 REST 的 API 隻與 CLC 通信。由 CLC 負責将請求傳遞給正确的元件、收集它們并将來自這些元件的響應發送回至該客戶機。這是 Eucalyptus 雲的對外 “視窗”。

Cluster Controller (CC)

Eucalyptus 内的這個控制器元件負責管理整個虛拟執行個體網絡。請求通過基于 SOAP 或 REST 的接口被送至 CC。CC 維護有關運作在系統内的 Node Controller 的全部資訊,并負責控制這些執行個體的生命周期。它将開啟虛拟執行個體的請求路由到具有可用資源的 Node Controller。

Node Controller (NC)

它控制主機作業系統及相應的 hypervisor(Xen 或最近的 KVM,很快就會支援 VMWare)。必須在托管了實際的虛拟執行個體(根據來自 CC 的請求執行個體化)的每個機器上運作 NC 的一個執行個體。

Walrus (W)

這個控制器元件管理對 Eucalyptus 内的存儲服務的通路。請求通過基于 SOAP 或 REST 的接口傳遞至 Walrus。

Storage Controller (SC)

Eucalyptus 内的這個存儲服務實作 Amazon 的 S3 接口。SC 與 Walrus 聯合工作,用于存儲和通路虛拟機映像、核心映像、RAM 磁盤映像和使用者資料。其中,VM 映像可以是公共的,也可以是私有的,并最初以壓縮和加密的格式存儲。這些映像隻有在某個節點需要啟動一個新的執行個體并請求通路此映像時才會被解密。

一個 Eucalyptus 雲安裝可以聚合和管理來自一個或多個叢集的資源。一個叢集 是連接配接到相同 LAN 的一組機器。在一個叢集中,可以有一個或多個 NC 執行個體,每個執行個體管理虛拟執行個體的執行個體化和終止。

在一個單一叢集的安裝中,如圖 3 所示,将至少包含兩個機器:一個機器運作 CC、SC 和 CLC;另一個機器運作 NC。這種配置主要适合于試驗的目的以及快速配置的目的。通過将所有東西都組合到一個機器内,還可以進一步簡化,但這個機器需要非常健壯才能這樣做。

一個單叢集 Eucalyptus 安裝的拓撲

在多叢集安裝中,可以将各個元件(CC、SC、 NC 和 CLC)放置在單獨的機器上。如果想要用它來執行重大的任務,那麼這麼做就是一種配置 Eucalyptus 雲的理想方式。多叢集安裝還能通過選擇與其上運作的控制器類型相适應的機器來顯著提高性能。比如,可以選擇一個具有超快 CPU 的機器來運作 CLC。多叢集的結果是可用性的提高、負載和資源的跨叢集分布。叢集的概念類似于 Amazon EC2 内的可用性區域的概念。資源可以跨多個可用性區域配置設定,這樣一來,一個區域内的故障不會影響到整個應用程式。

一個多叢集 Eucalyptus 安裝的拓撲

在将 Eucalyptus 安裝并應用到您的基礎設施上之前,需要考慮硬體要求。雖然出于試驗目的,可以在一個筆記本電腦上運作全部内容,但是對于一個實際的部署場景,多叢集無疑是 一個更好的選擇。如下所列的是 Ubuntu 管理者對硬體配置方面的一些指導。這些指導可廣泛應用于任何的 Linux 釋出版(不隻是 Ubuntu)。

GPL

Java C/C++

<a>http://www.eucalyptus.com/participate</a>

近日Abiquo公司宣布推出其一款開源的雲計算平台—— “abiCloud”,使公司能夠以快速、簡單和可擴充的方式建立和管理大型、複雜的IT基礎設施(包括虛拟伺服器,網絡,應用,儲存設備等等)。 AbiCloud較之同類其他産品的一個主要的差別在于其強大的Web界面管理。你可以通過拖拽一個虛拟機來部署一個新的服務。這個版本允許通過 VirtualBox部署執行個體,它還支援VMware,KVM和Xen。

MPL/CPAL

Java

<a>http://wiki.abiquo.com/display/ABI20/Abiquo+Documentation+Home</a>

Hadoop并不僅僅是一個用于存儲的分布式檔案系統,而是設計用來在由通用計算裝置組成的大型叢集上執行分布式應用的架構。

還有相關的一系列産品及工具包括Hive,Hbase,Pig等。

下圖是Hadoop的體系結構:

Apache

<a>http://hadoop.apache.org/</a>

StormGrind是一個綜合性的項目,它收集了所有JBoss雲計算相關的項目

包括:

Cantiere             基本rpm子產品

BoxGrinder         建立建立虛拟機的引擎

BoxGrinder REST      引擎的restful api接口

BoxGrinder Studio     建立虛拟機的web界面

CirrAS                 jboss的雲端群集

Cooling Tower          paas環境

StormFolio            jboss的應用組合

未知

<a>http://www.jboss.org/stormgrind.html</a>

Vertebra可用于雲的自動化,還可用于編寫分布式的、實時的應用。Vertebra平台的特别之處在于它的能迎合不同雲的差異,自動化各種流程及應用的管理。

Vertebra的功能包括:

強大、标準的XMPP(Extensible Messaging and Presence Protocol)基礎架構

管理安全政策的“安全及發現代理”

編排人工及機器運維任務的“流程自動化代理”

系統規劃登記使客戶的應用能自我組織

平台上的應用就像網際網路上的e-mail系統一樣自動地聯合,實作應用間無縫、安全的操作。

分布式審計/日志功能

分布式任務控制便于掌握營運狀況

ruby

<a>http://www.engineyard.com/</a>

Enomaly's Elastic Computing Platform (ECP)是一個可程式設計的虛拟雲架構,ECP平台可以簡化在雲架構中釋出應用的操作。

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

<a>http://www.enomalism.com/</a>

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

MongoDB是一個介于關系資料庫和非關系資料庫之間的産品, 是非關系資料庫當中功能最豐富,最像關系資料庫的。他支援的資料結構非常松散,是類似json的bjson格式,是以可以存儲比較複雜的資料類型。 Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似于面向對象的查詢語言,幾乎可以實作類似關系資料庫單表查詢的絕大部分功能,而且還支援 對資料建立索引。

它的特點是高性能、易部署、易使用,存儲資料非常友善。主要功能特性有:

面向集合存儲,易存儲對象類型的資料。

模式自由。

支援動态查詢。

支援完全索引,包含内部對象。

支援查詢。

支援複制和故障恢複。

使用高效的二進制資料存儲,包括大型對象(如視訊等)。

自動處理碎片,以支援雲計算層次的擴充性

支援RUBY,PYTHON,JAVA,C++,PHP等多種語言。

檔案存儲格式為BSON(一種JSON的擴充)

可通過網絡通路

所謂“面向集合”(Collenction-Orented),意思是資料被分組存儲在資料集中,被稱為一個集合(Collenction)。每個 集合在資料庫中都有一個唯一的辨別名,并且可以包含無限數目的文檔。集合的概念類似關系型資料庫(RDBMS)裡的表(table),不同的是它不需要定 義任何模式(schema)。

模式自由(schema-free),意味着對于存儲在mongodb資料庫中的檔案,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的檔案存儲在同一個資料庫裡。

存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一辨別一個文檔,為字元串類型,而值則可以是各中複雜的檔案類型。我們稱這種存儲形式為BSON(Binary Serialized dOcument Format)。

MongoDB服務端可運作在Linux、Windows或OS X平台,支援32位和64位應用,預設端口為27017。推薦運作在64位平台,因為MongoDB

在32位模式運作時支援的最大檔案尺寸為2GB。

MongoDB把資料存儲在檔案中(預設路徑為:/data/db),為提高效率使用記憶體映射檔案進行管理。

AGPL

C/C++

<a>http://www.10gen.com/</a>

<a>http://www.mongodb.org/</a>

Ruby

<a>http://cloudfoundry.org/</a>

OpenNEbula 是開放原始碼的 虛拟基礎裝置引擎 用來動态布署虛拟機器在一群實體資源上,ONE (OpenNEbula) 最大的特色在于将虛拟平台從單一實體機器到一群實體資源

·    目前最新版本為 1.2,可支援 XEN和

KVM

和實時存取 EC2,它也支援印象檔的傳輸、複制和虛拟網絡管理網絡

libvirt 的實作,整合 Cloud Nimbus 和 ElasticHosts 雲端外挂

1.1 ONE 的目标

·    将一群實體 cluster 轉換彈性的虛拟基礎裝置,且可動态調适 service workload 的改變,ONE 在 service 和實體機處裝置間産生新的虛拟層(virtualization layer),這個 layer 可支援叢集的 service

執行和加強 VMMs (Virtual Machine Monitor) 的效益

1.1 ONE 的效益

·    對基礎裝置擁有者(系統管理者)來說

o   集中管理

o   工作量的平衡

o   伺服器的 Consolidation (減少實體機器和空間,協助管理者維護,節省電源和 cooling 需求或支援不影響工作量的關機)

o   動态 resizing (動态增加新的 hosts到實體資源)

o   動态叢集分區 (執行不同的服務)

o   支援異質性的工作量 (讓多個或是沖突的軟體可執行在特定的版本的 libry 或是舊的應用程式)

·    對使用者(服務管理者)和來說

o   On-demand 的提供 (根據使用者的服務需求來提供VMs)

1.2 ONE 的特色

·    ONE 不同以存的 VM Manager,在于 高子產品化和開放的架構去符合 cluster 管理者的需求,最新版可支援 XEN 和 KVM,還有以下特色和功能:

o   有效的資源管理

o   強大的接口 (提供 API 和 CLI 來監控或控制 VMs 和實體機器)

o   第三方的軟體整合

o   開放和彈性的架構

o   容錯機制

o   印象檔的管理

o   網絡管理

o   穩定和可擴稱性

o   根據服務工作量的需求 scale

o   簡單的安裝和管理

o   開放原始碼

o   仍在進行的項目

<a>http://www.opennebula.org/</a>

WSO2的Stratos的是最完整的,企業級的,開放的PaaS,比其他任何可用的PaaS有更多的核心服務的支援。

WSO2的Stratos的使組織結合企業資料中心的安全,控制和SLA的雲節省成本。 WSO2的Stratos的實作:

l  前所未有的資料中心的使用率,降低IT基礎設施成本

l  租客自我配置和靈活應用程式開發

l  承租人使用的計量和計費

l  友善地通路SQL和NoSQL資料存儲

l  通訊,商業和示範服務

l  自動化治理和集中的身份和安全控制

l  加速通過内部雲和逐漸遷移到公共雲

<a>http://wso2.com/</a>

紅帽公司2009年9月推出了一套開源的API—— Deltacloud,用于将基于雲的工作負載在不同的IaaS供應商之間遷移,如Amazon和Rackspace。為了能在不同的與供應商之間轉移, 客戶需要“一個可以相容的架構,和一個與内部運作的東西相容的堆棧”

<a>http://deltacloud.apache.org/</a>

Zeppelin是第一款開源的雲計算管理和監控用戶端,該公司希望這項新技術可以讓大型IT商店更多的采用雲計算。Cittio聲稱,它可以遠端部署,而且通過了基于标準WBEM/CIM-XML和WS-Management接口通路資料的安全性保證。

根據國外媒體報道,周一(2009年3月9日)Cittio公司推出了Zeppelin項目,這是第一款開源的雲計算管理和監控用戶端。該公司希望這項新技術可以讓大型IT商店更多的采用雲計算。

該公司的目标是向IT商店提供一系列的工具,以便IT商店可以更好地将應用程式與雲計算相結合。該公司官方把Zeppelin計劃看作是他們實作其目标的第一步。

Cittio公司官方表示,因為雲端應用程式和構架的變化将是令人矚目的,這樣雲計算本身向當今IT業務的指令和控制帶入了新的風險。這意味着現存的網絡和系統管了解決方案的變革也同樣會引人注目。

根據Cittio公司的說法,在雲端管理領域有三個主要的問題:第一,在雲操作和終端使用者的實作、管理以及檢測所帶來的問題;第二,缺乏能夠精确監測雲彈性和資源可用性的新标準;第三,大部分的系統管了解決方案都依賴于各自獨有的用戶端技術或SNMP來進行性 能測量,是以它們之間缺乏安全傳輸資料的能力。

Cittio公司聲稱,Zeppelin項目就是為了解決這些問題而設計的,它提供了詳細的雲端評價、性能測量和審計功能,并提供了資料中心構架和其應用程式。

它可以遠端部署,而且據報道,它還能夠確定通過Internet基于标準WBEM/CIM-XML和WS- Management接口通路資料的安全性。Zeppelin還包括了一些開源系統上的實作,包括Linux、帶有Project Kensho功能的Citrix XenServer和VMware。

按照Citrix System公司虛拟化管理部門的CTO——Simon Corsby的說法,Project Kensho是該公司推動虛拟化和雲端互動計劃的關鍵一環。

“在我們開源版本發行的幾天裡,Cittio的團隊釋出了一個XenServer下的使用Zeppelin 和Kensho工具的一整套雲端監測解決方案。”,Crosby說。他補充說,通過一個允許服務提供商按VM小時計費的工具,Citrix使用者可以更多的 将靜态資料中心變為“傳遞中心”。

另外Cittio公司啟動了一項開源社群推動計劃,該計劃将與Zeppelin計劃相輔相成。

<a>http://sourceforge.net/projects/zeppelin/</a>

EEPlat(雲鶴平台)是中繼資料驅動的PaaS應用基礎平台,提供了多租戶的完整實作,同時支援傳統單租戶環境。EEPlat擁有領先的元模型體系,提供中繼資料驅動、線上配置的開發模式,可以實作細粒度業務的定制和複用。

解決了多租戶應用在功能、界面等方面無法滿足不同租戶個性化要求等問題,同時解決了多租戶應用及傳統應用無法适配多種環境(多種浏覽器、智能移動設 備)、無法專注于業務、無法快速适應需求變化、進度失控、人員流動等問題,可以大幅度得提高生産率,可幫助實作低成本、高品質、易擴充的跨越雲計算和傳統計算的資訊管理系統。

EEPlat支援的常見應用包括MIS(管理資訊系統)、OA(辦公自動化)、CRM(客戶關系管理)、HR(人力資源管理)、ERP(企業資源計 劃)等。同類産品有salesforce的force.com平台,與force.com相比,EEPlat的元模型更加完善,抽象程度更高,靈活性更 高,适應範圍更廣;force.com的商業化程度更高。詳細比較

對于EEPlat的開發者,可以是沒有經驗的剛畢業的學生,也可以是業務人員,隻要熟悉一般的SQL語句,有一定的分析能力,都可以快速上手。

LGPL

<a>http://code.google.com/p/eeplat/</a>

RackSpace 宣布開源其雲計算技術OpenStack。OpenStack采用 Apache 2.0許可證釋出源代碼。Rackspace目前釋出的開源雲計算技術包括雲存儲和雲虛拟伺服器管理套件。此外NASA也捐出了 Nebula 雲計算平台技術。OpenStack的合作夥伴包括AMD、戴爾、Citrix等。

Python

<a>http://openstack.org/</a>

Apache Nuvem 是 Apache 的一個孵化器項目。根據現有的資訊,它會:

定義一個開放API,抽象出通用的雲平台服務,從特定的私有雲中解耦應用邏輯。

針對流行的雲(如Google AppEngine、Amazon EC2以及Microsoft Azure)實作Nuvem API。

一開始關注于使用者認證與授權、分布式緩存、資料存儲、隊列等,然後擴充到其他服務,如聊天、日志與調試等。

<a>http://incubator.apache.org/nuvem/</a>

原文位址:http://www.cnblogs.com/skyme/archive/2012/06/05/2536185.html