15个你可能不知道的开源云平台
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 官方网站
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 官方网站
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 官方网站
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 官方网站
1.8 开源PaaS平台 CloudFoundry
Cloud Foundry是VMware主导使用Ruby开发的一款开源PaaS云计算平台,类似于Salesforce旗下的Heroku,遵从OpenStack云计算平台规范。
1.8.1 开源协议及语言
Apache
Ruby
1.8.2 官方网站
1.9 数据中心虚拟化和云端解决方案 OpenNebula
OpenNEbula 是开放原始码的 虚拟基础设备引擎 用来动态布署虚拟机器在一群实体资源上,ONE (OpenNEbula) 最大的特色在于将虚拟平台从单一实体机器到一群实体资源
ONE 是 Reservoir Project 的一技术,是欧洲研究学会发起的虚拟基础设备和云端运算的计划
· 目前最新版本为 1.2,可支持 XEN 和 KVM 和实时存取 EC2,它也支持印象档的传输、复制和虚拟网络管理网络
· ecosystem 发布关于 ONE 提供的新功能,像是 Haizea 租约管理系统, 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 仍在进行的项目
1.9.1 开源协议及语言
Apache
未知
1.9.2 官方网站
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 官方网站
1.11 云计算标准API Deltacloud
红帽公司2009年9月推出了一套开源的API—— Deltacloud,用于将基于云的工作负载在不同的IaaS供应商之间迁移,如Amazon和Rackspace。为了能在不同的与供应商之间转移, 客户需要“一个可以兼容的架构,和一个与内部运行的东西兼容的堆栈”
1.11.1 开源协议及语言
未知
C/C++
1.11.2 官方网站
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 官方网站
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/