本發(fā)明涉及容器云領(lǐng)域,具體提供一種面向容器云的任務(wù)流柔性編排系統(tǒng)及方法。
背景技術(shù):
1、在現(xiàn)代云計(jì)算環(huán)境中,容器技術(shù)的迅速發(fā)展和廣泛應(yīng)用,為企業(yè)提供了靈活、高效的資源管理和任務(wù)調(diào)度能力。隨著云計(jì)算和容器技術(shù)的廣泛應(yīng)用,任務(wù)流編排在現(xiàn)代容器云環(huán)境中的重要性日益凸顯。同時(shí),應(yīng)用程序規(guī)模的不斷擴(kuò)大和復(fù)雜性的增加,傳統(tǒng)的任務(wù)流編排系統(tǒng)面臨著諸多挑戰(zhàn)?,F(xiàn)有的任務(wù)流編排工具,如argo、apache?airflow等,雖然在任務(wù)調(diào)度和管理方面提供了一定的功能,但在靈活性、智能化和資源配置的自動(dòng)化方面仍存在明顯的不足,制約了其在復(fù)雜多變的計(jì)算環(huán)境中的適應(yīng)能力。
2、首先,現(xiàn)有的編排系統(tǒng)大多依賴(lài)于kubernetes的原生調(diào)度器進(jìn)行任務(wù)調(diào)度。這種設(shè)計(jì)的局限性在于,任務(wù)流的執(zhí)行順序和依賴(lài)關(guān)系往往是預(yù)定義的,當(dāng)集群資源緊張時(shí),調(diào)度機(jī)制無(wú)法實(shí)時(shí)監(jiān)控資源的利用情況,從而導(dǎo)致任務(wù)執(zhí)行的順序無(wú)法動(dòng)態(tài)調(diào)整,進(jìn)而影響系統(tǒng)的整體效率。例如,在高負(fù)載情況下,某些任務(wù)可能因資源不足而被延遲執(zhí)行,導(dǎo)致整個(gè)任務(wù)流的進(jìn)度滯后,無(wú)法滿足實(shí)時(shí)業(yè)務(wù)需求。
3、其次,現(xiàn)有編排系統(tǒng)在智能學(xué)習(xí)和優(yōu)化能力方面也顯得不足。許多系統(tǒng)依賴(lài)用戶手動(dòng)配置的規(guī)則和優(yōu)先級(jí),而缺乏基于歷史執(zhí)行數(shù)據(jù)的智能優(yōu)化機(jī)制。這種依賴(lài)導(dǎo)致任務(wù)調(diào)度的靈活性降低,用戶需要投入大量時(shí)間和精力來(lái)調(diào)整配置,以適應(yīng)不同的工作負(fù)載和不同的資源狀態(tài)。并且,缺乏機(jī)器學(xué)習(xí)或數(shù)據(jù)分析驅(qū)動(dòng)的智能調(diào)度,使得系統(tǒng)在面對(duì)復(fù)雜和動(dòng)態(tài)的任務(wù)流時(shí),難以做出最優(yōu)決策。
4、另外,現(xiàn)有任務(wù)流編排系統(tǒng)通常要求用戶手動(dòng)指定資源配置,但用戶往往難以準(zhǔn)確判斷各任務(wù)的最佳資源需求。這不僅增加了用戶的負(fù)擔(dān),也降低了系統(tǒng)的整體效率。缺乏自動(dòng)設(shè)置資源配置的機(jī)制,使得任務(wù)流的執(zhí)行受到不必要的限制,進(jìn)而影響了容器云環(huán)境的資源利用率。
技術(shù)實(shí)現(xiàn)思路
1、為了克服上述缺陷,提出了本發(fā)明,以解決現(xiàn)有的面向容器云的任務(wù)流編排靈活性不足、缺乏智能學(xué)習(xí)優(yōu)化以及需要手動(dòng)配置資源的技術(shù)問(wèn)題。
2、在第一方面,本發(fā)明提供一種面向容器云的任務(wù)流柔性編排系統(tǒng),包括任務(wù)流控制器模塊、資源監(jiān)控模塊、智能學(xué)習(xí)模塊和數(shù)據(jù)存儲(chǔ)模塊,
3、所述資源監(jiān)控模塊用于采集資源數(shù)據(jù)及任務(wù)流執(zhí)行狀態(tài),并將采集到的數(shù)據(jù)存儲(chǔ)在時(shí)序數(shù)據(jù)庫(kù)中;
4、所述數(shù)據(jù)存儲(chǔ)模塊用于存儲(chǔ)和管理任務(wù)流的歷史執(zhí)行數(shù)據(jù),所述歷史執(zhí)行數(shù)據(jù)包括任務(wù)流配置、任務(wù)流執(zhí)行時(shí)間、整個(gè)任務(wù)流資源使用情況、任務(wù)流狀態(tài)、調(diào)度策略以及任務(wù)流中每個(gè)任務(wù)的任務(wù)類(lèi)型、輸入?yún)?shù)、任務(wù)輸入數(shù)據(jù)量、資源配置、任務(wù)資源使用情況、任務(wù)執(zhí)行時(shí)間和任務(wù)執(zhí)行結(jié)果;
5、所述智能學(xué)習(xí)模塊用于根據(jù)任務(wù)流的歷史執(zhí)行數(shù)據(jù),訓(xùn)練任務(wù)執(zhí)行時(shí)間預(yù)測(cè)模型和資源配置推薦模型,所述任務(wù)執(zhí)行時(shí)間預(yù)測(cè)模型用于輸出任務(wù)執(zhí)行時(shí)間預(yù)測(cè),所述資源配置推薦模型用于輸出資源配置推薦;
6、所述任務(wù)流控制器模塊用于任務(wù)流解析、任務(wù)調(diào)度及總體控制,所述任務(wù)流解析包括解析任務(wù)流中任務(wù)的依賴(lài)關(guān)系、任務(wù)的執(zhí)行順序、優(yōu)先級(jí)和任務(wù)的初始資源配置需求,所述任務(wù)調(diào)度包括任務(wù)流控制器模塊根據(jù)獲取的資源數(shù)據(jù)、任務(wù)執(zhí)行時(shí)間預(yù)測(cè)和資源配置推薦制定調(diào)度策略,并按照任務(wù)的優(yōu)先級(jí)、依賴(lài)關(guān)系和當(dāng)前的資源可用性來(lái)安排任務(wù)的執(zhí)行,所述總體控制包括在任務(wù)執(zhí)行過(guò)程中,根據(jù)資源數(shù)據(jù)變化動(dòng)態(tài)調(diào)整調(diào)度策略。
7、進(jìn)一步,所述資源數(shù)據(jù)包括cpu、內(nèi)存、gpu等硬件資源的使用情況,所述任務(wù)流執(zhí)行狀態(tài)包括任務(wù)流中各個(gè)任務(wù)的運(yùn)行狀態(tài)、等待狀態(tài)或完成狀態(tài)。
8、進(jìn)一步,所述資源監(jiān)控模塊還用于當(dāng)某個(gè)物理節(jié)點(diǎn)的資源超限或任務(wù)執(zhí)行異常時(shí),發(fā)出告警,觸發(fā)任務(wù)流控制器模塊調(diào)整調(diào)度策略,所述物理節(jié)點(diǎn)的資源超限指cpu、內(nèi)存、存儲(chǔ)、gpu資源使用量超過(guò)物理機(jī)預(yù)先設(shè)置的閾值,所述任務(wù)執(zhí)行異常包括任務(wù)執(zhí)行過(guò)程中容器資源利用率長(zhǎng)期不符合預(yù)設(shè)值、運(yùn)行時(shí)間超過(guò)任務(wù)設(shè)置的timeout時(shí)間、日志大小超過(guò)閾值、日志報(bào)錯(cuò)和任務(wù)執(zhí)行結(jié)果失敗。
9、進(jìn)一步,所述任務(wù)流控制器模塊還用于當(dāng)任務(wù)流中所有任務(wù)執(zhí)行完畢后,將任務(wù)流狀態(tài)標(biāo)記為完成,并將任務(wù)流的執(zhí)行數(shù)據(jù)存儲(chǔ)到系統(tǒng)的數(shù)據(jù)存儲(chǔ)模塊中。
10、進(jìn)一步,所述根據(jù)任務(wù)流的歷史執(zhí)行數(shù)據(jù),訓(xùn)練任務(wù)執(zhí)行時(shí)間預(yù)測(cè)模型和資源配置推薦模型,包括步驟:
11、從數(shù)據(jù)存儲(chǔ)模塊中獲取任務(wù)流的歷史執(zhí)行數(shù)據(jù),并從中獲取每個(gè)任務(wù)的歷史執(zhí)行數(shù)據(jù),包括任務(wù)流中每個(gè)任務(wù)的任務(wù)類(lèi)型、輸入?yún)?shù)、任務(wù)輸入數(shù)據(jù)量、資源配置、任務(wù)執(zhí)行時(shí)間、任務(wù)資源使用情況以及任務(wù)執(zhí)行結(jié)果,
12、將提取的數(shù)據(jù)輸入任務(wù)執(zhí)行時(shí)間預(yù)測(cè)模型和資源配置推薦模型,訓(xùn)練任務(wù)執(zhí)行時(shí)間預(yù)測(cè)模型和資源配置推薦模型;
13、當(dāng)新的任務(wù)流創(chuàng)建時(shí),智能學(xué)習(xí)模塊基于訓(xùn)練好的模型,得到當(dāng)前任務(wù)流中每個(gè)任務(wù)的執(zhí)行時(shí)間預(yù)測(cè)和資源配置推薦。
14、進(jìn)一步,周期性的將歷史執(zhí)行數(shù)據(jù)輸入任務(wù)執(zhí)行時(shí)間預(yù)測(cè)模型和資源配置推薦模型重新訓(xùn)練。
15、進(jìn)一步,所述任務(wù)流控制器模塊根據(jù)獲取的資源數(shù)據(jù)、任務(wù)執(zhí)行時(shí)間預(yù)測(cè)和資源配置推薦制定調(diào)度策略,包括步驟:
16、任務(wù)流控制器模塊對(duì)用戶提交的任務(wù)流進(jìn)行解析,獲取每個(gè)任務(wù)的執(zhí)行順序、依賴(lài)關(guān)系、優(yōu)先級(jí)以及初始資源配置需求。
17、任務(wù)流控制器模塊從資源監(jiān)控模塊獲取當(dāng)前的資源數(shù)據(jù),并結(jié)合智能學(xué)習(xí)模塊提供的任務(wù)執(zhí)行時(shí)間預(yù)測(cè)和資源配置推薦等,基于柔性任務(wù)編排模型為任務(wù)生成最優(yōu)的調(diào)度策略。
18、進(jìn)一步,所述柔性任務(wù)編排模型為
19、
20、其中,任務(wù)集t={t1,t2,…,tn}表示包含的n個(gè)任務(wù),任務(wù)優(yōu)先級(jí)pi是任務(wù)ti的優(yōu)先級(jí),任務(wù)執(zhí)行時(shí)間ei是任務(wù)ti的執(zhí)行時(shí)間,資源需求ri是任務(wù)ti所需的資源數(shù)據(jù),包含cpu、內(nèi)存、gpu,任務(wù)依賴(lài)關(guān)系dij為任務(wù)ti和tj之間的依賴(lài)關(guān)系,如果ti依賴(lài)tj,則dij=1,否則dij=0,資源容量r={rcpu,rmem,rgpu,…}是系統(tǒng)總資源,si是任務(wù)ti的開(kāi)始時(shí)間,cj是任務(wù)ti的結(jié)束時(shí)間,布爾變量xik表示任務(wù)ti是否在時(shí)間片k執(zhí)行,若執(zhí)行則為1,否則為0;
21、所述柔性任務(wù)編排模型的約束條件包括:
22、任務(wù)依賴(lài)性約束,若任務(wù)ti依賴(lài)任務(wù)tj,則ti必須在tj完成之后開(kāi)始;
23、資源限制約束,在任意時(shí)刻k,分配給任務(wù)的資源總量不能超過(guò)系統(tǒng)的資源容量;
24、每個(gè)任務(wù)只能在某個(gè)時(shí)間片執(zhí)行,且一旦開(kāi)始必須持續(xù)ei個(gè)時(shí)間片;
25、任務(wù)優(yōu)先級(jí)約束,為確保高優(yōu)先級(jí)任務(wù)優(yōu)先調(diào)度,可以通過(guò)設(shè)定優(yōu)先級(jí)順序約束。
26、在第二方面,本發(fā)明提供一種面向容器云的任務(wù)流柔性編排方法,包括步驟:
27、當(dāng)用戶創(chuàng)建任務(wù)流后,任務(wù)流控制器模塊解析當(dāng)前任務(wù)流中所有任務(wù)的依賴(lài)關(guān)系、執(zhí)行順序、優(yōu)先級(jí)和初始資源配置需求;
28、從資源監(jiān)控模塊獲取實(shí)時(shí)的資源數(shù)據(jù),同時(shí)從智能學(xué)習(xí)模塊獲取任務(wù)執(zhí)行時(shí)間預(yù)測(cè)和資源配置建議,根據(jù)獲取的數(shù)據(jù),任務(wù)流控制器模塊生成調(diào)度策略;
29、任務(wù)流控制器模塊根據(jù)調(diào)度策略,按任務(wù)的優(yōu)先級(jí)、依賴(lài)關(guān)系和當(dāng)前資源可用性安排任務(wù)執(zhí)行;
30、在任務(wù)執(zhí)行過(guò)程中,任務(wù)流控制器模塊周期性的通過(guò)資源監(jiān)控模塊獲取實(shí)時(shí)資源數(shù)據(jù)及任務(wù)流執(zhí)行狀態(tài),任務(wù)流執(zhí)行狀態(tài)包括任務(wù)流中各個(gè)任務(wù)的運(yùn)行狀態(tài)、等待狀態(tài)或完成狀態(tài),并根據(jù)資源數(shù)據(jù)動(dòng)態(tài)調(diào)整調(diào)度策略;
31、當(dāng)所有任務(wù)執(zhí)行完畢,任務(wù)流控制器模塊將任務(wù)流狀態(tài)標(biāo)記為完成,并將當(dāng)前任務(wù)流的執(zhí)行數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)存儲(chǔ)模塊中;
32、智能學(xué)習(xí)模塊周期性的根據(jù)任務(wù)流的歷史執(zhí)行數(shù)據(jù)更新模型。
33、進(jìn)一步,當(dāng)任務(wù)運(yùn)行過(guò)程中出現(xiàn)資源不足或任務(wù)執(zhí)行時(shí)間超出預(yù)期,資源監(jiān)控模塊會(huì)發(fā)出告警,任務(wù)流控制器模塊將自動(dòng)調(diào)整調(diào)度策略。
34、本發(fā)明的工作原理和有益效果:
35、在實(shí)施本發(fā)明的技術(shù)方案中,智能學(xué)習(xí)模塊通過(guò)對(duì)歷史任務(wù)數(shù)據(jù)的深度分析,建立并訓(xùn)練模型,從而得到準(zhǔn)確的任務(wù)執(zhí)行時(shí)間預(yù)測(cè)和資源需求配置推薦。在此基礎(chǔ)上,系統(tǒng)可以根據(jù)任務(wù)的執(zhí)行時(shí)間、資源配置及其他相關(guān)因素,生成最優(yōu)的任務(wù)流調(diào)度策略。當(dāng)系統(tǒng)監(jiān)測(cè)到資源不足或任務(wù)狀態(tài)發(fā)生變化時(shí),調(diào)度策略可以自動(dòng)實(shí)時(shí)調(diào)整,以確保任務(wù)流的高效執(zhí)行。這種智能化調(diào)度機(jī)制顯著提高了系統(tǒng)在復(fù)雜計(jì)算環(huán)境中的適應(yīng)能力,提升了任務(wù)流的執(zhí)行效率和資源利用率。不僅解決了現(xiàn)有任務(wù)流編排系統(tǒng)缺乏靈活性的問(wèn)題,還通過(guò)自動(dòng)化的調(diào)度決策,使系統(tǒng)能夠自適應(yīng)地應(yīng)對(duì)復(fù)雜的工作負(fù)載和資源分配需求。