羅文兵 楊婷婷 徐海波
(北京賽迪軟件測評工程技術(shù)中心有限公司 北京市 100048)
云平臺是云計算共性基礎(chǔ)資源統(tǒng)籌調(diào)度的核心,其統(tǒng)籌系統(tǒng)的所有共性基礎(chǔ)資源,實現(xiàn)虛擬計算、存儲、網(wǎng)絡(luò)等多類共性軟硬件資源的集中管理和統(tǒng)一調(diào)度,支撐上層應(yīng)用基礎(chǔ)資源的統(tǒng)一運營、獨立運維,實現(xiàn)各業(yè)務(wù)節(jié)點服務(wù)資源和數(shù)據(jù)產(chǎn)品均衡分布,支撐數(shù)據(jù)、軟件、服務(wù)等各類資源對各業(yè)務(wù)節(jié)點的共享共用,為各業(yè)務(wù)節(jié)點提供計算資源保障、數(shù)據(jù)備份保障、軟件容災(zāi)備份、資源遠(yuǎn)程調(diào)用等服務(wù)和支撐。
云平臺整體架構(gòu)是基于底層硬件設(shè)施,包括服務(wù)器、終端機、磁盤陣列、路由器、交換機等,并通過虛擬化技術(shù)、分布式并行技術(shù)整合形成虛擬化資源池,為上層業(yè)務(wù)應(yīng)用統(tǒng)一提供計算資源、存儲資源和網(wǎng)絡(luò)資源。
一般而言,通用云平臺技術(shù)架構(gòu)如圖1所示,分為以下五個層次。
圖1:通用云平臺技術(shù)架構(gòu)
(1)物理層,是搭建、部署云基礎(chǔ)架構(gòu)所需的物理設(shè)備和配套環(huán)境,為云基礎(chǔ)架構(gòu)提供基本的物理資源。
(2)云操作系統(tǒng)層,是構(gòu)架于服務(wù)器、存儲、網(wǎng)絡(luò)等基礎(chǔ)硬件資源和單機操作系統(tǒng)、中間件、數(shù)據(jù)庫等基礎(chǔ)軟件之上的、管理海量的基礎(chǔ)硬件、軟件資源的云平臺綜合管理系統(tǒng)。
(3)基礎(chǔ)云資源服務(wù)層,將各類虛擬化資源封裝成對外提供的服務(wù),如虛擬主機服務(wù)、裸金屬服務(wù)、容器服務(wù)、對象存儲服務(wù)、文件存儲服務(wù)等。
(4)服務(wù)支撐層,是指為上層云計算應(yīng)用調(diào)用云基礎(chǔ)架構(gòu)計算、存儲資源預(yù)留的接口和對用戶使用云基礎(chǔ)架構(gòu)計算、存儲資源提供的交互界面。服務(wù)支撐層主要由數(shù)據(jù)庫服務(wù)、大數(shù)據(jù)引擎服務(wù)、中間件服務(wù)、管理監(jiān)控服務(wù)、云安全防護服務(wù)等組成。
(5)應(yīng)用層,用戶部署的云計算應(yīng)用。
基于以上分析,針對云平臺的測試內(nèi)容主要包括2個方面,即云平臺基礎(chǔ)能力測試和云平臺對業(yè)務(wù)應(yīng)用系統(tǒng)的支撐能力測試。其中,云平臺對業(yè)務(wù)應(yīng)用系統(tǒng)的支撐能力測試需結(jié)合不同業(yè)務(wù)系統(tǒng)的具體應(yīng)用需求進行測試設(shè)計,不同業(yè)務(wù)系統(tǒng)對應(yīng)測試需求差異性較大,本文不對此展開論述,而重點針對云平臺基礎(chǔ)能力測試進行分析。
如圖2所示,云平臺軟件基礎(chǔ)能力包括云操作系統(tǒng)能力、基礎(chǔ)云資源服務(wù)能力、數(shù)據(jù)庫服務(wù)能力、中間件服務(wù)能力、大數(shù)據(jù)引擎服務(wù)能力、管理監(jiān)控服務(wù)能力、云安全防護服務(wù)能力等方面,下面逐一針對上述服務(wù)能力分析其測試重點。
圖2:云平臺基礎(chǔ)能力組成圖
云操作系統(tǒng)處于云平臺底層,支持基于虛擬化資源池的云架構(gòu),提供統(tǒng)一的云操作系統(tǒng)和開發(fā)環(huán)境,可整合、管理和調(diào)度云平臺所需的計算、存儲、網(wǎng)絡(luò)等硬件資源,形成統(tǒng)一資源池,并能夠?qū)崿F(xiàn)網(wǎng)絡(luò)的靈活管理和安全控制,提供分布式任務(wù)協(xié)調(diào)與遠(yuǎn)端調(diào)用能力,實現(xiàn)資源的按需動態(tài)分配和統(tǒng)一管理調(diào)度。云操作系統(tǒng)的測試重點包括:
(1)硬件資源調(diào)度能力:主要測試云操作系統(tǒng)是否支持基于虛擬化資源池的云架構(gòu);能否根據(jù)任務(wù)規(guī)劃、數(shù)據(jù)處理等任務(wù)需要,在統(tǒng)一的資源池分配、調(diào)度、使用計算資源;是否具有計算、存儲、網(wǎng)絡(luò)等資源統(tǒng)一調(diào)度和快速服務(wù)響應(yīng)的能力。
(2)網(wǎng)絡(luò)管理能力:主要測試云操作系統(tǒng)是否可以基于軟件定義網(wǎng)絡(luò)的機制等實現(xiàn)網(wǎng)絡(luò)的管理和控制。
(3)按需擴容能力:主要測試云操作系統(tǒng)是否能夠根據(jù)業(yè)務(wù)應(yīng)用系統(tǒng)擴展需求,對計算、存儲能力進行水平擴展,在分布式架構(gòu)下支持上萬臺服務(wù)器、EB量級等文件存儲擴展;是否能夠根據(jù)需要進行在線擴容和縮容,并實現(xiàn)上層業(yè)務(wù)應(yīng)用無感知。
(4)服務(wù)運維管理能力:主要測試云操作系統(tǒng)是否支持應(yīng)用系統(tǒng)進行服務(wù)注冊、服務(wù)發(fā)布、服務(wù)調(diào)度和服務(wù)監(jiān)控等操作。
基礎(chǔ)云資源服務(wù)針對業(yè)務(wù)系統(tǒng)使用需求,在對物理資源和虛擬資源進行有效監(jiān)控管理的基礎(chǔ)上,通過對服務(wù)模型的抽取,屏蔽底層基礎(chǔ)設(shè)施的差異,將云操作系統(tǒng)管理的計算、存儲、網(wǎng)絡(luò)資源封裝成各種服務(wù),如計算資源按需可封裝為云虛擬主機服務(wù)、高性能計算服務(wù)、裸金屬服務(wù)、容器服務(wù)等;存儲資源可封裝為高速存儲、對象存儲、塊存儲、文件存儲等,為上層應(yīng)用提供通用的虛擬資源服務(wù)。基礎(chǔ)云資源服務(wù)測試的重點包括如下:
(1)虛擬主機服務(wù)能力:主要驗證虛擬主機基礎(chǔ)資源服務(wù)的基本功能、管理與監(jiān)控接口,以及并發(fā)創(chuàng)建和熱遷移性能等。
(2)裸金屬服務(wù)能力:主要測試彈性裸金屬服務(wù)是否可以滿足高性能計算場景下實時數(shù)據(jù)存儲以及歷史數(shù)據(jù)存儲需求,是否提供基于并行文件系統(tǒng)的高速文件存儲服務(wù)等。
(3)容器服務(wù)能力:主要驗證容器創(chuàng)建、容器應(yīng)用、容器集群等相關(guān)功能,以及容器啟動、容器鏡像容量等性能。
(4)存儲服務(wù)能力:主要針對對象存儲、文件存儲和塊存儲等基本管理功能、接口管理功能和數(shù)據(jù)存儲性能等進行測試。
其中,在高性能計算場景下量化裸金屬的性能損耗,重點從CPU、內(nèi)存兩個方面考察裸金屬服務(wù)的性能損耗。
(1)關(guān)于CPU性能損耗測試。一般普通計算機用指令運算速度衡量CPU計算性能,而高性能計算服務(wù)器則都是用萬億次浮點運算的性能來表示服務(wù)器的峰值速度。浮點計算峰值是指計算機每秒鐘能完成的浮點計算最大次數(shù),通常用FLOPS來表示。選用浮點運算速度作為超算運算能力的評價標(biāo)準(zhǔn),是因為高性計算服務(wù)器主要用于科學(xué)計算領(lǐng)域,在科學(xué)工程計算軟件中包含了大量的浮點數(shù)運算,浮點運算速度快的計算機通常也能夠更快運行相關(guān)的科學(xué)工程計算軟件。而預(yù)處理等地面系統(tǒng)是典型的高性能并行計算場景,其計算過程包含大量的浮點運算。因此,為了更好的評價裸金屬服務(wù)器的計算性能,本項目采用開源HPL測試工具(國際上著名的TOP500超級計算機排名就是采用HPL測試值作為標(biāo)準(zhǔn),它對公正、全面、系統(tǒng)的評價機器的浮點性能具有重要意義),通過對裸金屬實例采用高斯消元法求解一元N次稠密線性代數(shù)方程組的測試,來評價高性能計算機的浮點性能。
(2)關(guān)于內(nèi)存性能損耗測試。內(nèi)存帶寬是內(nèi)存總線所能提供的數(shù)據(jù)傳輸能力,隨著處理器核心數(shù)量的增多,內(nèi)存帶寬對于提升整個系統(tǒng)性能的作用越發(fā)重要。如果某個系統(tǒng)不能快速降內(nèi)存中的數(shù)據(jù)傳輸?shù)教幚砥髦?,若干處理核心就會處于等待?shù)據(jù)的限制狀態(tài),從而導(dǎo)致服務(wù)器性能的降低。為了更好的評價裸金屬服務(wù)的內(nèi)存帶寬性能,本項目采用標(biāo)準(zhǔn)內(nèi)存測試工具Stream(STREAM是一套綜合性能測試程序集,通過fortran和C兩種高級且高效的語言編寫完成,由于這兩種語言在數(shù)學(xué)計算方面的高效率,使得STREAM測試?yán)炭梢猿浞职l(fā)揮出內(nèi)存的能力)來對裸金屬服務(wù)的內(nèi)存性能損耗進行測試。
浮點運算能力和內(nèi)存帶寬都存在理論性能,結(jié)合上述測試工具測試的結(jié)果,通過理論性能值和實測性能值的對比,我們就能計算出服務(wù)器的性能損耗。
數(shù)據(jù)庫服務(wù)針對業(yè)務(wù)系統(tǒng)不同類型、不同特性數(shù)據(jù)的存儲、管理及查詢需求,提供多種容量動態(tài)可擴展的數(shù)據(jù)庫存儲服務(wù),實現(xiàn)多種類型及特性數(shù)據(jù)的按需存儲及管理。數(shù)據(jù)庫服務(wù)一般包括關(guān)系型數(shù)據(jù)庫、時空型數(shù)據(jù)庫、時序型數(shù)據(jù)庫等服務(wù),因此,其測試重點包括:
(1)關(guān)系型數(shù)據(jù)庫服務(wù)能力,主要測試關(guān)系型數(shù)據(jù)庫支持能力,包括讀寫分離、讀節(jié)點間負(fù)載均衡等功能測試,IOPS與連接數(shù)等性能測試、相關(guān)管理接口測試及安全能力測試。
(2)時空型數(shù)據(jù)庫服務(wù)能力,測試時空型數(shù)據(jù)庫支持能力,包括空間幾何對象、空間柵格對象、時空移動對象等時空數(shù)據(jù)類型支撐能力測試等。
(3)時序型數(shù)據(jù)庫服務(wù)能力,測試時間序列數(shù)據(jù)庫支持能力,包括數(shù)據(jù)庫讀寫功能測試等。
中間件服務(wù)為業(yè)務(wù)應(yīng)用系統(tǒng)在研發(fā)、部署、運行、管理、維護各環(huán)節(jié)提供一系列基于分布式架構(gòu)的中間件服務(wù),構(gòu)建包括分布式應(yīng)用服務(wù)、消息隊列、API網(wǎng)關(guān)、云服務(wù)總線等服務(wù)在內(nèi)的通用中間件服務(wù)體系,能夠為業(yè)務(wù)應(yīng)用系統(tǒng)提供統(tǒng)一的中間件通用支撐平臺,并實現(xiàn)通用中間件服務(wù)的統(tǒng)一管理和維護。其中,消息隊列是目前應(yīng)用最廣泛的中間件之一,其優(yōu)點是可以提高系統(tǒng)的吞吐量、并發(fā)能力,同時消息傳遞實時性也被廣為關(guān)注,因此,中間件服務(wù)的測試重點內(nèi)容主要圍繞消息中間件的消息傳遞實時性能進行闡述。
首先,我們對影響消息隊列性能的因素進行分析,經(jīng)分析可以得出消息隊列性能取決于網(wǎng)絡(luò)條件和消息中間件本身發(fā)布、同步消息等多個環(huán)節(jié),假定在通信網(wǎng)絡(luò)條件及網(wǎng)絡(luò)請求開銷基本一致的前提下,則消息隊列性能主要和消息發(fā)送時間、消息同步時間、消息消費時間等相關(guān)。綜上,測試時需要對消息隊列全鏈路進行測試,包括端到端總體延遲和分階段延遲兩部分測算內(nèi)容。
2.4.1 端到端總體延遲測試
端到端總體延遲是從消息發(fā)送端發(fā)布消息到接收端收到消息推送的整個過程的耗時。綜合考慮業(yè)務(wù)系統(tǒng)的典型業(yè)務(wù)處理場景,在測試中設(shè)計相應(yīng)的測試數(shù)據(jù)包,進行針對性測試。
2.4.2 分階段延遲測試
將整個消息隊列消息鏈路拆分為多個階段,首先是消息發(fā)送端、消息隊列服務(wù)、消息消費端,再進一步將這幾個端進行內(nèi)部拆解,消息發(fā)送端拆解為編碼階段、發(fā)送階段,消息接收端又可拆解為接收階段、解碼階段。分階段統(tǒng)計相應(yīng)的延遲,從而了解消息發(fā)送的總體情況。
在測試數(shù)據(jù)準(zhǔn)備方面,時鐘頻率偏差是時鐘長期計時累積誤差的主要原因,為了模擬真實的業(yè)務(wù)場景,發(fā)送端到接收端分布在不同的虛擬主機實例中,因此發(fā)送端和接收端會存在一定的時間偏差,為了要提高時鐘長期計時精度,必須補償時鐘頻率偏差,可采用NTP方式校準(zhǔn)時鐘頻率偏差。由于NTP時間同步服務(wù)器進行同步的授時精度是毫秒級,因此還需要進一步減少操作系統(tǒng)內(nèi)核處理延時的影響,從而提高NTP授時精度,發(fā)/收時間戳應(yīng)盡量接近主機真實發(fā)/收包時刻。在不改變硬件的條件下,一個可行的辦法是修改網(wǎng)卡驅(qū)動程序,將記錄NTP包發(fā)/收時間戳從應(yīng)用程序移至網(wǎng)卡驅(qū)動程序處,可消除操作系統(tǒng)內(nèi)核處理延時不確定而引入的誤差。這種方法可大幅提高NTP授時精度至μs級,以滿足μs級時間精度要求。
大數(shù)據(jù)引擎服務(wù)通過提供基于分布式數(shù)據(jù)倉庫的離線計算、實時計算等服務(wù),實現(xiàn)海量大數(shù)據(jù)的分布式存儲、計算、分析挖掘、建模等需求;通過構(gòu)建大數(shù)據(jù)倉庫,實現(xiàn)全系統(tǒng)設(shè)備狀態(tài)信息、系統(tǒng)運行數(shù)據(jù)、數(shù)據(jù)產(chǎn)品等數(shù)據(jù)的匯集和統(tǒng)一管理,同時提供基礎(chǔ)數(shù)據(jù)庫、數(shù)據(jù)遷移、數(shù)據(jù)分析、數(shù)據(jù)處理等共用數(shù)據(jù)軟件工具服務(wù)。大數(shù)據(jù)引擎服務(wù)測試重點包括:
(1)大規(guī)模離線數(shù)據(jù)處理能力,測試離線計算框架是否支持超大規(guī)模計算集群擴展和單集群TB量級離線數(shù)據(jù)處理,為開展大規(guī)模離線數(shù)據(jù)分析挖掘提供支撐。
(2)實時計算處理能力,測試實時計算框架是否支持多維度實時數(shù)據(jù)的統(tǒng)一接入和流式數(shù)據(jù)處理,為提高實時數(shù)據(jù)處理分析業(yè)務(wù)提供支撐。
(3)實時數(shù)據(jù)分發(fā)服務(wù)能力,測試是否提供實時數(shù)據(jù)接入和實時數(shù)據(jù)分發(fā)能力。
管理監(jiān)控服務(wù)針對云平臺及各業(yè)務(wù)系統(tǒng)的實時監(jiān)控管理和預(yù)警處理需求,通過對運行狀態(tài)、資源使用情況、訪問情況等信息的收集、管理、分析和統(tǒng)計,構(gòu)建包括日志監(jiān)控、應(yīng)用監(jiān)控、平臺監(jiān)控等服務(wù)在內(nèi)的統(tǒng)一監(jiān)控管理體系,全面支撐云平臺、數(shù)據(jù)、應(yīng)用、安全等各方面的運維服務(wù),確保系統(tǒng)安全可靠運行,實現(xiàn)對云平臺及業(yè)務(wù)應(yīng)用的運行時狀態(tài)、資源和訪問等情況的監(jiān)控和告警管理。管理監(jiān)控服務(wù)的測試重點包括:
(1)平臺監(jiān)控服務(wù)功能,測試云平臺是否支持服務(wù)器節(jié)點的接入和擴展等行為數(shù)據(jù)的采集和告警。
(2)用戶管理監(jiān)控功能,測試云平臺是否支持對云平臺用戶的監(jiān)控和管理。
(3)應(yīng)用監(jiān)控服務(wù)功能,測試云平臺是否提供對業(yè)務(wù)應(yīng)用的運行時狀態(tài)與健康情況進行實時監(jiān)控。
(4)日志監(jiān)控服務(wù)能力,測試大規(guī)模計算集群管理監(jiān)控日志查詢響應(yīng)能力,以及海量日志實時接入與處理能力。
云安全防護構(gòu)建覆蓋主機安全防護、網(wǎng)絡(luò)安全防護、數(shù)據(jù)安全防護、應(yīng)用安全防護等各個方面的全方位安全保障體系,通過各類安全技術(shù)實現(xiàn)信息系統(tǒng)的邊界防護、網(wǎng)絡(luò)監(jiān)測、計算機防護;為全網(wǎng)提供統(tǒng)一的安全態(tài)勢監(jiān)控、安全設(shè)備管理、安全策略制定、安全應(yīng)急響應(yīng)、安全公共服務(wù)、安全審計分析等管理與服務(wù)功能。云安全防護的測試重點包括:
(1)訪問控制能力:主要驗證云平臺是否提供集中式訪問控制功能;是否支持統(tǒng)一的身份管理與權(quán)限認(rèn)證;是否具備不同策略的用戶和用戶組管理功能等。
(2)云安全防護能力:主要測試云平臺對典型網(wǎng)絡(luò)攻擊的檢測與防護能力,應(yīng)能對SQL注入、跨站腳本、目錄遍歷等常見攻擊行為進行檢測與防護。
(3)網(wǎng)絡(luò)監(jiān)控能力:主要測試云平臺能否對網(wǎng)絡(luò)流量進行監(jiān)控,主動識別網(wǎng)絡(luò)異常行為等。
基于以上對云平臺測試重點的分析,項目組針對某云平臺進行了第三方測試,共設(shè)計91組測試用例,其中云操作系統(tǒng)測試用例11組,基礎(chǔ)云資源服務(wù)測試用例28組,數(shù)據(jù)庫服務(wù)測試用例11組,中間件服務(wù)測試用例12組,大數(shù)據(jù)引擎服務(wù)測試用例12組,管理監(jiān)控服務(wù)測試用例7組,云安全防護測試用例10組,測試用例全面覆蓋了上述重點測試內(nèi)容。其中限于篇幅,結(jié)合平臺具體需求設(shè)計的部分測試內(nèi)容如表1所示。
表1:部分測試內(nèi)容示例
同時,項目組搭建了完整的測試環(huán)境,包括控制節(jié)點、計算節(jié)點、存儲陣列、網(wǎng)絡(luò)設(shè)備、終端設(shè)備等。其中,控制節(jié)點對計算資源池、存儲資源池、網(wǎng)絡(luò)資源進行統(tǒng)一管理及配置,完成云平臺虛擬機、云桌面虛擬機的創(chuàng)建及動態(tài)調(diào)整;計算節(jié)點是云計算系統(tǒng)的核心,通過云平臺對計算節(jié)點服務(wù)器實現(xiàn)虛擬化處理,將計算資源池化,按照環(huán)境實際需要分配出每臺云平臺虛擬服務(wù)器、云桌面虛擬服務(wù)器計算資源,包括CPU資源、內(nèi)存資源;分布式存儲系統(tǒng)存儲介質(zhì)采用控制節(jié)點與計算節(jié)點服務(wù)器本地硬盤,為云平臺、云桌面分配系統(tǒng)運行和數(shù)據(jù)存儲空間。為了實現(xiàn)云計算系統(tǒng)的統(tǒng)一便捷管理,避免數(shù)據(jù)之間的相互干擾和提高網(wǎng)絡(luò)性能,將網(wǎng)絡(luò)分為業(yè)務(wù)網(wǎng)絡(luò)、管理網(wǎng)絡(luò)兩部分。測試環(huán)境網(wǎng)絡(luò)拓?fù)鋱D如圖3所示。
圖3:測試環(huán)境拓?fù)鋱D
經(jīng)測試,項目組共發(fā)現(xiàn)軟件問題近30個,主要問題表現(xiàn)在平臺部分功能實現(xiàn)錯誤、性能不達(dá)標(biāo)等,經(jīng)研制單位修改和回歸測試,所有缺陷最終實現(xiàn)歸零,軟件質(zhì)量得到明顯提升。
本文提出針對云平臺基礎(chǔ)能力測試的重點測試內(nèi)容,能夠較好的指導(dǎo)云服務(wù)廠商優(yōu)化云平臺產(chǎn)品,同時指導(dǎo)測試人員開展云平臺測試工作。目前本文的測試需求分析重點圍繞云平臺基礎(chǔ)能力進行,后續(xù)將結(jié)合實際項目開展云平臺對業(yè)務(wù)支撐能力測試需求分析的研究。