这是我结合云计算概念和GigaSpaces的一篇阅读笔记。适合初学者。

一、什么是云计算?

根据NIST(National Institute of Standards and Technology)的定义,云计算[1]是:

Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, stroage, applications, and services) that can be rapidly provisioned and released with minimal
management effort or service provider interaction. This cloud model promotes availability and is composed of five essential
characteristics, three service models, and four
deployment models.

五个核心特点是: On-demand self-service, Broad network access, Resource pooling, Rapid elasticity, Measured Service
三个服务模型是: Cloud Software as a Service (SaaS), Cloud Platform as a Service (PaaS), Cloud Infrastructure as a Service (IaaS)
四个部署模型是: Private cloud, Community cloud, Public cloud, Hybrid cloud

可以用图[2]来简单表示一下:

云计算与GigaSpaces

这里有两点要注意:

第一,Cloud computing is still an evolving paradigm. Its definitions, use cases, underlying technologies, issues, risks, and benefits will be refined and better understood with a spirited debate by the public and private sectors. This definition, its attributes,
characteristics, and underlying rationale will evolve over time.

第二,The cloud computing industry represents a large ecosystem of many models, vendors, and market niches. This definition attempts to encompass all of the various cloud approaches.

二、云计算产业链

Gartner近日指出,2010年全球云服务收入预计将达到683亿美元,与2009年586亿美元的收入相比,增长16.6%。该行业预计到2014年的收入将达到1,488亿美元,呈现出强劲的增长势头。这个统计基本将所有基于网络提供服务的厂商都计入云计算市场。

云计算产业链生态系统可以参考下图,然后自下而上做简单解释[3]。

云计算与GigaSpaces

硬件与设备制造市场包括绝大部分传统的硬件制造商,因为它们都已经在某种形式上支持虚拟化和云计算,比如Intel、AMD、Cisco、SUN,IBM,HP,Dell,。

云计算解决方案供应商(Cloud technology enabler)是为客户建立公共和私有云等提供软件和方案,该市场在2008年末才开始形成,云计算解决方案主要以虚拟化管理软件为基础,该市场参与者多为以前虚拟化管理软件市场的参与者。主要有:IBM、HP、微软、思杰(Citrix)、SUN(Qlayer)、Redhat、Novell。

基础设施即服务(IaaS, Infrastructure as a Service),以按需使用按需付费的模式是向客户出售服务器、存储、网络设备、带宽等基础设施资源,该市场主要参与者目前有: Amazon AWS、Rackspace Cloud、Gogrid、Gridlayer、flexiscale、elastichosts、Terremark 、Newservers等。

平台即服务(PaaS, Platform as a Service),是利用一个完整的基础设施平台,包括应用设计、应用开发、应用测试和应用托管,这些都作为一种服务提供给客户,而不是用大量的预置型(on-premise)基础设施支持开发。该市场的参与者目前主要有:Google Appengine、Microsoft Azure 、GigaSpaces、Joyent、force.com等。

软件即服务(SaaS, Software as a Service)和一切即服务(XaaS, Everything is a Service)即是提供面向各种具体应用的服务,该市场直接面向最终的消费者,该市场参与者众多,包括salesforce.com、NetSuite、zoho、google等。

三、GigaSpaces XAP介绍[4]

GigaSpaces客户包括全球十大投资银行的其中六间、全球知名交易所、市场信息供应商、对冲基金及零售银行、五家全球最高排名网上游戏公司和著名互联网媒体机构。GigaSpaces成立于2000年,在美国、欧洲及亚洲设有办事处。有关GigaSpaces的更多资料,请浏览http://www.gigaspaces.com
联科GigaSpaces Technologies的总代理,为中国大陆、香港、澳门及台湾的客户提供eXtreme
Application Platform (XAP)
分销、部署、培训及支持服务。

GigaSpaces XAP是一种在虚拟化和分布式环境中可自动扩展的高端应用服务器, 可为事务型和分析型应用提供一个高性能、可扩展、高可靠性的运行平台。XAP平台的核心技术包括分布式内存网格, 消息网格和计算网格等技术。XAP提供了可控的扩展性,保证尖峰需求下性能的稳定。 XAP平台可以使应用无缝的运行于公有或私有云计算环境中, 实现弹性计算。 它受到世界财富前100强公司的信任,如:道琼斯和法国兴业银行就将XAP作为新型的战略解决方案,以其提高IT效率和组织的敏捷性。

下图描述了GigaSpaces XAP的整体技术架构。系统主要由4个层次组成,包括虚拟化层,内存集群层,中间件运行时层,和应用服务层。

云计算与GigaSpaces

其中的主要构成组件如下:

  • An SLA-DrivenContainer – 提供资源虚拟化的管理,由一些分布式的运行模块组成,提供CPU、内存、网络等硬件资源的虚拟化功能。
  • UnifiedClustering
    – 提供了一个单一的集群模型,这个模式是基于空间的架构实现 (Space-Based Architect)的, 将逻辑和数据集中在一个模型进行处理。基于这个统一的集群模型,XAP进一步提供了几种关键中间件功能。
  • CoreMiddleware – 基于“云空间”的运行时,它提供数据网格,消息网格以及处理网格的中间件功能。
  • LightweightApplication Containers – XAP集成了对各种应用容器的支持,包括.NET, MULE, Spring等。XAP平台可以很容易的和现有的开发工具和模式配合,保证了系统开发的灵活度和效率。
  • OpenSpaces -API and Components – 这一层实现了一些常用的公用类和对底层API进行了包装,从而向应用开发者提供了简单易用且功能强大的API。

GigaSpaces XAP实现了基于Jini和JavaSpaces架构的商业化应用。平台的技术构成还包括以下部分:

  • Mule:GigaSpaces集成了Mule的ESB Engine.
  • Hibernate: Hibernate是一款优秀的O/RMapping工具,它具有高性能和高扩展性。GigaSpaces用户可以使用Hibernate的O/RMapping技术和各种数据库产品集合。
  • Spring: Spring是轻量级应用的容器,GigaSpaces可以使用Spring来配置和管理对象和事务,使得传统的J2EE项目更加简单的移植到GigaSpaces平台。

GigaSpaces XAP主要应用在虚拟化和分布式环境中构建高性能、可扩展、高可靠性的企业级应用。 下面列出了一下典型的应用场景:

  • 利用XAP对Web应用的支持实现web集群。
  • 使用XAP提供的内存网格技术实现并行计算、内存数据库、远程方法调用及虚拟化等应用。
  • 利用XAP的低延迟的消息通知和事件驱动机制实现SOA的企业级应用
  • 使用XAP对于多语言(.Net,Java, C++)和多平台(Windows, Linux, Unix)的支持进行的系统集成开发。
  • 用于一些不想被第三方特定云产品锁定的应用中。
  • 利用XAP里对虚拟资源的监管功能,可以定制实现不同的自动扩展的策略,可用于支持对于系统负载不能准确预估的系统。
  • 利用XAP对于EC2公有云和各种私有云接口的支持,用于提供完整的云计算方案,实现真正的弹性应用。

四、GigaSpaces XAP的优越性

传统技术需要依赖各种不同中间件产品实现不同的功能,比如同一个系统里的应用服务器和消息中间件是两个完全不同的产品,这影响了系统的性能、扩展性以及可靠性,增加了系统开发和集成的复杂度,并且增加了各种license整体开销以及系统维护的成本。

GigaSpacesXAP作为一个单一的中间件平台提供数据网格,消息处理,和分布式计算的功能。 使得分布式应用的开发、部署和维护变得异常简有效,从而降低了整个软件的拥有成本。统一应用平台优越性主要体现在:

  • 减少了软件的维护成本以及各种中间件的license花销。
  • 加快和简化软件开发。
  • 提高可测试性,代码质量和系统可靠性。
  • 支持无风险的“云”技术移植方案。


传统技术使用的分层软件架构容易造成性能瓶颈,系统无法做到线性扩展,导致系统容量及响应速度难以达到理想需求。

GigaSpacesXAP根据基于空间的架构进行设计, 提供极限的吞吐量,快速的响应时间,和零延时交易。高性能优越性主要体现在:

  • 提供极限的性能和最低的延迟。
  • 使用更少的硬件并提供更佳的服务。
  • 更加有效的提高硬件的使用效率。
  • 在“云”环境中提供高性能。
  • 高性能的内存数据库产品。

传统技术使用的分层架构设计,系统瓶颈可能在不同情况下出现在不同的层次,导致系统自动按需扩展非常困难,即使耗费巨大进行系统的重构也不能做到线性的扩展。提高硬件的配置是一种暂时解决系统瓶颈的方式,但是很快新的性能瓶颈又会出现。 这些问题的根源是传统的软件架构设计不具备可扩展性,系统的组件相对集中,尤其是数据库,它会伴随应用负载的快速增长而迅速饱和。

GigaSpacesXAP涵盖了对企业应用端到端的完整支持,从前端的负载均衡器,到中间的消息和计算处理,再到后端的数据支持,整个应用都可以部署在基于内存的可扩展单元中。可以通过SLA的定义或者利用Admin API进行编码实现扩展策略,使系统自动按需扩展,真正做到“弹性计算”。
按需扩展优越性主要体现在:

  • 自动在虚拟环境中实现扩展。
  • 保证系统在不可预计的负载下情况下的性能表现。
  • 大幅提高硬件使用率,能减少或腾出更多的资源。
  • 避免了为配合业务增长而进行系统重构的开销。

传统技术通常需要人为干预和处理停机等意外事件,系统恢复过程比较常,可能导致数据损失和服务不可用的情况发生。

GigaSpacesXAP将数据存储在内存中,利用分布式高可用的拓扑结构,构成一个稳定可靠的数据库。 比如使用PrimaryBackup的拓扑结构, 如果Primary的模块意外宕机,系统会自动捕获的这个异常事件,进而自动从失败中恢复,仅需几秒钟时间。 自我恢复机制优越性主要体现在:

  • 消除意外的停机事件和减速影响。
  • 通过自适应来解决出现的问题。
  • 无需花更多的精力去解决高负载问题。
  • 保证响应时间。
  • 通过自我恢复能力改进可用性。

五、GigaSpaces XAP主要功能清单

1、内存网格 (In-Memory Data Grid)

  • 支持各种拓扑结构
  • 支持数据自动分区
  • 支持多条数据批操作
  • 支持Template Mapping/SQLQuery/JDBC驱动的数据操作模式
  • 支持map接口
  • 支持索引
  • 支持Local Cache/Local View
  • 支持FIFO
  • 支持数据持久化,包括同步或异步模式
  • 支持交易处理,包括本地交易、分布式交易
  • 提供Mirror服务
  • 支持LRU缓存算法,包括支持数据显示移除

2、消息网格 (Messaging Grid)

  • 提供事件驱动框架
  • 支持点对点消息传递
  • 支持一对多消息传递
  • 支持事务处理

3、服务网格(Service Grid)

  • SLA驱动
  • 支持自恢复
  • 支持弹性扩展
  • 支持应用的动态迁移

4、远程执行(Executors)

  • 提供分布式处理框架
  • 支持单个Task/分布式Task执行
  • 支持同步/异步执行
  • 提供Map-Reduce接口

5、远程调用(Remoting)

  • 支持同步/异步执行
  • 支持Map-Reduce接口
  • 支持Master-worker模式

6、事务处理(Transaction)

  • 支持本地事务
  • 支持分布式JINI事务
  • 支持XA/JTA

7、监控和管理

  • 提供基于Web的Dashboard监控所有云资源
  • 提供GS Management Center GUI
  • 管理和控制XAP运行时
  • 发布和管理应用程序
  • 提供命令行监管XAP运行时和应用程序
  • 提供Admin API程序接口监控运行时和应用程序
  • 支持JMX
  • 支持System Dump

8、无缝集成第三方软件

  • 支持EC2平台
  • 支持VMVare平台
  • 内嵌Spring to 3.0.3
  • 内嵌Jetty 7.1
  • 内建ESB MULE

9、支持Web应用

  • 支持Web集群
  • 支持Session集群

10、支持各种开发平台

  • 支持Java开发平台
  • 支持C++开发平台
  • 支持.NET 4开发平台
  • 支持不同平台的系统集成
  • 支持脚本执行(JavaScript/Groovy/etc)

资料来源:

  1. http://thecloudtutorial.com/nistcloudcomputingdefinition.html
  2. http://www.slideshare.net/OTNArchbeat/cloud-computingtrendsarchday2011
  3. http://labs.chinamobile.com/groups/10219_125612
  4. http://www.clustertech.com/gs/chi/index.html