开源云计算被认为是IT的趋势。我们熟知的几个IT巨头的云计算平台,如亚马逊EC 2、IBM的蓝云、微软的Azure、Sun Cloud等,那么开源云计算的平台又有哪些呢?
桉树云服务环境 Eucalyptus
开源协议及语言
- GPL
- Java C/C++
官方网站
http://www.eucalyptus.com/participate
介绍
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 安装并应用到您的基础设施上之前,需要考虑硬件要求。虽然出于试验目的,可以在一个笔记本电脑上运行全部内容,但是对于一个实际的部署场景,多集群无疑是 一个更好的选择。如下所列的是 Ubuntu 管理员对硬件配置方面的一些指导。这些指导可广泛应用于任何的 Linux 发布版(不只是 Ubuntu)。
#p#
开源云计算平台 abiCloud
开源协议及语言
- MPL/CPAL
- Java
官方网站
http://wiki.abiquo.com/display/ABI20/Abiquo+Documentation+Home
介绍
近日Abiquo公司宣布推出其一款开源的云计算平台—— “abiCloud”,使公司能够以快速、简单和可扩展的方式创建和管理大型、复杂的IT基础设施(包括虚拟服务器,网络,应用,存储设备等等)。 AbiCloud较之同类其他产品的一个主要的区别在于其强大的Web界面管理。你可以通过拖拽一个虚拟机来部署一个新的服务。这个版本允许通过 VirtualBox部署实例,它还支持VMware,KVM和Xen。
AbiCloud的版本分类
1.社区版(community):免费
2.企业版(enterprise):需要付费
3.服务提供商版(xSP):需要付费
架构
主要场景
1.私有云
2.简单公有云
#p#
分布式文件系统 Hadoop
开源协议及语言
- Apache
- Java
官方网站
http://hadoop.apache.org/
介绍
Hadoop并不仅仅是一个用于存储的分布式文件系统,而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架。
还有相关的一系列产品及工具包括Hive,Hbase,Pig等。
下图是Hadoop的体系结构:
JBoss云计算项目集 StormGrind
开源协议及语言
- GPL
- Java
官方网站
http://www.jboss.org/stormgrind.html
介绍
StormGrind是一个综合性的项目,它收集了所有JBoss云计算相关的项目
包括:
#p#
云计算框架 Vertebra
开源协议及语言
- 未知
- ruby
官方网站
http://www.engineyard.com/
介绍
Vertebra可用于云的自动化,还可用于编写分布式的、实时的应用。Vertebra平台的特别之处在于它的能迎合不同云的差异,自动化各种流程及应用的管理。
Vertebra的功能包括:
- 强大、标准的XMPP(Extensible Messaging and Presence Protocol)基础架构
- 管理安全策略的“安全及发现代理”
- 编排人工及机器运维任务的“流程自动化代理”
- 系统规划登记使客户的应用能自我组织
- 平台上的应用就像互联网上的e-mail系统一样自动地联合,实现应用间无缝、安全的操作。
- 分布式审计/日志功能
- 分布式任务控制便于掌握运营状况
Enomalism
官方网站
http://www.enomalism.com/
介绍
Enomaly’s Elastic Computing Platform (ECP)是一个可编程的虚拟云架构,ECP平台可以简化在云架构中发布应用的操作。
Enomalism 云计算平台是一个 EC2 风格的 IaaS 。Enomalism 是一个开放源代码项目,它提供了一个功能类似于 EC2 的云计算框架。Enomalism 基于 Linux,同时支持 Xen 和 Kernel Virtual Machine(KVM)。与其他纯 IaaS 解决方案不同的是,Enomalism 提供了一个基于 TurboGears Web 应用程序框架和 Python 的软件栈。
10gen
开源协议及语言
- AGPL
- C/C++
官方网站
http://www.10gen.com/
http://www.mongodb.org/
介绍
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),为提高效率使用内存映射文件进行管理。
#p#
开源PaaS平台 CloudFoundry
开源协议及语言
- Apache
- Ruby
官方网站
http://cloudfoundry.org/
介绍
Cloud Foundry是VMware主导使用Ruby开发的一款开源PaaS云计算平台,类似于Salesforce旗下的Heroku,遵从OpenStack云计算平台规范。
数据中心虚拟化和云端解决方案 OpenNebula
开源协议及语言
- Apache
- 未知
官方网站
http://www.opennebula.org/
介绍
- OpenNEbula 是开放原始码的 虚拟基础设备引擎 用来动态布署虚拟机器在一群实体资源上,ONE (OpenNEbula) 最大的特色在于将虚拟平台从单一实体机器到一群实体资源
- ONE 是 Reservoir Project 的一技术,是欧洲研究学会发起的虚拟基础设备和云端运算的计划
WSO2 Stratos
开源协议及语言
- 未知
- Java
官方网站
http://wso2.com/
介绍
WSO2的Stratos的是最完整的,企业级的,开放的PaaS,比其他任何可用的PaaS有更多的核心服务的支持。
WSO2的Stratos的使组织结合企业数据中心的安全,控制和SLA的云节省成本。 WSO2的Stratos的实现:
- l 前所未有的数据中心的利用率,降低IT基础设施成本
- l 租客自我配置和敏捷应用程序开发
- l 承租人使用的计量和计费
- l 方便地访问SQL和NoSQL数据存储
- l 通讯,商业和演示服务
- l 自动化治理和集中的身份和安全控制
- l 加速通过内部云和逐步迁移到公共云
#p#
云计算标准API Deltacloud
开源协议及语言
- 未知
- C/C++
官方网站
http://deltacloud.apache.org/
红帽公司2009年9月推出了一套开源的API—— Deltacloud,用于将基于云的工作负载在不同的IaaS供应商之间迁移,如Amazon和Rackspace。为了能在不同的与供应商之间转移, 客户需要“一个可以兼容的架构,和一个与内部运行的东西兼容的堆栈”
云计算管理和监控客户端 Zeppelin
开源协议及语言
- GPL
- C/C++
官方网站
http://sourceforge.net/projects/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计划相辅相成。
PaaS应用基础平台 EEPlat
开源协议及语言
- LGPL
- Java
官方网站
http://code.google.com/p/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 。
#p#
开源云计算技术 OpenStack
开源协议及语言
- Apache
- Python
官方网站
http://openstack.org/
介绍
RackSpace 宣布开源其云计算技术OpenStack。OpenStack采用 Apache 2.0许可证发布源代码。Rackspace目前发布的开源云计算技术包括云存储和云虚拟服务器管理套件。此外NASA也捐出了 Nebula 云计算平台技术。OpenStack的合作伙伴包括AMD、戴尔、Citrix等。
Apache Nuvem
开源协议及语言
- Apache
- Java
官方网站
http://incubator.apache.org/nuvem/
介绍
Apache Nuvem 是 Apache 的一个孵化器项目。根据现有的信息,它会:
定义一个开放API,抽象出通用的云平台服务,从特定的私有云中解耦应用逻辑。
针对流行的云(如Google AppEngine、Amazon EC2以及Microsoft Azure)实现Nuvem API。
一开始关注于用户认证与授权、分布式缓存、数据存储、队列等,然后扩展到其他服务,如聊天、日志与调试等。
#p#
可代替Dropbox 的 Linux 云存储服务
SparkleShare
SparkleShare是免费的、开源的、协作和共享工具,旨在让事情变得简单。SparkleShare创建一个主目录SparkleShare文件夹,可以添加不同的远程文件夹(在不同的服务器中)。
SpiderOak
SpiderOak跨平台的存储,提供Windows,Mac和Linux用户文件备份,共享,同步的在线备份工具。SpiderOak使用加密的云存储和客户端的加密密钥创建,所以甚至SpiderOak员工不能访问到任何用户信息。SpiderOak提供免费2 GB空间和几个收费服务。有些SpiderOak软件客服端是开源的,SpiderOak发起人已明确表示,不久的将来他们将开放源码客户端。
Ubuntu one
Ubuntu one不需要介绍。这是典型的ubuntu自带云存储服务。如果你是Ubuntu用户,Ubuntu one客户端已经安装在你的系统。Ubuntu one客户端在Ubuntu 11.04提供了经过修改的接口,并提供2 GB的免费存储空间。甚至Ubuntu one有用于Windows客户端的公开测试版。唯一的缺点是对平台的支持。
#p#
Wuala
Wuala也是一个安全的在线存储服务,文件同步和备份服务,已经由Windows客户端、Mac和Linux。Wuala中只提供了1个注册用户和应用程序是专有的,以及GB级的免费存储空间。为Ubuntu和其他基于Debian distors的系统和Fedora,Red Hat和CentOS,提供RPM包DEB包下载安装。
Minus
Minus可能是所有这些存储服务里面最简单的在线文件存储服务。桌面应用程序可以简单地拖照片,音乐,文件和文件到任务栏并立即上传。
ZumoDrive
ZumoDrive基于云的文件同步服务 ,提供2GB免费存储空间。ZumoDrive支持跨平台,提供Windows,Mac,Linux,IOS,Android和Palm、WebOS客户端。用户可以选择付费服务。
#p#
TeamDrive
TeamDrive又是一个专有的在线文件存储,提供Windows,Mac和Linux软件客服端,各系统之间文件同步。TeamDrive 提供免费2GB存储空间基本计划。TeamDrive有一个 OpenOffice的插件,便于使用OpenOffice文档协作。
Seafile
Seafile是一个开源、专业、可靠的云存储平台;解决文件集中存储、共享和跨平台访问等问题,由北京海文互知网络有限公司开发,发布于 2012年10月;除了一般网盘所提供的云存储以及共享功能外,Seafile还提供消息通信、群组讨论等辅助功能,帮助更好的围绕文件展开协同工作。
ownCloud
ownCloud是一个自由且开源的个人云存储解决方案,包括两个部分:服务器和客户端。ownCloud 最早由KDE开发者Frank Karlitschek于2010年一月创建,目标是成为商业云服务提供商的替代。与商业云存储服务不同,ownCloud可以自由获取无需付费,但相应地,用户必须自行架设 ownCloud的服务器,这需要一点技术。不过也是有商业云存储服务提供商使用 ownCloud 作为服务器,例如奥地利商的 OwnCube。
ownCloud在客户端可通过网页界面,或者安装专用的客户端软件来使用。网页界面当然就是任何能开网页的平台都支持,而客户端软件也支持相当多平台,Windows、Linux、iOS、Android皆有。
除了云存储之外,ownCloud也可用于同步行事历、电子邮件联系人、网页浏览器的书签;此外还有多人在线文件同步协作的功能(类似google documents或Duddle等等)。