?

基于圖模型的云平臺應用部署技術研究

2017-09-11 09:16鄭偉平劉健敏
關鍵詞:部署工具節點

鄭偉平, 劉健敏

(華南師范大學計算機學院,廣州 510631)

基于圖模型的云平臺應用部署技術研究

鄭偉平*, 劉健敏

(華南師范大學計算機學院,廣州 510631)

為了實現與平臺無關的應用部署,提出了一種基于“部署圖”的應用部署方案,給出一個通用云平臺應用部署體系,重點介紹了部署工具的設計與實現技術,并實現了一個原型系統,結合部署實例證明所提部署方案是可行的且具有平臺無關、可視化和可復用等優點.

云平臺; 應用部署; 部署圖; 平臺無關; 子圖同構

目前,云平臺被廣泛使用,應用系統面對的部署環境更加復雜[1]. 應用部署是云平臺核心功能,云平臺提供商通常都提供平臺專屬的部署工具(如命令行、網頁控制臺、API等). 例如,亞馬遜提供了AWS Cloud Formation、OpsWorks、CodePipeline和CodeDeploy等一系列部署工具、服務與系統;OpenStack有dodai-deploy、Devstack以及Fuel等多種部署工具. 這些工具和接口與特定平臺相關,缺乏普遍適用性,部署時需要針對不同云平臺進行重復配置和部署,效率較低,且容易出錯. PaaS云平臺不單提供了部署工具,還限定了平臺語言、服務、庫以及相關的部署流程與模型[1]. 考慮到PaaS平臺部署模型的不同及其在平臺遷移、學習成本和跨平臺部署等方面存在的問題,劉歡歡等[2]對亞馬遜、Google和微軟等PaaS平臺進行總結,建立了PaaS平臺部署環境元模型,提出了一種元模型驅動的部署方法;SIMBAD團隊[3]開發的m-COAPS實現了面向異構PaaS平臺的通用資源描述與操作接口,目前已經對接了OpenShift、Amazon Elastic BeansTalk和Cloud Foundry等PaaS平臺;HOSSNY等[4]對COAPS進行擴展,使其支持GAE平臺. 針對云資源異構問題,YONGSIRIWIT等[5]提出了一種使用TOSCA、OCCI以及CIMI等資源描述標準來構建云資源的通用語義知識庫的語義框架,實現對異構云資源描述的無縫轉化;NGUYEN等[6]基于面向對象方法在云平臺之上構建一個抽象層,以屏蔽云平臺的底層細節,提高了云平臺應用開發與部署的通用性;BRANDTZ?G等[7]使用構件和領域特定語言方法,提出了一種描述語言Pim4Cloud,實現IaaS平臺和PaaS平臺上應用軟件的部署建模.

與文獻[2-4,6,8]的研究(主要面向PaaS平臺)不同,本文研究IaaS云平臺的通用應用部署技術,以圖模型為抽象語法,提出了一種云平臺應用部署描述工具——部署圖(Deploy Graph),闡述了基于部署圖的應用部署體系,并且實現了一個作為部署工具的云應用部署管理平臺. 文中還介紹了混合部署與增量部署技術,展示了圖模型在應用部署上的靈活性與可擴展性.

1 基于部署圖的云平臺應用部署體系

為了實現與平臺無關的應用部署,必須對部署描述加以抽象,使其具備通用性. 本文以圖模型作為抽象語法,提出了用于描述部署任務的“部署圖”概念.

定義1 部署圖是六元組DG=(N,E,NT,ET,C,P),其中N是有限個節點的非空集合;E?N×N是有向邊的集合;節點類型集合NodeType={SG,VM,DU,CN},其中SG表示安全組,VM表示虛擬機器,DU表示可部署單元,CN表示復合節點. NT:N→NodeType是節點類型函數;邊類型集合EdgeType={hoston,dependon,accesson},其中hoston表示托管、部署或安裝關系,dependon表示依賴關系,accesson表示通信關系,ET:E→EdgeType是邊類型函數;C:EdgeType→NodeType×NodeType是邊類型約束函數,對各種類型的邊兩端連接的節點類型進行了約束;P:N∪E→KEY×VALUE是從節點或邊到(key,value)對集合的映射函數,表示節點或邊的相關屬性.

關于定義1,有幾點需要說明:

(1)定義1給出了節點類型集合、邊類型集合的最小集,實際使用時應根據資源種類、范圍以及云平臺所支持的技術屬性,對NodeType、EdgeType、KEY和VALUE等集合做進一步的界定和擴展.

(2)安全組SG用于設定VM節點之間的訪問規則(主要是訪問可達性);虛擬機器VM是物理機器在云平臺上的映射,其基本屬性包括CPU、內存、存儲、網絡和虛擬機鏡像等,屬于部署環境描述的“硬件”部分;可部署單元DU是應用系統的“軟件”模塊,或者是軟件棧的其他組成成分(如數據庫、JVM等);復合節點CN是一種特殊節點,其本質是一個部署子圖,但在圖中表示為一個節點,用于描述事先裝好軟件棧的機器節點,其虛擬機鏡像屬性應指向事先制作好的虛擬器件文件. 復合節點提供了部署描述粒度與部署管理的靈活性.

(3)邊類型hoston強調2個節點間的位置約束關系,即必須部署在同一虛擬機器上;dependon表示部署安裝的先后次序;accesson表示訪問可達性的約束. 總的來說,邊類型蘊含了位置約束、組件調用以及安裝次序等重要的部署語義信息.

(4)為了表達更豐富的部署語義,部署圖還為邊與節點設置了屬性信息. 屬性的KEY、VALUE信息可以從配置腳本、使用說明書和開發手冊等資料中學習和提取.

下面從部署模型、工具支持和部署流程等3個方面闡述基于部署圖的云平臺應用部署體系.

1.1 部署模型

部署模型由部署圖、部署工具、云平臺以及部署管理策略等4個要素組成. 部署圖是抽象描述工具,是通用部署的概念基礎;部署工具實現了部署圖概念,是通用部署的實施基礎;云平臺是管理對象,其部署接口是部署模型的重要組成成分;部署管理策略規約了部署模型支持的功能和特性,例如跨平臺部署、異?;貪L和智能調度等,在一定程度上影響部署工具的實現.

1.2 工具支持

部署圖是通用的部署語義描述工具,無法直接使用云平臺的原生部署接口. 因此需要設計一套部署工具,對部署圖進行解釋,并轉換成為適用于特定云平臺的部署代碼,實現通用部署功能. 本文將在第2節闡述部署工具“云應用部署管理平臺”的設計與實現.

1.3 部署流程

在部署圖及其部署工具的支持下,本部署體系的部署流程(圖1)包括4個步驟:

(1)規劃描述. 與傳統應用部署相同,實施部署之前必須詳盡規劃,包括確定系統邊界、預估資源需求、劃分部署區域、制定計劃和制作鏡像等一系列準備工作. 但不同的是,不直接使用云平臺所提供的原生部署工具或接口. 在本步驟中,部署工作人員使用部署工具制作部署圖,描述部署任務,并將部署圖文件和應用系統代碼一起上傳到“部署信息存儲庫”中.

(2)解釋轉換. 在確定部署圖之后,部署引擎解釋部署圖,檢查部署圖的合法性,確定部署目標云平臺,然后將部署圖轉換成為調用目標云平臺原生接口的部署代碼. 如果實施跨平臺部署,引擎還需要按照不同平臺,先將部署圖分割成為多個部署子圖,再分別轉換成原生部署代碼.

(3)遠程部署. 部署平臺將轉換得到的部署代碼傳輸到目標云平臺上,調用云平臺的部署服務接口,完成遠程部署.

(4)過程管理. 事實上,部署流程的步驟(1)、(2)、(3)存在先后次序關系,而本步驟涵蓋部署流程的全過程. 其管理內容包括圖版本管理、歷史記錄、狀態跟蹤和異常管理等.

圖1 云應用部署流程

2 云應用部署管理平臺的設計與實現

2.1 平臺設計

本文采用分層模型設計了一個部署工具(圖2),即云應用部署管理平臺(以下簡稱平臺). 該平臺由應用層、調度層、適配層及資源層組成:

(1)應用層. 為管理人員提供了統一部署接口,包括部署圖管理、部署與監控、應用元數據管理、云平臺信息管理和訪問控制等功能. 部署圖管理提供部署圖錄入、語法檢查、子圖定義和版本管理等功能;部署與監控是該層核心功能,管理人員調取部署圖,填寫部署策略與平臺信息后實施部署,部署后可監控應用系統實例的健康狀態和屬性信息;應用元數據管理完成各類軟件系統的屬性管理、定義部署圖基礎數據和管理代碼鏡像等;云平臺信息管理負責接入部署工具的各個云平臺的訪問、資源和特性等信息的獲取和設置;訪問控制功能驗證管理人員是否有權使用本平臺以及訪問云平臺的資源.

(2)調度層. 根據部署上下文以及云平臺資源情況,決定部署任務的實施位置與步驟等. 首先解析部署圖,完成語義檢查(包括一致性檢查、完整性檢查和權限檢查等),必要時分解部署圖;然后運行調度算法確定部署目標平臺、實施步驟和優先級別. 如果涉及任務分解,還需要進行同步控制,并管控可能出現的異常和錯誤.

(3)適配層. 屏蔽了各云平臺的差異,向上提供統一部署接口與統一監控接口. 該層承上啟下,通過“轉換引擎”將調度層輸入的部署圖轉換為目標云平臺上的部署代碼,再調用資源層的云平臺訪問代理,啟動遠程部署. 類似地,適配層也通過訪問代理獲取資源信息,向上封裝成為統一監控接口.

(4)資源層. 由部署信息、云平臺資源信息、部署平臺管理信息以及存取上述信息的相關功能組成. 另外,部署平臺為接入的各個云平臺產生一個訪問代理實例,作為監護進程長駐,負責與各云平臺的通信與控制.

圖2 部署平臺分層架構

2.2 平臺實現

根據上述架構,本文使用Node.js+MongoDB技術實現了一個云應用部署管理平臺的原型系統(CloudDeployments),其主要功能如下:

(1)方案管理. 實現了“云平臺信息管理”的部分功能,包括云平臺認證、資源描述和特性服務等元數據管理. 云平臺接入系統時,先為其創建一套管理描述文件,同時在資源層生成相應的訪問代理實體.

(2)拓撲管理. 系統僅實現部署功能,尚未實現云平臺資源監控功能,因此需要管理員人為地管理接入云平臺的拓撲結構,包括物理節點、連接關系、管理域和配置信息等. 在后續版本中將增加云平臺資源的自動發現功能.

(3)部署圖管理. 實現了圖形化的部署圖編輯、語法檢查、子圖定義、部署圖分層顯示和篩選過濾等功能. 子圖定義將部署圖作為構件,提高了可復用性和制作效率.

(4)遠程部署. 實現了基于編排模板的部署引擎,可將部署圖轉換成為AWS Cloud Formation部署腳本,調用編排服務實現遠程部署. 系統還實現了簡單的部署日志管理和增量部署功能.

(5)系統管理. 實現了用戶身份認證、平臺訪問權限控制、云平臺訪問授權和部署策略設置等功能.

該平臺原型系統使用highttopo庫[9]實現拓撲圖、部署圖的圖形化操作功能,使用Cloud Formation做為云編排服務接口. 目前系統僅支持兼容AWS接口的云平臺. 部署功能是平臺的核心部分,下面從基本部署、混合部署和增量部署等3個方面介紹其實現技術.

2.2.1 基本部署

(1)部署圖實現. 平臺實現了一個圖形化的部署圖編輯器,通過拖拽元件和連線、雙擊元件圖標填寫屬性信息,可快速構建部署圖實例. 根據部署圖的定義,平臺實現了SG、VM、DU和CN等4類節點,以及hoston、accesson和dependon等3類邊,為各實體設計了各種屬性(表1),其中屬性1~4為4類節點均有的通用屬性、屬性5~10為虛擬機器專有屬性,Layer屬性是為部署圖分層展示而設置的屬性,Region屬性是為部署圖劃分而設置的標記屬性. 篇幅所限,其余屬性就不再贅述. 建立概念模型后,將部署圖表示為BSON格式,存儲到MongoDB庫中.

表1 虛擬機器類型的屬性設置Table 1 Attribute settings for virtual machine type

(2)轉換引擎實現. 將部署圖轉換成為目標云平臺的部署代碼時,可以根據實際選用不同的部署接口. 為了便于遠程部署,本文選用編排模板的部署方式. 下面以目標云平臺為AWS為例,介紹文中轉換引擎將部署圖轉換為Cloud Formation[10]的算法流程(圖3). 本文采用工廠設計模式為每類節點設計了一個工廠類,轉換時調用相應的工廠類生成模板實例,再將所有模板整合到主模板中. 在轉換可部署單元節點時,將下載地址配置信息轉化為模板的“files”屬性,將安裝命令轉化為模板的“commands”屬性,然后將此信息以AWS∷CloudFormaction∷Init類型的格式插入到宿主節點的模板里.

(3)遠程部署. 生成編排模板后,資源層中訪問代理調用目標云平臺的編排服務,實施遠程部署. 以AWS Cloud Formation為例,平臺使用基于Node.js的SDK開發包,調用AWS工廠類的awsConf方法配置云平臺認證信息;調用GetCloudFormation方法獲取服務編排功能對象;再調用DepStackMng類的newAndSave建立編排,完成部署.

2.2.2 混合部署 混合部署是一種跨云平臺的部署形式[11],其部署資源由多個同構或異構的云平臺[12]聯合提供. 利用前述基本部署功能,可以靈活地實現混合部署. 具體過程如下.

(1)混合部署規劃. 混合部署規劃可以由部署人員人為地決定,也可以由調度算法根據資源情況計算后決定,采用何種方式取決于平臺部署策略. 管理人員通過為虛擬機器節點VM或復合節點CN的Destination屬性設定目標云平臺值,可以實現混合部署,但劃分的合理性由管理員負責. 另一種情況,管理人員設置Region屬性,將部署圖劃分為多個連通區域,但并不指定Destination屬性,再由調度層負責計算各分區到云平臺的映射. 如果Region屬性與Destination屬性全部為空,則調度層負責全部規劃工作,包括決定是否劃分區域以及云平臺資源分配,這對調度算法提出較高要求.

圖3 編排模板轉換流程圖

管理人員在賦值Region或Destination屬性后,平臺需要檢查部署圖的語義一致性. 例如,A節點與B節點的Region屬性值相同,而兩者的Destination屬性值卻不同,顯然存在邏輯錯誤,平臺應當給出錯誤提示. 在需要考慮邊屬性的約束時情況將更加復雜,例如accesson類型邊可指定訪問鏈路帶寬、延遲和安全域等屬性,對邊兩端節點的部署將帶來限制,部分屬性(如安全域)在靜態配置時便可檢測,而部分屬性(如延遲)則需要在調度層指定目標平臺時方能判斷是否滿足屬性要求[13].

(2)混合部署實施. 在本文應用部署體系下,混合部署的實施均需要將部署圖分割成為若干子圖,然后使用前述基本部署功能,“分而治之”地逐個完成子圖的部署. 實現混合部署時調度層必須提供同步機制,對各個部署子任務的狀態進行監控,發現某個子圖部署失敗時,可以實行部署回滾,并向應用層報告相關狀態.2.2.3 增量部署 前面討論的部署屬于新建形式,所需資源全部由云平臺創建提供. 然而,有時部署可以利用云平臺上已運行的資源實例,僅需要在已有資源環境上完成應用組件安裝、運行配置命令和下載數據等操作,而不需要向云平臺重新申請資源,我們將這種方式稱為“增量部署”. 增量部署必須解決符合部署要求的資源定位問題,本文提出一種“以圖找圖”的查找方法. 具體來說,將所需的資源環境以部署圖形式描述出來作為查詢圖,然后在已完成部署的目標圖上查找與其同構的子圖. 例如,圖4A的虛線框內的子圖與圖4B同構[14-15],增量部署時可以利用此類資源(虛擬機B、Java虛擬機D和服務器E).

圖4 子圖同構實例

為了實現“以圖找圖”功能,本文實現了一個匹配算法,其偽代碼如下:

Procedure Match(q:Node,pre_q:Node,t:Node,pre_t:Node){

If (q與t不匹配) return EMPTY

If (pre_q!=NULL & pre_t!=NULL & q與pre_q之間的邊與t與pre_t之間的邊不匹配)

return EMPTY

qNeighbors←qNeighborspre_q // qNeighbors是q在查詢圖上的鄰居節點集合

tNeighbors←tNeighborspre_t // tNeighbors是t在目標圖上的鄰居節點集合

matchResult←EMPTY

ForEach (n: Node in qNeighbors)

result←EMPTY

ForEach (m:Node in tNeighbors)

result←Match(n,q,m,t)

If (result!=EMPTY) {

tNeighbors←tNeighborsm

Break

}

End ForEach

If (result!=EMPTY)

matchResult=matchResult∪result

Else return EMPTY

End ForEach

return (q,t)∪matchResult

}

3 部署實例

本文以原型系統為工具,成功部署了職業測評系統、博客系統和精品課程網站等多個應用系統,經測試,系統功能正常、運行穩定,而且部署方便快捷、可復用性強. 實踐證明,本文提出的部署方法是可行的、有效的. 下面以職業測評系統為例,介紹其部署過程.

(1)部署環境準備:使用本文研發的原型系統為部署工具,在安裝了某商用云平臺軟件的私有云上進行部署,平臺支持AWS服務接口. 部署之前,已經在原型系統中接入了該云平臺,并導入了相關的元數據;另外,部署所需的虛擬機鏡像文件已存在,所需的系統軟件等元數據也在原型系統中完成定義.

(2)部署需求與規劃:職業測評系統是一套基于SSH框架開發的Web應用系統,后臺采用MySQL數據庫. 根據常規的部署方法,可為其分配2個虛擬機:一個用作Web服務器,另一個為數據庫服務器. 2個服務器處于同一網段,便于通信. 由于系統的用戶并發訪問量不大,部署方案不涉及負載均衡服務.

根據文中的部署流程,必須事先制作一個部署圖,描述部署任務. 結合部署需求,部署圖的節點設置情況如表2.

表2 部署圖的節點設置Table 2 Configurations of nodes in the deploy graph

除了上述節點,還需要為部署圖添加若干條邊:N2→N1(accesson類型);N3→N1(accesson類型);N4→N2(hoston類型);N5→N4(dependon類型);N6→N5(hoston類型);N7→N3(hoston類型);N6→N7(accesson類型). 最后,在原型系統中保存好部署圖.

(3)實施部署:調出制作好的部署圖,點擊“部署”命令按鈕,選擇目標云平臺(即前述已導入的私有云平臺),部署工具執行遠程部署.

(4)部署結果:部署完成,系統運行正常. 部署完畢,還可通過部署工具查看部署方案中的資源實例. 例如,可以查看實驗中的Web服務器虛擬機實例以及相關部署信息,如圖5所示.

圖5 部署后的虛擬機實例

4 結論

大規模云計算基礎設施的建設對云計算平臺的自動化、智能化和自主化管理提出了更高要求. 本文研究IaaS云平臺的通用應用部署問題,提出“部署圖”作為應用部署的形式化描述工具,以達到平臺無關的應用部署目的. 在部署圖的基礎上,給出了一個面向多云平臺的通用應用部署體系,設計了部署工具的分層架構模型,闡述了云應用部署管理平臺的設計與相關算法,最后展示了平臺原型系統. 本文提出的應用部署技術具有平臺無關、可復用、可驗證和直觀易用等優點,極大降低了應用部署難度,減少部署工作量,避免了人為配置錯誤.

部署圖作為部署抽象工具,具有多方面的優勢:圖模型表達直觀、靈活性強,展示效果好;圖模型與應用系統部署的實施方式更為接近,易于理解;圖論研究成果豐碩,可為應用部署分析提供理論工具,例如圖著色、圖劃分和子圖同構等. 文中以混合部署、增量部署為例,展示了部署圖的優勢. 但是,部署圖也存在粒度小、實現繁瑣和查找困難等缺點,因此需要設計良好的部署工具加以支持.

我們下一步將繼續完善云應用部署管理平臺,擴充云平臺資源監控功能,開展基于日志的部署圖自動生成、應用部署性能優化等方面的研究.

[1] 陳康,鄭緯民. 云計算:系統實例與研究現狀[J]. 軟件學報,2009,20(5):1337-1348.

CHEN K,ZHENG W M. Cloud computing:system instances and current research[J]. Journal of Software,2009,20(5):1337-1348.

[2] 劉歡歡,麻志毅,陳泓婕. 基于PaaS的云應用軟件部署環境的元模型[J]. 計算機科學,2015,42(10):45-49;80.

LIU H H,MA Z Y,CHEN H J. Meta-model of PaaS-based cloud application’s deployment environment[J]. Computer Science,2015,42(10):45-49;80.

[3] SIMBAD team. M-COAPS API[EB/OL]. (2016-01-04)[2016-06-08]. http://www-inf.it-sudparis.eu/SIMBAD/tools/COAPS/.

[4] HOSSNY E,KHATTAB S,OMARA F,et al. A case study for deploying applications on heterogeneous PaaS platforms[C]//Proceedings of the 2013 International Confe-rence on Cloud Computing and Big Data. Washington,DC: IEEE,2013:246-253.

[5] YONGSIRIWIT K,SELLAMI M,GAALOUL W. A semantic framework supporting cloud resource descriptions interoperability[C]//Proceedings of the 9th International Conference on Cloud Computing (CLOUD). San Francisco,California:IEEE,2016:585-592.

[6] NGUYEN B M,TRAN V,HLUCHY L. Development and deployment of cloud services via abstraction layer[C]//Proceedings of International Conference on Computing,Management and Telecommunications. New York:IEEE,2013:246-251.

[7] BRANDTZ?G E,MOHAGHEGHI P,MOSSER S. Towards a domain-specific language to deploy applications in the clouds[C]// Proceedings of the Third International Conference on Cloud Computing,Grids,and Virtualization. Nice,France:[s.n.],2012:214-218.

[8] SELLAMI M,SAMI Y G,MOHAMED M,et al. PaaS-independent provisioning and management of applications in the cloud[C]//IEEE Proceedings of the Sixth International Conference on Cloud Computing. Washington,DC:IEEE,2013:693-700.

[9] Hightopo Inc. A rich JavaScript UI library[EB/OL]. (2015-09-12)[2016-07-15]. http://www.hightopo.com/index.html.

[10]Amazon Web Services,Inc. AWS cloud formation[EB/OL]. (2015-12-07)[2016-08-02]. https://aws.amazon.com/cn/ cloudformation.

[11]BUYYA R,BARRETO D. Multi-cloud resource provisioning with Aneka:a unified and integrated utilisation of microsoft azure and amazon EC2 instances[C]//Proceedings of International Conference on Computing and Network Communications. New York:IEEE,2015:216-229.

[12]BROGI A,CARRASCO J,CUBO J,et al. SeaClouds:an open reference architecture for multi-cloud governance[C]//Software Architecture:Proceedings of the 10th European Conference. Berlin:Springer,2016:334-338.

[13]GONCALVES J R,ROLIM T,SAMPAIO A,et al. A multi-criteria approach for assessing cloud deployment options based on non-functional requirements[C]//Proceeding of the 30th Annual ACM Symposium on Applied Computing. New York:ACM,2015:1383-1389.

[14]ULLMANN J R. An algorithm for subgraph isomorphism[J]. Journal of the ACM (JACM),1976,23(1):31-42.

[15]LISCHKA J,KARL H. A virtual network mapping algorithm based on subgraph isomorphism detection[C]//Proceedings of the 1st ACM Workshop on Virtualized Infrastructure Systems and Architectures. New York:ACM,2009:81-88.

【中文責編:莊曉瓊 英文審校:肖菁】

Research on Application Deployment Technology of Cloud Platforms Based on Graph Model

ZHENG Weiping*, LIU Jianmin

(School of Computer Science, South China Normal University, Guangzhou 510631, China)

An application deployment schema based on deployment graph is presented for the purpose of platform-independent deployments, in which a general deployment framework for cloud applications is given and related design principles and implementation technologies for the deployment instrument are focused. A prototype system is implemented and a deployment case is used together to prove the feasibility of the presented deployment schema, as well as the advantages of platform-independency, visualization and reusability etc.

cloud platform; application deployment; deployment graph;platform-independency; subgraph isomorphism

2016-08-08 《華南師范大學學報(自然科學版)》網址:http://journal.scnu.edu.cn/n

廣東省科技計劃項目(2013B010401021,2016B010109005);廣東省自然科學基金項目(S2013040012449)

TP311

A

1000-5463(2017)04-0115-07

*通訊作者:鄭偉平,副教授,Email:csweapon@gmail.com.

猜你喜歡
部署工具節點
CM節點控制在船舶上的應用
一種基于Kubernetes的Web應用部署與配置系統
晉城:安排部署 統防統治
基于AutoCAD的門窗節點圖快速構建
波比的工具
波比的工具
部署
概念格的一種并行構造算法
準備工具:步驟:
“巧用”工具
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合