国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      維護作業(yè)任務(wù)的系統(tǒng)和設(shè)計方法與流程

      文檔序號:11285990閱讀:206來源:國知局
      維護作業(yè)任務(wù)的系統(tǒng)和設(shè)計方法與流程
      本發(fā)明涉及云資源管理
      技術(shù)領(lǐng)域
      ,具體涉及一種維護作業(yè)任務(wù)的系統(tǒng)和設(shè)計方法。
      背景技術(shù)
      :云計算包含了公有云和私有云兩種主要模式和發(fā)展方向,出于安全考慮,企業(yè)更愿意將數(shù)據(jù)存放在私有云中,但是同時又希望可以獲得公有云的計算資源,在這種情況下混合云被越來越多的采用,它將公有云和私有云進行混合和匹配,以獲得最佳的效果,這種個性化的解決方案,達到了既省錢又安全的目的。在目前對公有云和自建機房(私有云),無論是管理方式和對資源的實際使用都存在著不小的差異,例如:公有云平臺中服務(wù)器資源一般都是虛擬化的,實際物理環(huán)境不需要關(guān)心;而私有云中,同時存在物理環(huán)境和虛擬環(huán)境;在私有云中,通過自建運維自動化作業(yè)平臺,cmdb(configurationmanagementdatabase,配置管理數(shù)據(jù)庫)系統(tǒng)來實現(xiàn)管理,在公有云中,需要依賴于公有云提供的api接口(applicationprogramminginterface,應(yīng)用程序編程接口)和sdk(softwaredevelopmentkit,軟件開發(fā)工具包),或者直接在公有云后臺系統(tǒng)中操作。無論是私有云還是公有云,在實際使用中,都需要針對業(yè)務(wù)特性來對云資源進行規(guī)劃和利用。在云資源管理中,一般會存在多種操作組合,例如資源購買、網(wǎng)絡(luò)配置、服務(wù)部署等,云資源管理人員需要對操作流程建立標準化管理,因此流程落地時,需要一套能支撐該流程的自動化作業(yè)平臺。在實際的云資源管理中,管理人員通過腳本、手工方式維護,操作流程依賴于個人的經(jīng)驗和熟練程度,無法正真保證流程的落地執(zhí)行,當流程發(fā)生變更后,操作也無法保證能做到同步,如需要修改腳本業(yè)務(wù)邏輯。在操作中發(fā)生錯誤時,也會遇到操作步驟無法回溯、審計的困難技術(shù)實現(xiàn)要素:本發(fā)明設(shè)計了一種作業(yè)任務(wù)封裝和執(zhí)行裝置,解決了對云資源操作流程標準化的技術(shù)問題。本發(fā)明采用的技術(shù)方案是:一種維護作業(yè)任務(wù)的系統(tǒng),所述系統(tǒng)包括組件、任務(wù)和任務(wù)組;一個任務(wù)組包括至少一個任務(wù),任務(wù)組控制組內(nèi)的每一個任務(wù)的執(zhí)行過程以及執(zhí)行過程中的任務(wù)入口參數(shù)傳遞;一個任務(wù)包括至少一個順序執(zhí)行的組件,任務(wù)控制每個組件的執(zhí)行,并將前一個組件的組件輸出參數(shù)傳遞給下一個組件。進一步地,所述組件用于封裝運維操作,包括以下組成部分:組件id,全局唯一;組件所屬任務(wù)id,全局唯一,用于關(guān)聯(lián)任務(wù);組件狀態(tài);組件內(nèi)容,執(zhí)行所述組件的實體;組件輸入?yún)?shù),組件執(zhí)行所需要的參數(shù);組件輸出參數(shù),標記組件執(zhí)行后需要導(dǎo)出的變量參數(shù),用于后續(xù)組件執(zhí)行;組件執(zhí)行模塊,執(zhí)行并通過管道方式存儲執(zhí)行日志,更新執(zhí)行狀態(tài)。進一步地,所述任務(wù)用于創(chuàng)建組件執(zhí)行流,包括以下組成部分:任務(wù)id,全局唯一,用于關(guān)聯(lián)任務(wù)組及組件;任務(wù)所屬任務(wù)組,用于關(guān)聯(lián)任務(wù)組;組件索引,一組順序排列的組件id,用于關(guān)聯(lián)組件的執(zhí)行;任務(wù)入口參數(shù),用于接收并發(fā)送任務(wù)中第一個調(diào)用組件所需要的參數(shù);任務(wù)執(zhí)行模塊,用于控制組件執(zhí)行,更新任務(wù)狀態(tài)。進一步地,所述任務(wù)組對任務(wù)進行分組執(zhí)行,包括以下組成部分:任務(wù)組id,全局唯一,用于關(guān)聯(lián)任務(wù);任務(wù)索引,一組包含在所述任務(wù)組中的任務(wù)id列表;任務(wù)組執(zhí)行策略,控制任務(wù)并發(fā)執(zhí)行策略;任務(wù)組入口參數(shù),用于接收并創(chuàng)建任務(wù),任務(wù)組根據(jù)獲取到的任務(wù)組入口參數(shù),生成對應(yīng)的任務(wù);任務(wù)組執(zhí)行模塊,用于控制任務(wù)執(zhí)行,更新任務(wù)組狀態(tài)。一種維護作業(yè)任務(wù)的設(shè)計方法,任務(wù)組對任務(wù)進行分組執(zhí)行,所述設(shè)計方法基于操作流程觸發(fā),對組件、任務(wù)和任務(wù)組進行封裝;任務(wù)組控制組內(nèi)的每一個任務(wù)的執(zhí)行過程以及執(zhí)行過程中的任務(wù)入口參數(shù)傳遞;任務(wù)控制每個組件的執(zhí)行,并將前一個組件的組件輸出參數(shù)傳遞給下一個組件;組件對運維操作進行封裝;所述設(shè)計方法包括任務(wù)組創(chuàng)建和啟動流程以及組件、任務(wù)、任務(wù)組執(zhí)行流程。進一步地,所述任務(wù)組創(chuàng)建和啟動流程步驟如下:步驟s11,web控制臺接收用戶請求,通過請求接收接口獲取啟動任務(wù)組的名稱和參數(shù);步驟s12,根據(jù)配置db中存儲的任務(wù)組,創(chuàng)建并初始化任務(wù)組、任務(wù)和組件;步驟s13,推送任務(wù)組id到消息隊列中;步驟s14,返回任務(wù)組id到web控制臺,web控制臺控制任務(wù)組執(zhí)行。進一步地,所述組件、任務(wù)、任務(wù)組執(zhí)行流程步驟如下:步驟s21,任務(wù)組創(chuàng)建和初始化完成后,任務(wù)組控制器將任務(wù)組id推送到消息隊列;步驟s22,任務(wù)組控制器從消息隊列重新獲取任務(wù)組id,任務(wù)組控制器檢查任務(wù)組狀態(tài);步驟s23,任務(wù)組控制器讀取任務(wù)id列表,根據(jù)策略推送對應(yīng)的任務(wù)id到消息隊列中;步驟s24,任務(wù)控制器從消息隊列中接收到任務(wù)id,觸發(fā)任務(wù)運行,任務(wù)控制器檢查任務(wù)狀態(tài),讀取組件信息,將組件id或者組件所屬任務(wù)組id推送到消息隊列中;步驟s25,組件控制器從消息隊列中接收到組件id,觸發(fā)組件運行,組件控制器執(zhí)行判斷組件狀態(tài)、執(zhí)行組件并同步日志,執(zhí)行完成后,刷新組件狀態(tài),同時推送組件所屬任務(wù)id到消息隊列中;步驟s26,重復(fù)步驟s21-步驟s25,直到整個組件、任務(wù)、任務(wù)組執(zhí)行流程完成。進一步地,所述步驟s23中的策略包括并發(fā)模式和判斷模式,并發(fā)模式中設(shè)定同時運行任務(wù)的數(shù)量,判斷模式中當一個任務(wù)執(zhí)行完成后,根據(jù)任務(wù)最后一個組件的組件輸出參數(shù)判斷后續(xù)執(zhí)行的任務(wù)。進一步地,所述步驟s24中當組件需要執(zhí)行時,將組件id推送到消息隊列中;當組件運行完成后,則將組件所屬任務(wù)組id推送到消息隊列中。進一步地,組件、任務(wù)、任務(wù)組與web控制臺交互時,在組件狀態(tài)、任務(wù)狀態(tài)、任務(wù)組狀態(tài)同步刷新。本發(fā)明用于解決流程操作的實際落地,有益效果如下:1、可根據(jù)流程變更,靈活調(diào)整執(zhí)行順序;2、流程和操作能做到一一對應(yīng);3、每個流程步驟可獨立執(zhí)行,便于問題排查。附圖說明圖1是本發(fā)明系統(tǒng)結(jié)構(gòu)圖實施例一。圖2是本發(fā)明系統(tǒng)結(jié)構(gòu)圖實施例二。圖3是本發(fā)明任務(wù)組創(chuàng)建和啟動流程圖。圖4是本發(fā)明組件、任務(wù)、任務(wù)組執(zhí)行流程圖。具體實施方式本發(fā)明基于操作流程觸發(fā),從組件(流程執(zhí)行)、任務(wù)(流程組合)、任務(wù)組(流程批量組合執(zhí)行)三個部分進行封裝。用戶在開發(fā)運維腳本時,只需要關(guān)注每一個步驟所需要做的事,而無需理會整個業(yè)務(wù)邏輯,通過任務(wù)組合方式建立與業(yè)務(wù)邏輯統(tǒng)一的業(yè)務(wù)流程,以實現(xiàn)流程與操作的統(tǒng)一。下文中,結(jié)合附圖和實施例對本發(fā)明作進一步闡述。圖1和圖2為本發(fā)明系統(tǒng)結(jié)構(gòu)圖,系統(tǒng)包括組件、任務(wù)、任務(wù)組三個功能模塊。各個功能模塊說明如下:組件:用于封裝特定的運維操作,比如一個腳本、或者一次接口調(diào)用,每個組件只負責(zé)一次單一的操作過程;組件的組成部分如下:組件id,全局唯一;組件所屬任務(wù)id,全局唯一,用于關(guān)聯(lián)任務(wù);組件狀態(tài):特定關(guān)鍵字組件內(nèi)容:執(zhí)行所述組件的實體,如果組件是類型是調(diào)用腳本,則內(nèi)容就是腳本本身;組件輸入?yún)?shù):一個組件執(zhí)行所需要的參數(shù),例如:一次ssh(secureshell,安全外殼協(xié)議)遠程連接,需要host(主機)、user(登錄賬戶)、password(登錄密碼);特定類型的組件可由默認參數(shù)和自定義參數(shù)組成;組件輸出參數(shù):標記所述組件執(zhí)行后需要導(dǎo)出的變量參數(shù),用于后續(xù)組件執(zhí)行;組件執(zhí)行模塊:執(zhí)行并通過管道方式存儲執(zhí)行日志,更新執(zhí)行狀態(tài);組件分類:在程序設(shè)計中,可以將組件劃分如下幾類(如表1所示,非必須,用戶依據(jù)設(shè)計可自行擴展)。表1組件分類任務(wù):用于創(chuàng)建組件執(zhí)行流,一個任務(wù)包含多個順序執(zhí)行的組件,任務(wù)控制每個組件的執(zhí)行,并且將前一個組件的執(zhí)行結(jié)果(組件輸出參數(shù))傳遞給下一個組件,除此之外,任務(wù)還可以控制后續(xù)組件的執(zhí)行、暫停等操作,當其中一個組件執(zhí)行錯誤,組件狀態(tài)會直接返回至任務(wù)。任務(wù)的組成部分如下:任務(wù)id,全局唯一,用于關(guān)聯(lián)任務(wù)組及組件;任務(wù)所屬任務(wù)組,用于關(guān)聯(lián)任務(wù)組;組件索引:一組順序排列的組件id,用于關(guān)聯(lián)多個組件的執(zhí)行;任務(wù)入口參數(shù):用于接收并發(fā)送任務(wù)中第一個調(diào)用組件所需要的參數(shù);任務(wù)執(zhí)行模塊:用于控制組件執(zhí)行,更新任務(wù)狀態(tài)。任務(wù)組:將多個任務(wù)組織在一起構(gòu)成一個任務(wù)組,任務(wù)組根據(jù)預(yù)設(shè)的執(zhí)行策略,對任務(wù)進行分組執(zhí)行,任務(wù)組控制組內(nèi)的每一個任務(wù)的執(zhí)行過程以及執(zhí)行過程中的入口參數(shù)傳遞。任務(wù)組一個典型的場景:批量執(zhí)行多個云主機,使用任務(wù)+組件封裝好對云主機的具體操作流程,對n個云主機執(zhí)行創(chuàng)建n個單一任務(wù)(n至少為1),使用任務(wù)組組合并控制這些任務(wù)(云主機)的執(zhí)行策略:同時多個主機并發(fā)執(zhí)行,或者是先執(zhí)行哪一個云主機。任務(wù)組的組成部分如下:任務(wù)組id:全局唯一,用于關(guān)聯(lián)任務(wù);任務(wù)索引:一組包含在所述任務(wù)組中的任務(wù)id列表;任務(wù)組執(zhí)行策略:控制任務(wù)并發(fā)執(zhí)行策略;任務(wù)組入口參數(shù):用于接收并創(chuàng)建任務(wù),任務(wù)組可根據(jù)獲取到的參數(shù),生成對應(yīng)的任務(wù)。例如:n個云主機的ip,生成對這些云主機操作的n個任務(wù);任務(wù)組執(zhí)行模塊:用于控制任務(wù)執(zhí)行,更新任務(wù)組狀態(tài)。表2為狀態(tài)標記,事先約定了在組件、任務(wù)、任務(wù)組之間通信的狀態(tài)標記,作用是在功能模塊間通過狀態(tài)標記的變化來觸發(fā)聯(lián)動操作。各功能功能模塊通過消息隊列(消息的傳輸過程中保存消息的容器)通知方式,觸發(fā)功能模塊啟動,功能模塊根據(jù)獲取到的狀態(tài)標記來判斷后續(xù)操作。表2狀態(tài)標記狀態(tài)標記說明模塊場景create創(chuàng)建成功組件、任務(wù)、任務(wù)組init任務(wù)組完成初始化(創(chuàng)建任務(wù)成功)任務(wù)組start啟動成功組件、任務(wù)、任務(wù)組running運行中組件、任務(wù)、任務(wù)組fail執(zhí)行失敗組件、任務(wù)、任務(wù)組pause暫停中任務(wù)、任務(wù)組done已完成組件、任務(wù)、任務(wù)組本發(fā)明中組件、任務(wù)、任務(wù)組之間使用層級依賴,當狀態(tài)刷新后,推送上級id觸發(fā)狀態(tài)同步,三者同步關(guān)系因?qū)崟r保持一致。本發(fā)明設(shè)計方法包括任務(wù)組創(chuàng)建和啟動流程以及組件、任務(wù)、任務(wù)組執(zhí)行流程,其中任務(wù)組創(chuàng)建和啟動流程如圖3所示,步驟如下:步驟s11,web控制臺接收用戶請求,通過請求接收接口獲取啟動任務(wù)組的名稱和參數(shù)。步驟s12,根據(jù)配置db中存儲的任務(wù)組,創(chuàng)建并初始化(init)任務(wù)組、任務(wù)和組件。步驟s13,推送任務(wù)組id到消息隊列中(觸發(fā)任務(wù)組執(zhí)行)。步驟s14,返回任務(wù)組id到web控制臺,web控制臺控制任務(wù)組執(zhí)行。組件、任務(wù)、任務(wù)組執(zhí)行流程如圖4所示,步驟如下:步驟s21,任務(wù)組完成初始化(init)后,任務(wù)組控制器將任務(wù)組id推送到消息隊列。步驟s22,任務(wù)組控制器從消息隊列重新獲取任務(wù)組id,任務(wù)組控制器檢查任務(wù)組狀態(tài)。步驟s23,任務(wù)組控制器讀取任務(wù)id列表,根據(jù)策略推送對應(yīng)的任務(wù)id到消息隊列中。任務(wù)組策略中包括兩種模式:并發(fā)模式:設(shè)定同時運行多少個任務(wù);判斷模式:當一個任務(wù)執(zhí)行完成后,根據(jù)任務(wù)最后一個組件的輸出參數(shù)判斷后續(xù)執(zhí)行哪一個任務(wù)。并發(fā)模式適合批量并發(fā)執(zhí)行云主機,判斷模式適合更復(fù)雜的業(yè)務(wù)邏輯,例如:故障檢測、業(yè)務(wù)邏輯測試、監(jiān)控等。步驟s24,任務(wù)控制器從消息隊列中接收到任務(wù)id,觸發(fā)任務(wù)運行,任務(wù)控制器檢查任務(wù)狀態(tài),讀取組件信息,將當前需要執(zhí)行的組件id推送到消息隊列,如果組件運行完成(成功或失敗),則推送所屬任務(wù)組id到消息隊列中。步驟s25,組件控制器從消息隊列中接收到組件id,觸發(fā)組件運行,組件控制器執(zhí)行判斷組件狀態(tài)、執(zhí)行組件并同步日志,執(zhí)行完成(成功或失敗)后,刷新組件狀態(tài),同時推送組件所屬任務(wù)id到消息隊列中。步驟s26,重復(fù)步驟s21-步驟s25,直到整個組件、任務(wù)、任務(wù)組執(zhí)行流程完成??蛇x地,在消息隊列可靠性方面需要考慮消息丟失,可單獨運行一個模塊檢查進程,當模塊一段時間內(nèi)無變更,手動刷新狀態(tài)、重新觸發(fā)上級模塊;可選地,各功能模塊與web交互時,需要在各功能模塊狀態(tài)同步刷新,包括組件日志刷新時,推送狀態(tài)通知到一個單獨的消息隊列中,使用websocket(基于tcp的一種新的網(wǎng)絡(luò)協(xié)議)實時更新頁面信息,刷新日志滾動。本發(fā)明開發(fā)語言包含以下部分:組件、任務(wù)、任務(wù)組實現(xiàn)多并發(fā)執(zhí)行,可通過docker部署,各功能模塊間通過隊列進行交互、同級模塊不關(guān)聯(lián),可以很方便在單臺服務(wù)器上啟動多個調(diào)用系統(tǒng),增加單機并發(fā)操作能力同時降低部署難度;消息隊列:使用redis簡易隊列可快速實現(xiàn)本發(fā)明消息通知部分,如需要保證消息可靠,可使用rabbitmq;后臺存儲:任務(wù)名及任務(wù)綁定執(zhí)行數(shù)據(jù)可使用關(guān)系數(shù)據(jù)(mysql)保存,例如:可保存任務(wù)對應(yīng)的腳本內(nèi)容;任務(wù)執(zhí)行數(shù)據(jù)使用mongodb存儲,可利用mongo插入數(shù)據(jù)生成唯一key特性,直接將該key作為任務(wù)id或日志數(shù)據(jù)id推送;任務(wù)執(zhí)行:ssh遠程腳本執(zhí)行優(yōu)選使用fabric、傳送文件可使用rsync或者同樣使用fabric模塊實現(xiàn),云接口調(diào)用可使用標準http組件,同時需要將返回結(jié)果做格式標準化定義,保持接口調(diào)用的格式統(tǒng)一;websocket:優(yōu)選使用nodejs實現(xiàn)。本發(fā)明雖然已以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對本發(fā)明技術(shù)方案做出可能的變動和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護范圍。當前第1頁12
      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1