閱讀276 返回首頁    go 技術社區[雲棲]


雲計算與GigaSpaces

作者:陳曉煒

 

這是我結合雲計算概念和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 fourdeployment 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]來簡單表示一下:

1

    這裏有兩點要注意:

第一,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]。

2

    硬件與設備製造市場包括絕大部分傳統的硬件製造商,因為它們都已經在某種形式上支持虛擬化和雲計算,比如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的更多資料,請瀏覽https://www.gigaspaces.com。 聯科GigaSpaces Technologies的總代理,為中國大陸、香港、澳門及台灣的客戶提供eXtreme Application Platform (XAP)分銷、部署、培訓及支持服務。

GigaSpaces XAP是一種在虛擬化和分布式環境中可自動擴展的高端應用服務器, 可為事務型和分析型應用提供一個高性能、可擴展、高可靠性的運行平台。XAP平台的核心技術包括分布式內存網格, 消息網格和計算網格等技術。XAP提供了可控的擴展性,保證尖峰需求下性能的穩定。 XAP平台可以使應用無縫的運行於公有或私有雲計算環境中, 實現彈性計算。 它受到世界財富前100強公司的信任,如:道瓊斯和法國興業銀行就將XAP作為新型的戰略解決方案,以其提高IT效率和組織的敏捷性。

下圖描述了GigaSpaces XAP的整體技術架構。係統主要由4個層次組成,包括虛擬化層,內存集群層,中間件運行時層,和應用服務層。

 3

    其中的主要構成組件如下:

  • 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. https://thecloudtutorial.com/nistcloudcomputingdefinition.html
  2. https://www.slideshare.net/OTNArchbeat/cloud-computingtrendsarchday2011
  3. https://labs.chinamobile.com/groups/10219_125612
  4. https://www.clustertech.com/gs/chi/index.html

 

源自作者個人博客

最後更新:2017-04-03 07:57:06

  上一篇:go 突破內核模塊版本校驗機製
  下一篇:go puppet 變態語法 shell 下自檢測