1.1 雲服務環境 Eucalyptus

1.1.1 介紹

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)。

1.1.2 開源協議及語言

GPL

Java C/C++

1.1.3 官方網站

http://www.eucalyptus.com/participate

1.2 開源雲計算平台 abiCloud

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

 


 

1.2.1 開源協議及語言

MPL/CPAL

Java

1.2.2 官方網站

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

1.3 分佈式文件系統 Hadoop

 

Hadoop並不僅僅是一個用於存儲的分佈式文件系統,而是設計用來在由通用計算設備組成的大型集羣上執行分佈式應用的框架。

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

下圖是Hadoop的體系結構:

 

1.3.1 開源協議及語言

Apache

Java

1.3.2 官方網站

http://hadoop.apache.org/

1.4 JBoss雲計算項目集 StormGrind

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

 

包括:

Cantiere             基本rpm模塊

BoxGrinder         建立創建虛擬機的引擎

BoxGrinder REST      引擎的restful api接口

BoxGrinder Studio     創建虛擬機的web界面

CirrAS                 jboss的雲端羣集

Cooling Tower          paas環境

StormFolio            jboss的應用組合

1.4.1 開源協議及語言

未知

Java

1.4.2 官方網站

http://www.jboss.org/stormgrind.html

1.5 雲計算框架 Vertebra

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

Vertebra的功能包括:

  • 強大、標準的XMPP(Extensible Messaging and Presence Protocol)基礎架構
  • 管理安全策略的“安全及發現代理”
  • 編排人工及機器運維任務的“流程自動化代理”
  • 系統規劃登記使客户的應用能自我組織
  • 平台上的應用就像互聯網上的e-mail系統一樣自動地聯合,實現應用間無縫、安全的操作。
  • 分佈式審計/日誌功能
  • 分佈式任務控制便於掌握運營狀況

1.5.1 開源協議及語言

未知

ruby

1.5.2 官方網站

http://www.engineyard.com/

1.6 Enomalism

Enomaly's Elastic Computing Platform (ECP)是一個可編程的虛擬雲架構,ECP平台可以簡化在雲架構中發佈應用的操作。

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

 

1.6.1 開源協議及語言

未知

未知

1.6.2 官方網站

http://www.enomalism.com/

1.7 10gen

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),為提高效率使用內存映射文件進行管理。

1.7.1 開源協議及語言

AGPL

C/C++

1.7.2 官方網站

http://www.10gen.com/

http://www.mongodb.org/

 

1.8 開源PaaS平台 CloudFoundry

Cloud Foundry是VMware主導使用Ruby開發的一款開源PaaS雲計算平台,類似於Salesforce旗下的Heroku,遵從OpenStack雲計算平台規範。

1.8.1 開源協議及語言

Apache

Ruby

1.8.2 官方網站

http://cloudfoundry.org/

 

1.9 數據中心虛擬化和雲端解決方案 OpenNebula

OpenNEbula 是開放原始碼的 虛擬基礎設備引擎 用來動態佈署虛擬機器在一羣實體資源上,ONE (OpenNEbula) 最大的特色在於將虛擬平台從單一實體機器到一羣實體資源

 

ONE 是 Reservoir Project 的一技術,是歐洲研究學會發起的虛擬基礎設備和雲端運算的計劃

·    目前最新版本為 1.2,可支持 XEN和 KVM 和實時存取 EC2,它也支持印象檔的傳輸、複製和虛擬網絡管理網絡

·    ecosystem 發佈關於 ONE 提供的新功能,像是 Haizea 租約管理系統, libvirt 的實作,整合 Cloud NimbusElasticHosts 雲端外掛

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   仍在進行的項目

1.9.1 開源協議及語言

Apache

未知

1.9.2 官方網站

http://www.opennebula.org/

1.10 WSO2 Stratos

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

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

l  前所未有的數據中心的利用率,降低IT基礎設施成本

l  租客自我配置和敏捷應用程序開發

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

l  方便地訪問SQL和NoSQL數據存儲

l  通訊,商業和演示服務

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

l  加速通過內部雲和逐步遷移到公共雲

1.10.1 開源協議及語言

未知

Java

1.10.2 官方網站

http://wso2.com/

1.11 雲計算標準API Deltacloud

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

 

1.11.1 開源協議及語言

未知

C/C++

1.11.2 官方網站

http://deltacloud.apache.org/

1.12 雲計算管理和監控客户端 Zeppelin

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計劃相輔相成。

1.12.1 開源協議及語言

GPL

C/C++

1.12.2 官方網站

http://sourceforge.net/projects/zeppelin/

1.13 PaaS應用基礎平台 EEPlat

EEPlat(雲鶴平台)是元數據驅動的PaaS應用基礎平台,提供了多租户的完整實現,同時支持傳統單租户環境。EEPlat擁有領先的元模型體系,提供元數據驅動、在線配置的開發模式,可以實現細粒度業務的定製和複用。

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

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

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

 

EEPlat PaaS應用平台試用: 包含有一個簡單的CRM用於功能測試。訪問地址: http://www.eeplat.com ,手機訪問地址:http://www.eeplat.com/m.jsp 。

1.13.1 開源協議及語言

LGPL

Java

1.13.2 官方網站

http://code.google.com/p/eeplat/

1.14 開源雲計算技術 OpenStack

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

1.14.1 開源協議及語言

Apache

Python

1.14.2 官方網站

http://openstack.org/

1.15 Apache Nuvem

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

  • 定義一個開放API,抽象出通用的雲平台服務,從特定的私有云中解耦應用邏輯。
  • 針對流行的雲(如Google AppEngine、Amazon EC2以及Microsoft Azure)實現Nuvem API。
  • 一開始關注於用户認證與授權、分佈式緩存、數據存儲、隊列等,然後擴展到其他服務,如聊天、日誌與調試等。

1.15.1 開源協議及語言

Apache

Java

1.15.2 官方網站

http://incubator.apache.org/nuvem/