开源技术目前已经运用到云计算的每一个地方,在Hypervisor层面,KVM、Xen都是很优秀的虚拟化底层引擎,在管理接口方面,Libvirt是一个被广泛使用的组件,而Eucalyptus、OpenCloud、Convirt、Nebula等都是很不错的云计算框架和管理软件。目前的OpenStack开源云框架也受到了大多数主流厂商的支持和追捧。
云计算的最终目的是实现灵活、自由的资源分配和使用,包括在云计算的建设方面,也需要灵活、自由、开放的建设方法,这和开源技术所遵从的自由和透明的思想是一致的。开源技术给云计算带来的是更加开放和灵活的构建方法,而不会给云计算带来锁定(lock-in)。
开源技术在云计算中的主要作用有2个:
云计算开放标准的制定例如Libvirt API、DeltaCloud API,EC2 API等等,这些标准为云计算的模块化提供了依据。
云计算项目 KVM、Xen、Eucalyptus、OpenCloud、Convirt、Nebula等不同云计算层次的开源项目,能够让用户更加快速地接触、部署云计算。
Enomalism
Enomalism弹性计算平台。Enomaly's Elastic Computing Platform(ECP)是一个可编程的虚拟云架构,ECP平台可以简化在云架构中发布应用的操作。云计算平台是一个EC2风格的IaaS。Enomalism 是一个开放源代码项目,它提供了一个功能类似于EC2的云计算框架。Enomalism基于Linux,同时支持Xen和Kernel Virtual Machine(KVM)。与其他纯IaaS解决方案不同的是,Enomalism提供了一个基于 TurboGears Web应用程序框架和Python的软件栈。
Eucalyptus
Eucalyptus由Santa Barbara大学建立,是主要实现云计算环境的弹性需求的软件,通过其在集群或者服务器组上的部署,并且使用常见的Linux工具和基本的基于web的服务。使用FreeBSD License,意味着可以直接使用在商业软件应用中,当前支持的商业服务只是亚马逊的EC2,今后会增加多种客户端接口。该系统使用和维护十分方便,使用SOAP安全的内部通信,且把可伸缩型作为主要的设计目标,具有简单易用,扩展方便的特点。这个软件层的工具可以用来通过配置服务器集群来实现私有云,并且其接口也是与公有云相兼容,可以满足私有云与公有云混合构建扩展的云计算环境。
MongoDB
MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。它是一个高性能的面向文件的开源数据存储项目。可以通过网络访问,并且由C++语言编写。主要包含的功能特性有易存储对象类型的数据,查询支持,复制和故障恢复支持,高效的二进制数据存储,自动处理碎片提高云层次上的扩展性。高性能,可扩展,适当的功能是这个项目的主要设计目标。MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。
10Gen
10gen的开源项目是MongoDB,主要功能是解决website的操作性数据存储,session对象的存储,数据缓存,高效率的实时计数(比如统计PV,UV),并支持Ruby,Python,Java,C++,php等众多的页面语言。通过10gen,可以使用Python以及JavaScript。和Ruby编程语言开发应用程序。该平台还使用沙盒概念隔离应用程序,并且使用它们自己的应用服务器的许多计算机(当然,是在Linux上构建)提供一个可靠的环境。MongoDB主要特征是存储数据非常方便,不再是传统的Object-Relational Mapping的模式,高性能,可以存储大对象数据,比如视频等,可以自动复制和Failover。
NimBus
NimBus开源云计算平台,其网格中间件Globus的作品从最早的Virtual Workspace演化而来,提供与EC2类似的功能和接口。Eucalyptus、Enomaly、Nimbus、OpenNebula等开源云计算平台的搭建方案也层出不穷。动态语言编写的代码不仅被部署在云端实现业务应用,在云基础设施的搭建环节,也出现了不少动态语言实现的云项目。开源技术同云计算相同的“开放、自由”思想,基于完全开放、统一、标准的接口、众多的开源项目可以让云服务企业灵活选择不同的项目来实现自己的云计算环境,同时,开源技术也让他们能够低成本快速实现云计算部署。
Abiquo
Abiquo公司开源产品。Abiquo公司帮助用户建立,管理以及扩展复杂的计算架构。具体开源云计算产品有三类,三种产品分别是abiCloud,abiNtense和abiData。这三种产品都可以用来架构和开发公有私有混合云,以及云应用等基础设施。abiCloud是开源云管理软件,可以创建管理资源并且可以按需扩展。abiNtense是一个类似于Grid的架构,用来减少大量高性能计算的执行时间。abiData由Hadoop,hBase,Pig开发而来,是一个信息管理系统,可以用来搭建分析大量数据的应用。是低成本的云存储解决方案,为开源社区,以及众多的云计算相关项目提供了较多的贡献。