国产精品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>

      容器化微服務(wù)自動伸縮及遷移調(diào)度的方法、系統(tǒng)和設(shè)備與流程

      文檔序號:12622764閱讀:336來源:國知局
      容器化微服務(wù)自動伸縮及遷移調(diào)度的方法、系統(tǒng)和設(shè)備與流程

      本發(fā)明涉及器化微服務(wù)技術(shù)領(lǐng)域,尤其涉及一種容器化微服務(wù)自動伸縮及遷移調(diào)度的方法、系統(tǒng)和設(shè)備。



      背景技術(shù):

      在如今的互聯(lián)網(wǎng)和企業(yè)應(yīng)用開發(fā)領(lǐng)域,微服務(wù)和DevOps這兩個思想頗為深入人心。而Docker技術(shù)的出現(xiàn)和其對整個容器技術(shù)及其生態(tài)圈發(fā)展的促進(jìn),解決了微服務(wù)和DevOps這兩個思想實(shí)踐中的很多難題,使得微服務(wù)和DevOps這兩種思想大規(guī)模地實(shí)現(xiàn)成為了可能。而Docker給系統(tǒng)架構(gòu)各應(yīng)用的微服務(wù)容器化提供了諸多便利的同時,也對企業(yè)的服務(wù)治理帶來了很大挑戰(zhàn)。

      為了充分利用IDC的物理資源、節(jié)省企業(yè)成本和保證服務(wù)的高可用性,在保證服務(wù)不中斷情況下需要對服務(wù)進(jìn)行彈性伸縮和遷移調(diào)度。

      目前,對服務(wù)進(jìn)行彈性伸縮和遷移調(diào)度主要有兩種方式:

      1、手工方式:

      1)根據(jù)容器化微服務(wù)故障的監(jiān)控預(yù)警信息,運(yùn)維人員手工把不可用的服務(wù)調(diào)度到集群中其它可用節(jié)點(diǎn)上。

      2)預(yù)估系統(tǒng)流量壓力,運(yùn)維人員提前在預(yù)測時間點(diǎn)手工擴(kuò)容、縮減容器化微服務(wù)實(shí)例資源配額或數(shù)量。

      2、基于系統(tǒng)性能監(jiān)控的自動調(diào)度方式:

      服務(wù)治理平臺或監(jiān)控系統(tǒng)監(jiān)控容器的CPU、內(nèi)存、網(wǎng)絡(luò)流量,根據(jù)預(yù)先設(shè)定的規(guī)則,在CPU、內(nèi)存或網(wǎng)絡(luò)流量使用量達(dá)到閥值時自動擴(kuò)容或縮減容器實(shí)例數(shù)量。

      發(fā)明人在研究的過程中發(fā)現(xiàn),上述兩種方式存在以下缺點(diǎn):

      手工方式效率低:從接到告警信息到運(yùn)維人員完成手工伸縮,響應(yīng)時間不及時。企業(yè)運(yùn)維成本高:每次伸縮都需要運(yùn)維人員全程參與造成運(yùn)維成本高。操作失誤風(fēng)險(xiǎn)高和推廣困難:如策略、規(guī)則和伸縮模式復(fù)雜,會造成運(yùn)維人員學(xué)習(xí)和應(yīng)用困難,推廣阻力大。同時,由于根據(jù)策略和規(guī)則計(jì)算最優(yōu)的伸縮模式復(fù)雜,很容易造成操作失誤風(fēng)險(xiǎn)。

      基于系統(tǒng)性能監(jiān)控的自動調(diào)度方式不能達(dá)到預(yù)期效果:沒有進(jìn)行故障傳導(dǎo)分析,某個容器的資源利用情況不能真實(shí)反映整個調(diào)用鏈的瓶頸,達(dá)到閥值容器的資源利用情況會是由于下級微服務(wù)的服務(wù)質(zhì)量造成。伸縮策略受限:無法對容器實(shí)例的資源配額單獨(dú)伸縮。伸縮機(jī)制受限:不能根據(jù)單個容器化微服務(wù)的特性進(jìn)行重啟,或單次伸縮數(shù)量、收縮時間間隔等。



      技術(shù)實(shí)現(xiàn)要素:

      為了解決上述技術(shù)問題,本發(fā)明提供了一種容器化微服務(wù)自動伸縮及遷移調(diào)度的方法、系統(tǒng)和設(shè)備,通過監(jiān)控容器的資源(CPU、內(nèi)存、IO、網(wǎng)絡(luò)和存儲)利用情況和容器化微服務(wù)的服務(wù)質(zhì)量(響應(yīng)時間、失敗率、服務(wù)調(diào)用次數(shù))。結(jié)合大數(shù)據(jù)綜合分析結(jié)果,根據(jù)規(guī)則、策略和調(diào)度算法,提供容器化微服務(wù)無需人工干預(yù)快速的自動化伸縮和故障調(diào)度轉(zhuǎn)移。達(dá)到對硬件資源的合理利用、降低運(yùn)維團(tuán)隊(duì)成本、容器化微服務(wù)的高可用性和高性能目的。

      本發(fā)明一方面提供了一種容器化微服務(wù)自動伸縮及遷移調(diào)度的方法,其特征在于,包括:

      接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù);和/或第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù);

      觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù),包括:

      實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù)。

      進(jìn)一步的,所述實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù),包括:

      資源監(jiān)控和分析系統(tǒng)實(shí)時采集服務(wù)調(diào)用日志和容器資源利用信息;

      判斷所述采集的服務(wù)調(diào)用日志和容器資源利用信息滿足系統(tǒng)預(yù)設(shè)預(yù)警條件后,在微服務(wù)調(diào)用鏈里定位原始故障點(diǎn);

      實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的所述原始故障點(diǎn)的異常信息數(shù)據(jù)。

      進(jìn)一步的,所述判斷所述采集的服務(wù)調(diào)用日志和容器資源利用信息滿足系統(tǒng)預(yù)設(shè)預(yù)警條件后,在微服務(wù)調(diào)用鏈里定位原始故障點(diǎn),包括:

      基于服務(wù)器配置的預(yù)設(shè)預(yù)警條件閥值以及預(yù)設(shè)算法分析,判斷采集的HTTP和TCP/UDP類型的服務(wù)調(diào)用日志和容器資源利用信息中的容器CPU、內(nèi)存、存儲、IO和/或網(wǎng)絡(luò)的使用數(shù)據(jù),以及微服務(wù)的響應(yīng)時間、失敗率、QPS是否滿足系統(tǒng)預(yù)設(shè)預(yù)警條件;

      若滿足系統(tǒng)預(yù)設(shè)預(yù)警條件之一,則進(jìn)行故障傳導(dǎo)分析,在整個微服務(wù)調(diào)用鏈里定位原始故障點(diǎn)。

      進(jìn)一步的,所述系統(tǒng)預(yù)設(shè)預(yù)警條件包括但不限于高負(fù)荷、低使用率、異常波動或可用性不達(dá)標(biāo)中的一種或多種。

      進(jìn)一步的,所述觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移,包括:

      根據(jù)預(yù)警數(shù)據(jù)中的IP和端口或服務(wù)ID從容器集群環(huán)境中獲取相關(guān)微服務(wù)屬性信息;

      把預(yù)警數(shù)據(jù)交給規(guī)則引擎選出需要執(zhí)行動作的決策項(xiàng)集合,依據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述把預(yù)警數(shù)據(jù)交給規(guī)則引擎選出需要執(zhí)行動作的決策項(xiàng)集合,依據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移,包括:

      參照RETE算法,根據(jù)預(yù)警數(shù)據(jù)的類型進(jìn)行規(guī)則類型匹配,將每類中的預(yù)警數(shù)據(jù)根據(jù)屬性值進(jìn)行多級規(guī)則匹配,選出一個條件被優(yōu)先滿足的規(guī)則后,根據(jù)選定的規(guī)則從規(guī)則適配決策表中匹配決策項(xiàng)集合,通過匹配的決策項(xiàng)集合解決決策項(xiàng)集合中的沖突,形成可順序執(zhí)行決策項(xiàng),根據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用容器集群的API完成容器伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述接收第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移,包括:

      接收第三方平臺按照接口調(diào)用協(xié)議定義的格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù);

      調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義,準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述接收第三方平臺按照接口調(diào)用協(xié)議定義的格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),包括:

      接收第三方平臺通過HTTP或HTTPS協(xié)議提供的接口通過同步調(diào)用或異步調(diào)用服務(wù)使用JSON格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),并在注冊成功回調(diào)地址后可實(shí)現(xiàn)消息推送。

      進(jìn)一步的,所述觸發(fā)容器自動伸縮,包括:

      伸縮容器的CPU、內(nèi)存、存儲資源中的一種或多種;

      重啟容器;

      基于預(yù)設(shè)時間間隔將容器逐一伸縮;

      基于預(yù)設(shè)時間間隔按照預(yù)設(shè)比例將容器逐步伸縮。

      本發(fā)明另一方面還提供了一種容器化微服務(wù)自動伸縮及遷移調(diào)度的系統(tǒng),包括:

      接收模塊,用于接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù);和/或第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù);

      觸發(fā)模塊,用于觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述接收模塊,包括:

      第一接收模塊,用于實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù)。

      進(jìn)一步的,所述第一接收模塊,包括:

      資源監(jiān)控和分析系統(tǒng)采集單元,用于實(shí)時采集服務(wù)調(diào)用日志和容器資源利用信息;

      判斷單元,用于判斷所述采集的服務(wù)調(diào)用日志和容器資源利用信息滿足系統(tǒng)預(yù)設(shè)預(yù)警條件后,在微服務(wù)調(diào)用鏈里定位原始故障點(diǎn);

      接收單元,用于實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的所述原始故障點(diǎn)的異常信息數(shù)據(jù)。

      進(jìn)一步的,所述判斷單元,包括:

      判斷子單元,用于基于服務(wù)器配置的預(yù)設(shè)預(yù)警條件閥值以及預(yù)設(shè)算法分析,判斷采集的HTTP和TCP/UDP類型的服務(wù)調(diào)用日志和容器資源利用信息中的容器CPU、內(nèi)存、存儲、IO和/或網(wǎng)絡(luò)的使用數(shù)據(jù),以及微服務(wù)的響應(yīng)時間、失敗率、QPS是否滿足系統(tǒng)預(yù)設(shè)預(yù)警條件;

      定位單元,用于在判斷子單元判斷所述采集的服務(wù)調(diào)用日志和容器資源利用信息滿足系統(tǒng)預(yù)設(shè)預(yù)警條件之一,則進(jìn)行故障傳導(dǎo)分析,在整個微服務(wù)調(diào)用鏈里定位原始故障點(diǎn)。

      進(jìn)一步的,所述系統(tǒng)預(yù)設(shè)預(yù)警條件包括但不限于高負(fù)荷、低使用率、異常波動或可用性不達(dá)標(biāo)中的一種或多種。

      進(jìn)一步的,所述觸發(fā)模塊,包括:

      獲取單元,用于根據(jù)預(yù)警數(shù)據(jù)中的IP和端口或服務(wù)ID從容器集群環(huán)境中獲取相關(guān)微服務(wù)屬性信息;

      第一觸發(fā)單元,用于把預(yù)警數(shù)據(jù)交給規(guī)則引擎選出需要執(zhí)行動作的決策項(xiàng)集合,依據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述第一觸發(fā)單元,包括:

      規(guī)則匹配單元,用于參照RETE算法,根據(jù)預(yù)警數(shù)據(jù)的類型進(jìn)行規(guī)則類型匹配,將每類中的預(yù)警數(shù)據(jù)根據(jù)屬性值進(jìn)行多級規(guī)則匹配,選出一個條件被優(yōu)先滿足的規(guī)則后,根據(jù)選定的規(guī)則從規(guī)則適配決策表中匹配決策項(xiàng)集合,通過匹配的決策項(xiàng)集合解決決策項(xiàng)集合中的沖突,形成可順序執(zhí)行決策項(xiàng);

      第一觸發(fā)子單元,用于根據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用容器集群的API完成容器伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述接收模塊,包括:

      第二接收模塊,用于接收第三方平臺按照接口調(diào)用協(xié)議定義的格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù)。

      進(jìn)一步的,所述觸發(fā)模塊,包括:

      第二觸發(fā)單元,用于調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義,準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述第二接收模塊,包括:

      第二接收單元,用于接收第三方平臺通過HTTP或HTTPS協(xié)議提供的接口通過同步調(diào)用或異步調(diào)用服務(wù)使用JSON格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),并在注冊成功回調(diào)地址后可實(shí)現(xiàn)消息推送。

      進(jìn)一步的,所述觸發(fā)模塊,還包括:

      第一伸縮單元,用于伸縮容器的CPU、內(nèi)存、存儲資源中的一種或多種;

      重啟單元,用于重啟容器;

      第二伸縮單元,用于基于預(yù)設(shè)時間間隔將容器逐一伸縮;

      第三伸縮單元,用于基于預(yù)設(shè)時間間隔按照預(yù)設(shè)比例將容器逐步伸縮。

      本發(fā)明另一方面還提供了一種容器化微服務(wù)自動伸縮及遷移調(diào)度的設(shè)備,包括前述任一項(xiàng)所述的容器化微服務(wù)自動伸縮及遷移調(diào)度的系統(tǒng)。

      本發(fā)明通過接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù);和/或第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移的技術(shù)方案,一旦微服務(wù)出現(xiàn)異常,加快了服務(wù)伸縮的響應(yīng)時間和處理時間;解放了運(yùn)維人員處理的繁重工作量;有效控制了人為處理服務(wù)伸縮帶來的不可控風(fēng)險(xiǎn);降低了企業(yè)的運(yùn)維成本;有效加快企業(yè)推廣系統(tǒng)容器化微服務(wù)改造;解決了容器收縮策略的限制;擴(kuò)充了容器化微服務(wù)伸縮的多樣性和機(jī)制;通過對整個調(diào)用鏈的故障傳導(dǎo)分析準(zhǔn)確的定位了真實(shí)的故障點(diǎn),做到了對容器化微服務(wù)的精確伸縮。

      附圖說明

      圖1為根據(jù)本發(fā)明的容器化微服務(wù)自動伸縮及遷移調(diào)度的方法的實(shí)施例一的流程圖;

      圖2為根據(jù)本發(fā)明的JSON格式調(diào)用程序的示意圖;

      圖3為根據(jù)本發(fā)明的數(shù)據(jù)格式程序的示意圖;

      圖4為根據(jù)本發(fā)明的容器化微服務(wù)自動伸縮及遷移調(diào)度的系統(tǒng)的實(shí)施例二的示意圖;

      圖5為根據(jù)本發(fā)明的接收模塊的實(shí)施例二的示意圖;

      圖6為根據(jù)本發(fā)明的第一接收模塊的實(shí)施例二的示意圖;

      圖7為根據(jù)本發(fā)明的判斷單元的實(shí)施例二的示意圖;

      圖8為根據(jù)本發(fā)明的觸發(fā)模塊的實(shí)施例二的示意圖;

      圖9為根據(jù)本發(fā)明的第一觸發(fā)單元的實(shí)施例二的示意圖;

      圖10為根據(jù)本發(fā)明的接收模塊的實(shí)施例二的另一示意圖;

      圖11為根據(jù)本發(fā)明的觸發(fā)模塊的實(shí)施例二的另一示意圖;

      圖12為根據(jù)本發(fā)明的第二接收模塊的實(shí)施例二的示意圖;

      圖13為根據(jù)本發(fā)明的觸發(fā)模塊的實(shí)施例二的另一示意圖;

      圖14為根據(jù)本發(fā)明的容器化微服務(wù)自動伸縮及遷移調(diào)度的設(shè)備的實(shí)施例三的結(jié)構(gòu)框圖。

      具體實(shí)施方式

      為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。

      需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

      實(shí)施例一

      參照圖1,圖1示出了本發(fā)明提供的一種容器化微服務(wù)自動伸縮及遷移調(diào)度的方法的流程圖。包括:步驟S110、步驟S120。

      在步驟S110中,接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù);和/或第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù)。

      在步驟S120中,觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù),包括:

      實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù)。

      進(jìn)一步的,所述實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù),包括:

      資源監(jiān)控和分析系統(tǒng)實(shí)時采集服務(wù)調(diào)用日志和容器資源利用信息;

      判斷所述采集的服務(wù)調(diào)用日志和容器資源利用信息滿足系統(tǒng)預(yù)設(shè)預(yù)警條件后,在微服務(wù)調(diào)用鏈里定位原始故障點(diǎn);

      實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的所述原始故障點(diǎn)的異常信息數(shù)據(jù)。

      進(jìn)一步的,所述判斷所述采集的服務(wù)調(diào)用日志和容器資源利用信息滿足系統(tǒng)預(yù)設(shè)預(yù)警條件后,在微服務(wù)調(diào)用鏈里定位原始故障點(diǎn),包括:

      基于服務(wù)器配置的預(yù)設(shè)預(yù)警條件閥值以及預(yù)設(shè)算法分析,判斷采集的HTTP和TCP/UDP類型的服務(wù)調(diào)用日志和容器資源利用信息中的容器CPU、內(nèi)存、存儲、輸入/輸出IO接口或設(shè)備和/或網(wǎng)絡(luò)的使用數(shù)據(jù),以及微服務(wù)的響應(yīng)時間、失敗率、每秒查詢率QPS是否滿足系統(tǒng)預(yù)設(shè)預(yù)警條件;其中,預(yù)設(shè)預(yù)警條件閥值以及預(yù)設(shè)算法分析根據(jù)系統(tǒng)的硬件屬性或場景所需,設(shè)置配置的閥值和策略,通過實(shí)時大數(shù)據(jù)綜合分析所需的數(shù)據(jù)集。

      若滿足系統(tǒng)預(yù)設(shè)預(yù)警條件之一,則進(jìn)行故障傳導(dǎo)分析,在整個微服務(wù)調(diào)用鏈里定位原始故障點(diǎn)。在定位到故障點(diǎn)后,把異常信息數(shù)據(jù)按照“接口調(diào)用協(xié)議”定義的格式發(fā)送給容器化微服務(wù)自動調(diào)度系統(tǒng)中。

      進(jìn)一步的,所述系統(tǒng)預(yù)設(shè)預(yù)警條件包括但不限于高負(fù)荷、低使用率、異常波動或可用性不達(dá)標(biāo)中的一種或多種。

      進(jìn)一步的,所述觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移,包括:

      根據(jù)預(yù)警數(shù)據(jù)中的IP和端口或服務(wù)ID從容器集群環(huán)境中獲取相關(guān)微服務(wù)屬性信息;

      把預(yù)警數(shù)據(jù)交給規(guī)則引擎選出需要執(zhí)行動作的決策項(xiàng)集合,依據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述把預(yù)警數(shù)據(jù)交給規(guī)則引擎選出需要執(zhí)行動作的決策項(xiàng)集合,依據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移,包括:

      參照RETE算法,根據(jù)預(yù)警數(shù)據(jù)的類型進(jìn)行規(guī)則類型匹配,將每類中的預(yù)警數(shù)據(jù)根據(jù)屬性值進(jìn)行多級規(guī)則匹配,選出一個條件被優(yōu)先滿足的規(guī)則后,根據(jù)選定的規(guī)則從規(guī)則適配決策表中匹配決策項(xiàng)集合,通過匹配的決策項(xiàng)集合解決決策項(xiàng)集合中的沖突,形成可順序執(zhí)行決策項(xiàng),根據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用容器集群的API完成容器伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述接收第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移,包括:

      接收第三方平臺按照接口調(diào)用協(xié)議定義的格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù);

      調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義,準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,所述接收第三方平臺按照接口調(diào)用協(xié)議定義的格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),包括:

      接收第三方平臺通過HTTP或HTTPS協(xié)議提供的接口通過同步調(diào)用或異步調(diào)用服務(wù)使用JSON格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),并在注冊成功回調(diào)地址后可實(shí)現(xiàn)消息推送。

      本發(fā)明實(shí)施例中的與第三方平臺的通信模式,可獨(dú)立作為一個服務(wù),以HTTP或HTTPS協(xié)議提供接口調(diào)用服務(wù),其它業(yè)務(wù)系統(tǒng)或功能模塊可同步調(diào)用、異步調(diào)用。并在注冊成功回調(diào)地址后可實(shí)現(xiàn)消息推送。并可提供客戶端數(shù)字證書、用戶名加密碼、令牌三種方式認(rèn)證客戶端調(diào)用的合法性。接口調(diào)用數(shù)據(jù)使用JSON格式,一應(yīng)用例子,參考圖2所示的調(diào)用服務(wù)。

      進(jìn)一步的,所述觸發(fā)容器自動伸縮,包括:

      伸縮容器的CPU、內(nèi)存、存儲資源中的一種或多種;

      重啟容器;

      基于預(yù)設(shè)時間間隔將容器逐一伸縮;

      基于預(yù)設(shè)時間間隔按照預(yù)設(shè)比例將容器逐步伸縮。

      另一應(yīng)用例子,通過第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù);觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移。在互聯(lián)網(wǎng)票務(wù)B2C業(yè)務(wù)中,由于場館座位的限制,熱點(diǎn)演唱會項(xiàng)目售票通常指定時間點(diǎn)進(jìn)行開票售賣。在到開票售賣后瞬間會有大量的黃牛黨和粉絲集中購買。首先預(yù)測演唱會搶票高峰服務(wù)的容器擴(kuò)容量。

      通過監(jiān)控微服務(wù)的并發(fā)訪問,統(tǒng)計(jì)出下單服務(wù)的壓力最大、響應(yīng)時間最慢的微服務(wù)。由于下單響應(yīng)時間的瓶頸延遲會造成整個交易流程體驗(yàn)不好。

      預(yù)測下單服務(wù)的擴(kuò)容數(shù)量,根據(jù)歷史監(jiān)控?cái)?shù)據(jù),經(jīng)大數(shù)據(jù)平臺依據(jù)時間、城市、項(xiàng)目類型、項(xiàng)目內(nèi)容四個緯度預(yù)估出需要擴(kuò)容的規(guī)模和數(shù)量。

      運(yùn)維人員通過服務(wù)治理平臺(第三方平臺),選定訂單服務(wù),并填入擴(kuò)容的數(shù)量、擴(kuò)容時間、擴(kuò)容間隔時間、每次的擴(kuò)容量。運(yùn)維人員通過服務(wù)治理平臺,提交訂單服務(wù)擴(kuò)容任務(wù)給“容器化微服務(wù)自動調(diào)度系統(tǒng)”。數(shù)據(jù)格式如圖3所示。

      “容器化微服務(wù)自動調(diào)度系統(tǒng)”依據(jù)接收到的數(shù)據(jù)調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù)。

      任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義,準(zhǔn)時調(diào)用容器集群的API完成容器伸縮或故障調(diào)度轉(zhuǎn)移。

      本發(fā)明實(shí)施例一通過接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù);和/或第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移的技術(shù)方案,一旦微服務(wù)出現(xiàn)異常,加快了服務(wù)伸縮的響應(yīng)時間和處理時間;解放了運(yùn)維人員處理的繁重工作量;有效控制了人為處理服務(wù)伸縮帶來的不可控風(fēng)險(xiǎn);降低了企業(yè)的運(yùn)維成本;有效加快企業(yè)推廣系統(tǒng)容器化微服務(wù)改造;解決了容器收縮策略的限制;擴(kuò)充了容器化微服務(wù)伸縮的多樣性和機(jī)制;通過對整個調(diào)用鏈的故障傳導(dǎo)分析準(zhǔn)確的定位了真實(shí)的故障點(diǎn),做到了對容器化微服務(wù)的精確伸縮。

      實(shí)施例二

      參照圖4,圖4示出了本發(fā)明提供的一種容器化微服務(wù)自動伸縮及遷移調(diào)度的系統(tǒng)200一實(shí)施例的結(jié)構(gòu)圖,包括:

      接收模塊21,用于接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù);和/或第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù)。

      觸發(fā)模塊22,用于觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,參照圖5,所述接收模塊21,包括:

      第一接收模塊211,用于實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù)。

      進(jìn)一步的,參照圖6,所述第一接收模塊211,包括:

      資源監(jiān)控和分析系統(tǒng)采集單元2111,用于實(shí)時采集服務(wù)調(diào)用日志和容器資源利用信息;

      判斷單元2112,用于判斷所述采集的服務(wù)調(diào)用日志和容器資源利用信息滿足系統(tǒng)預(yù)設(shè)預(yù)警條件后,在微服務(wù)調(diào)用鏈里定位原始故障點(diǎn);

      接收單元2113,用于實(shí)時接收資源監(jiān)控和分析系統(tǒng)發(fā)送的所述原始故障點(diǎn)的異常信息數(shù)據(jù)。

      進(jìn)一步的,參照圖7,所述判斷單元2112,包括:

      判斷子單元21121,用于基于服務(wù)器配置的預(yù)設(shè)預(yù)警條件閥值以及預(yù)設(shè)算法分析,判斷采集的HTTP和TCP/UDP類型的服務(wù)調(diào)用日志和容器資源利用信息中的容器CPU、內(nèi)存、存儲、IO和/或網(wǎng)絡(luò)的使用數(shù)據(jù),以及微服務(wù)的響應(yīng)時間、失敗率、QPS是否滿足系統(tǒng)預(yù)設(shè)預(yù)警條件;

      定位單元21122,用于在判斷子單元判斷所述采集的服務(wù)調(diào)用日志和容器資源利用信息滿足系統(tǒng)預(yù)設(shè)預(yù)警條件之一,則進(jìn)行故障傳導(dǎo)分析,在整個微服務(wù)調(diào)用鏈里定位原始故障點(diǎn)。

      進(jìn)一步的,所述系統(tǒng)預(yù)設(shè)預(yù)警條件包括但不限于高負(fù)荷、低使用率、異常波動或可用性不達(dá)標(biāo)中的一種或多種。

      進(jìn)一步的,參照圖8,所述觸發(fā)模塊22,包括:

      獲取單元221,用于根據(jù)預(yù)警數(shù)據(jù)中的IP和端口或服務(wù)ID從容器集群環(huán)境中獲取相關(guān)微服務(wù)屬性信息;

      第一觸發(fā)單元222,用于把預(yù)警數(shù)據(jù)交給規(guī)則引擎選出需要執(zhí)行動作的決策項(xiàng)集合,依據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,參照圖9,所述第一觸發(fā)單元222,包括:

      規(guī)則匹配單元2221,用于參照RETE算法,根據(jù)預(yù)警數(shù)據(jù)的類型進(jìn)行規(guī)則類型匹配,將每類中的預(yù)警數(shù)據(jù)根據(jù)屬性值進(jìn)行多級規(guī)則匹配,選出一個條件被優(yōu)先滿足的規(guī)則后,根據(jù)選定的規(guī)則從規(guī)則適配決策表中匹配決策項(xiàng)集合,通過匹配的決策項(xiàng)集合解決決策項(xiàng)集合中的沖突,形成可順序執(zhí)行決策項(xiàng);

      第一觸發(fā)子單元2222,用于根據(jù)決策項(xiàng)的調(diào)度機(jī)制調(diào)用容器集群的API完成容器伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,參照圖10,所述接收模塊21,包括:

      第二接收模塊212,用于接收第三方平臺按照接口調(diào)用協(xié)議定義的格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù)。

      進(jìn)一步的,參照圖11,所述觸發(fā)模塊22,包括:

      第二觸發(fā)單元223,用于調(diào)用任務(wù)執(zhí)行引擎生成計(jì)劃任務(wù),任務(wù)執(zhí)行引擎根據(jù)任務(wù)計(jì)劃數(shù)據(jù)定義,準(zhǔn)時調(diào)用容器集群的API觸發(fā)容器完成自動伸縮或故障調(diào)度轉(zhuǎn)移。

      進(jìn)一步的,參照圖12,所述第二接收模塊212,包括:

      第二接收單元2121,用于接收第三方平臺通過HTTP或HTTPS協(xié)議提供的接口通過同步調(diào)用或異步調(diào)用服務(wù)使用JSON格式提交的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),并在注冊成功回調(diào)地址后可實(shí)現(xiàn)消息推送。

      進(jìn)一步的,參照圖13,所述觸發(fā)模塊22,還包括:

      第一伸縮單元224,用于伸縮容器的CPU、內(nèi)存、存儲資源中的一種或多種;

      重啟單元225,用于重啟容器;

      第二伸縮單元226,用于基于預(yù)設(shè)時間間隔將容器逐一伸縮;

      第三伸縮單元227,用于基于預(yù)設(shè)時間間隔按照預(yù)設(shè)比例將容器逐步伸縮。

      由于本實(shí)施例二的系統(tǒng)所實(shí)現(xiàn)的處理及功能基本相應(yīng)于前述圖1-3所示的方法的實(shí)施例、原理和實(shí)例,故本實(shí)施例的描述中未詳盡之處,可以參見前述實(shí)施例中的相關(guān)說明,在此不做贅述。

      本發(fā)明實(shí)施例二通過接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù);和/或第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移的技術(shù)方案,一旦微服務(wù)出現(xiàn)異常,加快了服務(wù)伸縮的響應(yīng)時間和處理時間;解放了運(yùn)維人員處理的繁重工作量;有效控制了人為處理服務(wù)伸縮帶來的不可控風(fēng)險(xiǎn);降低了企業(yè)的運(yùn)維成本;有效加快企業(yè)推廣系統(tǒng)容器化微服務(wù)改造;解決了容器收縮策略的限制;擴(kuò)充了容器化微服務(wù)伸縮的多樣性和機(jī)制;通過對整個調(diào)用鏈的故障傳導(dǎo)分析準(zhǔn)確的定位了真實(shí)的故障點(diǎn),做到了對容器化微服務(wù)的精確伸縮。

      實(shí)施例三

      參照圖14,圖14示出了本發(fā)明提供的一種容器化微服務(wù)自動伸縮及遷移調(diào)度的設(shè)備300,包括前述實(shí)施例二中的任一項(xiàng)所述的容器化微服務(wù)自動伸縮及遷移調(diào)度的系統(tǒng)200。

      本發(fā)明實(shí)施例三通過接收容器和/或微服務(wù)產(chǎn)生的經(jīng)故障定位后的預(yù)警數(shù)據(jù);和/或第三方平臺發(fā)送的攜帶容器和/或微服務(wù)自動伸縮任務(wù)計(jì)劃數(shù)據(jù),觸發(fā)容器自動伸縮或故障調(diào)度轉(zhuǎn)移的技術(shù)方案,一旦微服務(wù)出現(xiàn)異常,加快了服務(wù)伸縮的響應(yīng)時間和處理時間;解放了運(yùn)維人員處理的繁重工作量;有效控制了人為處理服務(wù)伸縮帶來的不可控風(fēng)險(xiǎn);降低了企業(yè)的運(yùn)維成本;有效加快企業(yè)推廣系統(tǒng)容器化微服務(wù)改造;解決了容器收縮策略的限制;擴(kuò)充了容器化微服務(wù)伸縮的多樣性和機(jī)制;通過對整個調(diào)用鏈的故障傳導(dǎo)分析準(zhǔn)確的定位了真實(shí)的故障點(diǎn),做到了對容器化微服務(wù)的精確伸縮。

      上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

      需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。

      在上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

      在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的裝置,可通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。

      所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

      另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

      需要指出,根據(jù)實(shí)施的需要,可將本申請中描述的各個步驟/部件拆分為更多步驟/部件,也可將兩個或多個步驟/部件或者步驟/部件的部分操作組合成新的步驟/部件,以實(shí)現(xiàn)本發(fā)明的目的。

      上述根據(jù)本發(fā)明的方法可在硬件、固件中實(shí)現(xiàn),或者被實(shí)現(xiàn)為可存儲在記錄介質(zhì)(諸如CD ROM、RAM、軟盤、硬盤或磁光盤)中的軟件或計(jì)算機(jī)代碼,或者被實(shí)現(xiàn)通過網(wǎng)絡(luò)下載的原始存儲在遠(yuǎn)程記錄介質(zhì)或非暫時機(jī)器可讀介質(zhì)中并將被存儲在本地記錄介質(zhì)中的計(jì)算機(jī)代碼,從而在此描述的方法可被存儲在使用通用計(jì)算機(jī)、專用處理器或者可編程或?qū)S糜布?諸如ASIC或FPGA)的記錄介質(zhì)上的這樣的軟件處理??梢岳斫?,計(jì)算機(jī)、處理器、微處理器控制器或可編程硬件包括可存儲或接收軟件或計(jì)算機(jī)代碼的存儲組件(例如,RAM、ROM、閃存等),當(dāng)所述軟件或計(jì)算機(jī)代碼被計(jì)算機(jī)、處理器或硬件訪問且執(zhí)行時,實(shí)現(xiàn)在此描述的處理方法。此外,當(dāng)通用計(jì)算機(jī)訪問用于實(shí)現(xiàn)在此示出的處理的代碼時,代碼的執(zhí)行將通用計(jì)算機(jī)轉(zhuǎn)換為用于執(zhí)行在此示出的處理的專用計(jì)算機(jī)。

      以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1