應(yīng)用發(fā)布方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,特別涉及一種基于集群的應(yīng)用發(fā)布方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,應(yīng)用需要處理的信息日益膨脹。因此,應(yīng)用在發(fā)布 時(shí)通常發(fā)布在一個(gè)集群中,并行處理信息,以提高信息的吞吐量。同時(shí),應(yīng)用版本的更迭日 益加快,需要更加健全的應(yīng)用發(fā)布系統(tǒng)來保證每一次的發(fā)布能夠順利完成。目前的發(fā)布系 統(tǒng),通常會(huì)在發(fā)布前進(jìn)行應(yīng)用編譯,監(jiān)測待發(fā)布應(yīng)用是否存在問題。如果待發(fā)布應(yīng)用不存在 問題,發(fā)布系統(tǒng)會(huì)將新代碼發(fā)布到集群的每一臺(tái)機(jī)器上。這樣的發(fā)布系統(tǒng)存在一個(gè)不可避 免的問題,即一旦新的版本存在未被發(fā)現(xiàn)的問題,該問題有可能會(huì)在全部發(fā)布完成后集中 爆發(fā)出來,對(duì)整個(gè)系統(tǒng)產(chǎn)生影響,造成嚴(yán)重的后果,并且在后續(xù)處理中需要對(duì)每一臺(tái)機(jī)器進(jìn) 行版本回滾,導(dǎo)致修復(fù)系統(tǒng)時(shí)間延長,無法有效地控制損失。因此,提高發(fā)布系統(tǒng)的安全性 具有非常重要的意義。目前在發(fā)布系統(tǒng)中,這一方面的技術(shù)比較欠缺。往往一次失敗的版 本發(fā)布會(huì)對(duì)整個(gè)公司業(yè)務(wù)造成嚴(yán)重的影響,而且會(huì)花費(fèi)大量的人力來處理該緊急事件,造 成嚴(yán)重的經(jīng)濟(jì)損失。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中由于應(yīng)用在被發(fā)布到集群中的 所有機(jī)器后出現(xiàn)問題,導(dǎo)致整個(gè)系統(tǒng)產(chǎn)生影響以及后續(xù)修復(fù)系統(tǒng)時(shí)間長等的缺陷,提供一 種實(shí)時(shí)監(jiān)測應(yīng)用運(yùn)行狀態(tài),并在監(jiān)測到問題時(shí)停止發(fā)布的應(yīng)用發(fā)布方法及系統(tǒng)。
[0004] 本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:
[0005] 一種應(yīng)用發(fā)布方法,該應(yīng)用發(fā)布方法用于包含N臺(tái)機(jī)器的第一集群,其特點(diǎn)在于, 該應(yīng)用發(fā)布方法包括一更新方法和一監(jiān)測方法,
[0006] 該更新方法包括以下步驟,設(shè)M的初始值為1 :
[0007] Sn、更新該第一集群內(nèi)第M~M+P臺(tái)機(jī)器的代碼;
[0008] S12、將M賦值為M+P+1 ;
[0009] S13、判斷M+P是否小于N,若是,則進(jìn)入步驟Sn,若否,則進(jìn)入步驟S14;
[0010] S14、更新該第一集群內(nèi)第M~N臺(tái)機(jī)器的代碼;
[0011] 其中,P為整數(shù),且N彡 2,0 彡P(guān)< (N-M-l)/2 ;
[0012] 該監(jiān)測方法包括以下步驟:
[0013] S21、監(jiān)測該第一集群內(nèi)已更新代碼的機(jī)器中出現(xiàn)的錯(cuò)誤量X1(l和待更新代碼的機(jī) 器中出現(xiàn)的錯(cuò)誤量Y1(l;
[0014] S22、判斷X1(l/Y1(l是否小于或等于第一預(yù)設(shè)閾值,若是,則進(jìn)入步驟S21,若否,則進(jìn)入 步驟S23;
[0015] S23、結(jié)束該更新方法和該監(jiān)測方法的流程,并控制該第一集群內(nèi)已更新代碼的機(jī) 器進(jìn)行代碼回滾。
[0016] 本方案中,該更新方法和該監(jiān)測方法是并行執(zhí)行的,該監(jiān)測方法用于實(shí)時(shí)監(jiān)測第 一集群內(nèi)的機(jī)器出現(xiàn)的錯(cuò)誤量,并在錯(cuò)誤率X1(l/Y1(l大于第一預(yù)設(shè)閾值時(shí)結(jié)束該應(yīng)用發(fā)布方 法的流程,包括結(jié)束該更新方法和該監(jiān)測方法的流程,即停止發(fā)布。此時(shí)應(yīng)用發(fā)布失敗,為 了保證系統(tǒng)的正常運(yùn)行,控制已更新代碼的機(jī)器進(jìn)行代碼回滾,即將已更新代碼的機(jī)器中 的代碼回滾到更新之前的版本。
[0017] 另外,在該更新方法的步驟s14執(zhí)行完畢后,該監(jiān)測方法停止執(zhí)行,此時(shí)應(yīng)用發(fā)布 成功。其中,該第一預(yù)設(shè)閾值的值可以根據(jù)系統(tǒng)能夠正常運(yùn)行的條件來設(shè)定,也可以根據(jù)用 戶的需要來設(shè)定。
[0018] 較佳地,該監(jiān)測方法還包括以下步驟:
[0019]s24、監(jiān)測該第一集群內(nèi)所有機(jī)器中出現(xiàn)的錯(cuò)誤量xn;
[0020] s25、判斷、是否小于或等于第二預(yù)設(shè)閾值,若是,則進(jìn)入步驟S24,若否,則進(jìn)入步 驟S23;
[0021] 其中,該監(jiān)測方法的步驟S24和步驟S25在該更新方法的步驟S14之后執(zhí)行。
[0022] 本方案中,當(dāng)該更新方法的步驟S14執(zhí)行完畢,即第一集群內(nèi)的所有機(jī)器的代碼更 新完畢時(shí),監(jiān)測該第一集群內(nèi)所有機(jī)器是否能在一時(shí)間段內(nèi)穩(wěn)定運(yùn)行,即監(jiān)測在該時(shí)間段 內(nèi)該第一集群內(nèi)所有機(jī)器中出現(xiàn)的錯(cuò)誤量,若該錯(cuò)誤量大于第二預(yù)設(shè)閾值,則停止發(fā)布。此 時(shí)應(yīng)用發(fā)布失敗,為了保證系統(tǒng)的正常運(yùn)行,控制已更新代碼的機(jī)器進(jìn)行代碼回滾。另外, 當(dāng)?shù)谝患簝?nèi)的所有機(jī)器的代碼更新完畢時(shí),若在該時(shí)間段內(nèi)該錯(cuò)誤量小于或等于第二預(yù) 設(shè)閾值,即該第一集群能穩(wěn)定運(yùn)行,則應(yīng)用發(fā)布成功。其中,該時(shí)間段和該第二預(yù)設(shè)閾值的 值可以根據(jù)系統(tǒng)能夠正常運(yùn)行的條件來設(shè)定,也可以根據(jù)用戶的需要來設(shè)定。值得注意的 是,該監(jiān)測方法的步驟S24~S25并非是在該監(jiān)測方法的步驟S21~S23之后順序執(zhí)行的,而 是在該更新方法的步驟s14之后執(zhí)行。
[0023] 較佳地,將該監(jiān)測方法的步驟S21替換為步驟S21',步驟S22替換為步驟S22',步驟 s24替換為步驟S24',步驟S25替換為步驟S25',
[0024]S21'、監(jiān)測該第一集群內(nèi)已更新代碼的機(jī)器中出現(xiàn)的錯(cuò)誤量X1(l和待更新代碼的機(jī) 器中出現(xiàn)的錯(cuò)誤量Y1(l,并監(jiān)測與該第一集群存在關(guān)聯(lián)的第二集群內(nèi)的所有機(jī)器在第一時(shí)間 段內(nèi)出現(xiàn)的錯(cuò)誤量x2(l和在上一第一時(shí)間段內(nèi)出現(xiàn)的錯(cuò)誤量Y2(|;
[0025]S22'、判斷X1(l/Y1(l是否小于或等于第一預(yù)設(shè)閾值,且X2(I/Y2(I是否小于或等于第三預(yù) 設(shè)閾值,若是,則進(jìn)入步驟S21 ',若否,則進(jìn)入步驟S23;
[0026]S24'、監(jiān)測該第一集群內(nèi)所有機(jī)器中出現(xiàn)的錯(cuò)誤量Xn,以及該第二集群內(nèi)所有機(jī) 器在第一時(shí)間段內(nèi)出現(xiàn)的錯(cuò)誤量乂21和在上一第一時(shí)間段內(nèi)出現(xiàn)的錯(cuò)誤量Y21;
[0027]S25'、判斷、是否小于或等于第二預(yù)設(shè)閾值,且X21/Y21是否小于或等于第三預(yù)設(shè) 閾值,若是,則進(jìn)入步驟S24',若否,則進(jìn)入步驟S23。
[0028] 本方案中,在應(yīng)用發(fā)布的過程中,除了監(jiān)測該第一集群內(nèi)已更新代碼的機(jī)器中出 現(xiàn)的錯(cuò)誤量X1(l和待更新代碼的機(jī)器中出現(xiàn)的錯(cuò)誤量Y1(|,還需要監(jiān)測與該第一集群存在關(guān) 聯(lián)的第二集群內(nèi)機(jī)器的錯(cuò)誤量,具體地,監(jiān)測該第二集群內(nèi)的所有機(jī)器在第一時(shí)間段內(nèi)出 現(xiàn)的錯(cuò)誤量X2(l和在上一第一時(shí)間段內(nèi)出現(xiàn)的錯(cuò)誤量Y2(|。同樣地,在應(yīng)用發(fā)布的過程中除 了判斷該第一集群內(nèi)機(jī)器的錯(cuò)誤率X1(l/Y1(l,還需要判斷該第二集群內(nèi)機(jī)器的錯(cuò)誤率X2(i/Y2(i。
[0029]當(dāng)該第一集群內(nèi)所有機(jī)器的代碼更新完畢時(shí),監(jiān)測該第一集群內(nèi)所有機(jī)器是否能 在一段時(shí)間內(nèi)穩(wěn)定運(yùn)行,具體地,除了監(jiān)測在該段時(shí)間內(nèi)該第一集群內(nèi)機(jī)器的錯(cuò)誤量xn,還 需要監(jiān)測在該段時(shí)間內(nèi)該第二集群內(nèi)的所有機(jī)器在第一時(shí)間段內(nèi)出現(xiàn)的錯(cuò)誤量X21和在上 一第一時(shí)間段內(nèi)出現(xiàn)的錯(cuò)誤量Y21。同樣地,除了判斷該第一集群內(nèi)機(jī)器的錯(cuò)誤量xn,還需 要判斷該第二集群內(nèi)機(jī)器的錯(cuò)誤率x21/y21。
[0030] 其中,集群之間是否存在關(guān)聯(lián)是本領(lǐng)域的公知常識(shí),不再贅述,即本領(lǐng)域技術(shù)人員 很容易判斷該第二集群與該第一集群是否存在關(guān)聯(lián)。
[0031] 較佳地,設(shè)該第一集群包括i項(xiàng)指標(biāo),x1(l包括第1項(xiàng)指標(biāo)的錯(cuò)誤量X1(11~第i項(xiàng) 指標(biāo)的錯(cuò)誤量X1(li,Y1(l包括第1項(xiàng)指標(biāo)的錯(cuò)誤量¥1(11~第i項(xiàng)指標(biāo)的錯(cuò)誤量Y1(li,Xn包括第 1項(xiàng)指標(biāo)的錯(cuò)誤量xm~第i項(xiàng)指標(biāo)的錯(cuò)誤量Xm,或包括Xm~X⑴和
【主權(quán)項(xiàng)】
1. 一種應(yīng)用發(fā)布方法,該應(yīng)用發(fā)布方法用于包含N臺(tái)機(jī)器的第一集群,其特征在于,該 應(yīng)用發(fā)布方法包括一更新方法和一監(jiān)測方法, 該更新方法包括以下步驟,設(shè)M的初始值為1 : Sn、更新該第一集群內(nèi)第M~M+P臺(tái)機(jī)器的代碼; 512、 將M賦值為M+P+1 ; 513、 判斷M+P是否小