【編者按】如何結(jié)合各種最新的云計(jì)算開源技術(shù)設(shè)計(jì)屬于自己的云架構(gòu)是一個(gè)值得研究的課題。在這篇文章中,天云軟件研發(fā)總監(jiān)賈琨從開源IaaS的技術(shù)趨勢(shì)及私有云的實(shí)際需求出發(fā),結(jié)合天云的產(chǎn)品研發(fā)和項(xiàng)目實(shí)踐經(jīng)驗(yàn)介紹了SkyForm云管理平臺(tái)產(chǎn)品的架構(gòu)和實(shí)現(xiàn)思路。
IaaS私有云項(xiàng)目的實(shí)際需求
去年的OpenStack Meetup線下活動(dòng)中,有人總結(jié)了國(guó)內(nèi)基于OpenStack的私有云項(xiàng)目需滿足以下功能需求:
基于OpenStack提供基礎(chǔ)架構(gòu)層的自服務(wù)功能,包括虛擬機(jī),存儲(chǔ)和網(wǎng)絡(luò)功能等;
需要完整的監(jiān)控功能,包括硬件設(shè)備、Hypervisor物理機(jī)及虛擬機(jī)甚至應(yīng)用層面等;
考慮ITIL方面的需求,如提供資產(chǎn)管理、CMDB、用戶/權(quán)限管理、審計(jì)及事件通知等功能;
考慮資源整合和現(xiàn)有系統(tǒng)遷移,如VMware存量虛擬化的整合問題。
類似的觀點(diǎn)我們也可以從Forrester去年發(fā)布的調(diào)查報(bào)告《關(guān)于私有云的10個(gè)事實(shí)》中看到:私有云的3個(gè)核心組件是自服務(wù)訪問、追蹤和監(jiān)控資源和完全自動(dòng)化;最耗時(shí)的步驟;集成和過程自動(dòng)化。
綜合兩個(gè)觀點(diǎn),我們得到以下的典型的IaaS私有云技術(shù)方案:
私有云的自服務(wù)訪問通過OpenStack或CloudStack等開源IaaS平臺(tái)提供;
追蹤資源的功能需要資產(chǎn)管理、CMDB等系統(tǒng)提供資源的從采購(gòu)到業(yè)務(wù)上線以及中間的各種變更的全生命周期管理;
監(jiān)控資源覆蓋配置管理、性能采集及告警功能;
通過監(jiān)控、告警及相關(guān)的故障、事件處理系統(tǒng)來維護(hù)系統(tǒng)的穩(wěn)定高效運(yùn)行,建立一個(gè)閉環(huán)反饋系統(tǒng)來構(gòu)建完全自動(dòng)化管理系統(tǒng)。
傳統(tǒng)企業(yè)IT管理流行的ITIL通過一組規(guī)范試圖達(dá)指導(dǎo)IT服務(wù)管理,在當(dāng)前云技術(shù)的發(fā)展下則有了更高的實(shí)現(xiàn)要求,構(gòu)建一套工具鏈來達(dá)到完全的自動(dòng)化,這就是云管理平臺(tái)。在這個(gè)目標(biāo)達(dá)成的過程中,各種系統(tǒng)集成和過程自動(dòng)化是當(dāng)前的常態(tài),也是起點(diǎn)。再加上cloud bursting的要求,基本覆蓋了私有云項(xiàng)目的技術(shù)發(fā)展方向和項(xiàng)目落地對(duì)系統(tǒng)架構(gòu)及功能的要求。
天云SkyForm私有云管理平臺(tái)實(shí)踐
天云軟件在近幾年的產(chǎn)品研發(fā)和項(xiàng)目實(shí)踐中逐步構(gòu)建了一個(gè)云管理平臺(tái)產(chǎn)品SkyForm來試圖滿足上述要求,下面介紹一下這個(gè)系統(tǒng)的功能、架構(gòu)及實(shí)現(xiàn)的思路。
SkyForm系統(tǒng)架構(gòu)
從系統(tǒng)架構(gòu)圖(見上圖)中我們可以看到,SkyForm對(duì)外提供統(tǒng)一的IaaS資源自助服務(wù)的功能抽象,可以覆蓋各種公有云、私有云系統(tǒng);另外還設(shè)計(jì)了資源管理、用戶權(quán)限管理功能和監(jiān)控、告警功能。
SkyForm的核心子服務(wù)是由SkyForm Cloud Service Gateway、SkyForm Cloud API和各種功能組件、云平臺(tái)驅(qū)動(dòng)構(gòu)成的SkyForm Multi-Cloud Engine。其中SkyForm Cloud Service Gateway對(duì)各種私有云、公有云進(jìn)行統(tǒng)一的抽象并管理各種系統(tǒng)的不同能力, SkyForm Cloud API則對(duì)外提供抽象OpenStack兼容的API并提供特定功能的擴(kuò)展。虛擬化平臺(tái)(如VMware)、開源云OS平臺(tái)(如CloudStack和OpenStack)、容器技術(shù)(如Docker)以及公有云(如AWS)通過Driver接入SkyForm云平臺(tái)以滿足多種應(yīng)用場(chǎng)景的需求。其中VMware Driver會(huì)處理用戶存量VM的自動(dòng)發(fā)現(xiàn)和自服務(wù)管理操作,可以利用VMware的高級(jí)資源管理功能如DRS等并支持集成VMware的各種IaaS服務(wù)如VDP備份服務(wù),桌面服務(wù)View,PaaS層服務(wù)如vFabric數(shù)據(jù)庫服務(wù)。
SkyForm Resource Scheduler提供資源管理,資源調(diào)度,資源分析等功能。它處理VM的資源分配及位置決策,公有云Cloud Bursting觸發(fā)并對(duì)外提供各種基于優(yōu)先級(jí)/服務(wù)能力的資源管理能力,實(shí)現(xiàn)上通過實(shí)現(xiàn)集中的openstack/cloudstack調(diào)度插件完成。Scheduler也提供系統(tǒng)資源容量管理功能,再加上資源請(qǐng)求分析,請(qǐng)求預(yù)測(cè)功能,試圖為企業(yè)提供云平臺(tái)建設(shè)投資決策的支持。
SkyForm Application Manager管理云上運(yùn)行業(yè)務(wù)所使用的各種IT資源,包括VM/物理機(jī)、虛擬硬盤以及網(wǎng)絡(luò)資源(如VNetWork, VLAN,IP)的資源統(tǒng)計(jì),資源詳細(xì)列表信息以及資源用途信息(如某個(gè)VM作為DB server還是接入server等用途信息)。配合Monitoring as a Service服務(wù)和應(yīng)用性能數(shù)據(jù)采集技術(shù),可以提供完整的業(yè)務(wù)資源管理,應(yīng)用性能管理(APM)解決方案。
SkyForm CMDB設(shè)計(jì)滿足資產(chǎn)管理、CMDB及ITIL相關(guān)的需求,它接入RabbitMQ消息總線,監(jiān)聽來自SkyForm Multi-Cloud Engine等其他系統(tǒng)的各種資源生命周期變更事件(如VM的創(chuàng)建/啟動(dòng)/停止/銷毀事件和Hypervisor停機(jī)事件),維護(hù)整體IT資源的關(guān)聯(lián)關(guān)系和變更信息。它連接了SkyForm的OS( Multi-Cloud Engine)和管理系統(tǒng)(監(jiān)控、告警系統(tǒng)),同時(shí)也提供API與其他IT系統(tǒng)集成。
SkyForm設(shè)計(jì)了一個(gè)分布式的數(shù)據(jù)采集、分析、統(tǒng)計(jì)框架,提供從物理機(jī)Hypervisor,交換機(jī),存儲(chǔ)設(shè)備到虛擬機(jī)的監(jiān)控、告警支持。從上圖可見,SkyForm中包括集中的采集控制節(jié)點(diǎn)和采集任務(wù)執(zhí)行器,這樣的設(shè)計(jì)可以有效處理大規(guī)模環(huán)境下海量數(shù)據(jù)的采集任務(wù),也能應(yīng)對(duì)復(fù)雜網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)采集和安全的綜合要求。采集數(shù)據(jù)會(huì)直接執(zhí)行各種閾值告警規(guī)則的處理,將各種設(shè)備包括資源實(shí)例的告警統(tǒng)一匯總。告警系統(tǒng)支持外部設(shè)備或者系統(tǒng)通過SNMPTrap或者消息主動(dòng)上報(bào)各種設(shè)備異常、系統(tǒng)預(yù)警事件。為了利用優(yōu)秀的開源采集監(jiān)控系統(tǒng)的能力,設(shè)計(jì)了采集適配器來支持Zabbix等擴(kuò)充SkyForm的設(shè)備支持能力。另外基于OpenStack Celiometer開發(fā)了監(jiān)控服務(wù)(Monitoring as a Service),用于用戶自定義資源指標(biāo)和應(yīng)用性能指標(biāo)管理。
SkyForm整體架構(gòu)和實(shí)現(xiàn)思路
SkyForm設(shè)計(jì)過程中詳細(xì)分析了各種開源云平臺(tái)技術(shù)(詳見相關(guān)文章《開源IaaS云平臺(tái)的分析與比較》并吸取了團(tuán)隊(duì)成員參與過的多個(gè)類似產(chǎn)品的經(jīng)驗(yàn)和教訓(xùn),整體架構(gòu)和實(shí)現(xiàn)有如下幾個(gè)方面的考慮:
1. 分層與SOA設(shè)計(jì)
系統(tǒng)中明確地定義了Portal與API的接入層,核心IaaS功能層,接口適配層及底層IaaS資源層等邏輯分層,具有功能明確獨(dú)立的各種服務(wù),如IaaS服務(wù)Multi-Cloud Engine,調(diào)度服務(wù)SkyForm Resource Scheduler,監(jiān)控服務(wù) Monitoring,告警服務(wù)Alarm Service,包括沒有在架構(gòu)圖中出現(xiàn)的應(yīng)用AutoScaling服務(wù)和用于解決服務(wù)發(fā)現(xiàn)和依賴的服務(wù)管理功能。
2. 異步事件驅(qū)動(dòng)
異步是分布式系統(tǒng)的典型信息交換方式,SkyForm引入RabbitMQ來利用異步事件的優(yōu)勢(shì)。例如,Multi-Cloud Engine接收底層Cloud Service Gateway發(fā)出的各種云平臺(tái)的資源變更事件,如VM的創(chuàng)建,啟動(dòng)/停止,銷毀等事件,同時(shí)經(jīng)過轉(zhuǎn)換后對(duì)外廣播統(tǒng)一的資源變更事件驅(qū)動(dòng)SkyForm CMDB和監(jiān)控CollectorManager, Collector做出相應(yīng)地處理邏輯。系統(tǒng)中設(shè)計(jì)了全局的事件管理功能用于記錄各類系統(tǒng)事件(如用戶登錄,VM操作,系統(tǒng)配置等事件),可以做為資源計(jì)量,安全審計(jì),流程追蹤等功能的原始信息。
3. 控制流與數(shù)據(jù)流分離
云平臺(tái)實(shí)際是一個(gè)管理系統(tǒng),包括資源開通流程,資源操作流程等幾個(gè)重要流程。采用消息總線的設(shè)計(jì)能夠很好地處理這些流程。另一方面各服務(wù)間通常管理資源的某個(gè)維度的信息,需要保持服務(wù)間的關(guān)鍵信息的同步同時(shí)對(duì)外提供數(shù)據(jù)查詢能力。SkyForm的一個(gè)架構(gòu)原則是,控制流采用異步消息驅(qū)動(dòng),服務(wù)間的數(shù)據(jù)交換采用Restful API同步完成并輔以異步事件消息做增量更新。
4. 分布式任務(wù)管理
SkyForm中兩大重要服務(wù)組件, Multi-Cloud Engine和監(jiān)控服務(wù)均采用了分布式設(shè)計(jì)。其中Multi-Cloud Engine采用了無狀態(tài)的負(fù)載均衡設(shè)計(jì),監(jiān)控服務(wù)則采用了Master-Slave的主從設(shè)計(jì)處理采集任務(wù)管理并輔以負(fù)載均衡模式響應(yīng)外部查詢。一個(gè)重要的出發(fā)點(diǎn)是基于資源生命周期來自大量用戶的多地并發(fā)操作互相沒有依賴,而監(jiān)控采集任務(wù)有各種集群,地域,網(wǎng)絡(luò)安全限制需要靈活的全局調(diào)度以滿足生產(chǎn)環(huán)境的各種要求。未來監(jiān)控系統(tǒng)會(huì)引用Gossip和分布式哈希等技術(shù)進(jìn)行架構(gòu)演進(jìn)并輔以系統(tǒng)健康保障系統(tǒng),滿足無人值守的超大規(guī)模集群和任務(wù)管理的需求。
5. 插件化設(shè)計(jì)
插件化設(shè)計(jì)是實(shí)現(xiàn)異構(gòu)系統(tǒng)管理的經(jīng)典實(shí)踐,SkyForm在Multi-Cloud Engine,性能數(shù)據(jù)采集,外部告警接受處理上都采用了類似的設(shè)計(jì)來處理異構(gòu)多版本IaaS資源池,多類型的采集任務(wù)和多樣的告警來源的管理需求。
下一步的工作
典型的IT系統(tǒng)通常需要經(jīng)歷建設(shè)、實(shí)用、維護(hù)、調(diào)優(yōu)和再投資等階段,云管理平臺(tái)作為新一代的企業(yè)IT資源供給技術(shù)平臺(tái),也需要從IT服務(wù)生命周期的角度提供技術(shù)支持。SkyForm或類似的基于CloudStack/OpenStack的解決方案為用戶提供了建云和提供IaaS層資源服務(wù)的技術(shù)平臺(tái),但用戶需要根據(jù)自己的業(yè)務(wù)需求構(gòu)建合適的覆蓋應(yīng)用的開發(fā)、測(cè)試、線上管理的應(yīng)用生命周期管理平臺(tái);另外一旦云平臺(tái)系統(tǒng)上線運(yùn)行,服務(wù)監(jiān)控、系統(tǒng)調(diào)優(yōu)等就成為日常工作,用戶迫切需要一套高自動(dòng)化水平的運(yùn)維技術(shù)平臺(tái)。針對(duì)這樣的事實(shí),SkyForm當(dāng)前和未來會(huì)在應(yīng)用管理和運(yùn)維技術(shù)上做一定的探索,在這個(gè)過程中會(huì)引入大數(shù)據(jù)技術(shù)從資源生命周期的維度收集各種相關(guān)數(shù)據(jù),通過統(tǒng)計(jì)分析來為資源調(diào)優(yōu)、資源調(diào)度和再投資決策等提供支持。(責(zé)編/周建丁)
作者簡(jiǎn)介:賈琨,云基地旗下初創(chuàng)公司北京天云融創(chuàng)軟件技術(shù)有限公司產(chǎn)品研發(fā)總監(jiān)兼架構(gòu)師,2005年開始從事大規(guī)模Web服務(wù)、HPC/網(wǎng)格及云管理平臺(tái)等分布式系統(tǒng)研發(fā),歷任騰訊Qzone、IBM Platform Computing資源管理調(diào)度系統(tǒng),華為FusionSphere等產(chǎn)品的開發(fā)、架構(gòu)及產(chǎn)品設(shè)計(jì)工作。精通各種IaaS平臺(tái)、資源管理、資源調(diào)度等相關(guān)技術(shù),2010年開始從事OpenStack研發(fā)、社區(qū)活動(dòng),當(dāng)前主要關(guān)注Docker及相關(guān)資源管理技術(shù),如Mesos、YARN等。