開源雲平臺的分析與比較
作為雲端計算的一種重要形式,IaaS服務有各種開源和商業雲平臺方案。本文立足於使用開源IaaS雲平臺來開發公有云和私有云管理平臺的角度,介紹和比較了Eucalyptus、OpenNebula、CloudStack和OpenStack等開源IaaS雲平臺。
從AWS看成功雲平臺的特點
AWS是當前最成功的雲端計算平臺,其系統架構最大的特點就是透過Web Service介面開放資料和功能,一切以服務為第一位;並透過SOA的架構使系統達到松耦合。
AWS 提供的Web Service棧,由訪問層(API、管理控制檯和各種命令列等),通用服務層(身份認證、監控、部署和自動化等),PaaS層服務(並行處理、內容傳輸 和訊息服務等),IaaS層服務(計算EC2、儲存S3/EBS、網路服務VPC/ELB等以及資料庫服務)幾部分組成。使用者應用使用IaaS基礎IT資 源,將PaaS和通用服務作為應用架構中的元件來構建自己的服務。綜合來看,AWS生態環境中系統架構的核心思想為SOA、分層和服務組合。
私有云的需求
除了AWS這類公有云平臺,私有云和混合雲也是IaaS的重要形式。企業對於私有云平臺通常會有以下幾個需求。
計算虛擬技術的多樣選擇(KVM、XEN、ESX、ESXi、Hyper-V和XenServer等)。
儲存技術/裝置的多樣支援(NAS、IP-SAN和FC-SAN等)。
網路技術/裝置的多種支援(交換機、路由器和防火牆等)。
多種API的支援。
前三個需求要求IaaS平臺能遮蔽底層的具體技術/裝置的差別對外呈現基本一致的能力與介面。這一般要採用抽象框架加外掛的設計來實現。另外,基於計算虛擬化、網路和儲存等技術自成體系的原因,整個架構設計中須考慮將計算虛擬化、網路和儲存獨立成三個子系統或服務。
因此,雲平臺至少應包含三層:API或接入層提供各種不同API或訪問方式,核心虛擬化管理層整合底層服務來對外提供IaaS服務,計算/儲存/網路服務層遮蔽技術差異。
技術團隊開發需求
小型技術團隊精英化,每個人都能夠參與整體設計。大型團隊則為金字塔結構,只有少數人能夠參與整體設計,多數人員因能力和職責的原因只能接觸到單個功能或模組。
為滿足這兩種團隊的要求,雲平臺的整體軟體架構必須做到松耦合,透過組合元件、模組和服務來構成整個系統;同時需要元件、模組和服務功能內聚以便於小團隊獨立維護,方便獨立的設計、開發和演進。
另外,雲平臺需要考慮提供基礎共享元件在各個服務中重用。典型的可重用元件為資料庫ORM、訊息通訊、服務端基礎框架、配置管理系統、日誌系統和錯誤定位系 統等。很多大型團隊會整合這些基礎共享服務,透過領域描述語言自動化生成基礎框架程式碼,使開發人員可以專注於具體的服務實現和關鍵技術研究。
雲平臺的介紹和比較
下面從系統架構要分層、元件化,採用SOA以達到系統松耦合;元件服務使用框架外掛化設計;開發平臺化等方面來比較4個開源IaaS雲平臺。
Eucalyptus
Eucalyptus 是最早試圖克隆AWS的開源IaaS雲平臺,整體架構如圖1的左半部分所示。Eucalyptus由雲控制器(CLC)、Walrus、叢集控制器 (CC)、儲存控制器(SC)和節點控制器(NC)組成,它們相互協作共同提供所需的雲服務。元件間使用支援WS-Security的SOAP訊息實現安 全的通訊。Eucalyptus對外提供相容AWS的SOAP和Query介面,不提供其他API。
從AWS看成功雲平臺的特點
AWS是當前最成功的雲端計算平臺,其系統架構最大的特點就是透過Web Service介面開放資料和功能,一切以服務為第一位;並透過SOA的架構使系統達到松耦合。
AWS 提供的Web Service棧,由訪問層(API、管理控制檯和各種命令列等),通用服務層(身份認證、監控、部署和自動化等),PaaS層服務(並行處理、內容傳輸 和訊息服務等),IaaS層服務(計算EC2、儲存S3/EBS、網路服務VPC/ELB等以及資料庫服務)幾部分組成。使用者應用使用IaaS基礎IT資 源,將PaaS和通用服務作為應用架構中的元件來構建自己的服務。綜合來看,AWS生態環境中系統架構的核心思想為SOA、分層和服務組合。
私有云的需求
除了AWS這類公有云平臺,私有云和混合雲也是IaaS的重要形式。企業對於私有云平臺通常會有以下幾個需求。
計算虛擬技術的多樣選擇(KVM、XEN、ESX、ESXi、Hyper-V和XenServer等)。
儲存技術/裝置的多樣支援(NAS、IP-SAN和FC-SAN等)。
網路技術/裝置的多種支援(交換機、路由器和防火牆等)。
多種API的支援。
前三個需求要求IaaS平臺能遮蔽底層的具體技術/裝置的差別對外呈現基本一致的能力與介面。這一般要採用抽象框架加外掛的設計來實現。另外,基於計算虛擬化、網路和儲存等技術自成體系的原因,整個架構設計中須考慮將計算虛擬化、網路和儲存獨立成三個子系統或服務。
因此,雲平臺至少應包含三層:API或接入層提供各種不同API或訪問方式,核心虛擬化管理層整合底層服務來對外提供IaaS服務,計算/儲存/網路服務層遮蔽技術差異。
技術團隊開發需求
小型技術團隊精英化,每個人都能夠參與整體設計。大型團隊則為金字塔結構,只有少數人能夠參與整體設計,多數人員因能力和職責的原因只能接觸到單個功能或模組。
為滿足這兩種團隊的要求,雲平臺的整體軟體架構必須做到松耦合,透過組合元件、模組和服務來構成整個系統;同時需要元件、模組和服務功能內聚以便於小團隊獨立維護,方便獨立的設計、開發和演進。
另外,雲平臺需要考慮提供基礎共享元件在各個服務中重用。典型的可重用元件為資料庫ORM、訊息通訊、服務端基礎框架、配置管理系統、日誌系統和錯誤定位系 統等。很多大型團隊會整合這些基礎共享服務,透過領域描述語言自動化生成基礎框架程式碼,使開發人員可以專注於具體的服務實現和關鍵技術研究。
雲平臺的介紹和比較
下面從系統架構要分層、元件化,採用SOA以達到系統松耦合;元件服務使用框架外掛化設計;開發平臺化等方面來比較4個開源IaaS雲平臺。
Eucalyptus
Eucalyptus 是最早試圖克隆AWS的開源IaaS雲平臺,整體架構如圖1的左半部分所示。Eucalyptus由雲控制器(CLC)、Walrus、叢集控制器 (CC)、儲存控制器(SC)和節點控制器(NC)組成,它們相互協作共同提供所需的雲服務。元件間使用支援WS-Security的SOAP訊息實現安 全的通訊。Eucalyptus對外提供相容AWS的SOAP和Query介面,不提供其他API。
[img index=1]
從分層的角度來看,Eucalyptus缺乏API層設計, CLC是全域性資源管理層,叢集服務(CC和SC)為底層資源管理層。CLC、CC和NC三層結構不是軟體架構層面的分層,只能看作一種為了管理較大規模叢集的工程化方法。
從元件服務角度看,每個叢集中將計算和儲存服務設計為獨立服務,網路仍為與計算服務的一部分。儘管Eucalyptus在程式碼實現上是將網路部分獨立出來的,但整體上並未按照獨立的服務來設計,整體設計解耦不夠。
CLC 是Eucalyptus的核心,包括虛擬機器控制、儲存卷管理、網路資源(Address)管理、映象管理、快照管理、Keypair管理和後設資料管理等服 務模組。開源ESB Mule將所有的服務編排起來,透過Eucalyptus服務對外統一提供EC2和EBS服務,如圖1的右半部分所示。由此可以看 到,Eucalyptus在SOA層面上做得較好。但ESB技術門檻高,對設計開發人員要求較高。同時因為Eucalyptus只在很少的地方支援外掛 (如多Hypervisor支援的外掛),所以整體上對抽象框架和外掛的設計做得不多。
從開發平臺的角度來看,Eucalyptus的主要 開發語言為Java和C;CLC採用開源ESB Mule為核心編排服務,架構較新穎;但CC和NC採用Apache +CGI的軟體架構,基於Axis/C來實現Web Service。整體來看,Eucalyptus還沒有開發平臺化的趨勢。
相關文章
- 移動 App 雲測試平臺的對比與分析APP
- 【求助】有哪些比較成熟的開源資料治理工具/平臺
- 免費的雲渲染平臺有哪些?哪些平臺價效比較高?
- 哪些開源雲工具比較實用呢?
- 目前哪些開源雲監控工具比較好用!
- 容器叢集管理平臺的比較
- 低程式碼開發平臺有哪些比較好用的?
- 直播平臺開發,純時間比較(時分),不含日期,js前端比較JS前端
- Tracardi:開源客戶資料整合與分析平臺
- 11個熱門物聯網開發平臺的比較
- 有哪些比較好的外匯平臺?
- 開源加密解密庫比較加密解密
- 五種開源協議的比較協議
- Dojo與jQuery綜合比較分析jQuery
- 站點可靠性工程SRE與平臺工程比較
- 雲原生Java與Golang比較 -lgorJavaGolang
- Tcloud 雲測平臺-多服務框架開源Cloud框架
- 開源雲原生平臺對比 KubeSphere vs RainbondAI
- Java中對HashMap的深度分析與比較JavaHashMap
- 音視訊類的 APP,測試相容性哪個雲平臺比較好用?APP
- Google 雲平臺負責人:開源是唯一的路Go
- 常用Java靜態程式碼分析工具的分析與比較Java
- 事件流平臺Kafka、Pulsar和RabbitMQ比較 - Picnic事件KafkaMQ
- 現在手遊比較好的折扣平臺有哪些 折扣低又安全的手遊平臺
- 常見的五種開源協議的比較協議
- Java中對HashMap的深度分析與比較(轉)JavaHashMap
- 索引的分析和比較索引
- 各大物聯網平臺對比之阿里智慧雲平臺阿里
- 使用開源軟體快速搭建資料分析平臺
- 開源工具、平臺列表開源工具
- 盤點 7 月份比較火的開源專案
- asp.net core 比較好的開源專案ASP.NET
- SQL server 與Oracle開發比較SQLServerOracle
- 【原創】InnoDB 和TokuDB的讀寫分析與比較
- 中美移動醫療市場的分析與比較
- 資料視覺化分析平臺開源方案集錦視覺化
- 海雲安開源元件安全管理平臺OSCA,為金融機構開源安全助力元件
- BookStack:一個開源的維基平臺