本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種在線應(yīng)用快速回滾的方法及裝置。
背景技術(shù):
目前有很多javawebapp應(yīng)用在升級的時候,都會牽涉到流量遷移和應(yīng)用回滾的問題,目前的做法基本上都是遷移流量到安裝有舊版本應(yīng)用的非升級機器,升級當(dāng)前機器,然后跑自動測試,在自動測試通過后,遷移回流量。如果需要回滾時,則需要將非升級機器進行冷啟動,從而導(dǎo)致回滾時間較長。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種在線應(yīng)用快速回滾的方法及裝置,旨在縮短回滾時間。
為實現(xiàn)上述目的,本發(fā)明提供的一種在線應(yīng)用快速回滾的方法,所述在線應(yīng)用快速回滾的方法包括以下步驟:
對待升級的更新版本應(yīng)用配置第二端口,所述第二端口用于區(qū)分于舊版本應(yīng)用的第一端口;
當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并將應(yīng)用流量切換至所述第二端口;
當(dāng)接收到回滾請求時,將所述應(yīng)用流量切換至所述第一端口。
優(yōu)選地,所述當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并將應(yīng)用流量切換至所述第二端口的步驟之后還包括:
當(dāng)接收到所述舊版本應(yīng)用的下線請求時,關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù)。
優(yōu)選地,所述當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并將應(yīng)用流量切換至所述第二端口的步驟之后還包括:
在接收到所述更新版本應(yīng)用的發(fā)布請求之后的預(yù)設(shè)時間段內(nèi)未接收到所述回滾請求時,關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù)。
優(yōu)選地,所述對待升級的更新版本應(yīng)用配置第二端口包括:
獲得所述第二端口的配置文件;
在web容器中配置所述更新版本應(yīng)用使用第二端口的配置文件。
此外,為實現(xiàn)上述目的,本發(fā)明還提供一種在線應(yīng)用快速回滾的裝置,所述在線應(yīng)用快速回滾的裝置包括:配置模塊、控制模塊和反向代理模塊;
所述配置模塊,用于對待升級的更新版本應(yīng)用配置第二端口,所述第二端口用于區(qū)分于舊版本應(yīng)用的第一端口;
所述控制模塊,用于當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并觸發(fā)所述反向代理模塊將應(yīng)用流量切換至所述第二端口;
所述反向代理模塊,用于當(dāng)接收到回滾請求時,將所述應(yīng)用流量切換至所述第一端口。
優(yōu)選地,所在線應(yīng)用快速回滾的裝置還包括:
第一處理模塊,用于當(dāng)接收到所述舊版本應(yīng)用的下線請求時,關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù)。
優(yōu)選地,所在線應(yīng)用快速回滾的裝置還包括:
第二處理模塊,用于在接收到所述更新版本應(yīng)用的發(fā)布請求之后的預(yù)設(shè)時間段內(nèi)未接收到所述回滾請求時,關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù)。
優(yōu)選地,所述配置模塊具體用于獲得所述第二端口的配置文件,以及,在web容器中配置所述更新版本應(yīng)用使用第二端口的配置文件。
本發(fā)明實施例中,對待升級的更新版本應(yīng)用配置第二端口該第二端口用以區(qū)分于舊版本應(yīng)用的第一端口;當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并將應(yīng)用流量切換至所述第二端口;當(dāng)接收到回滾請求時,將所述應(yīng)用流量切換至第一端口。由于在新版本應(yīng)用發(fā)布時,設(shè)置兩個端口,提供分別相應(yīng)于舊版本應(yīng)用和更新版本應(yīng)用的兩個服務(wù),在需要進行回滾操作時,只需要進行流量切換操作即可,因此縮短了回滾時間。
附圖說明
圖1為本發(fā)明在線應(yīng)用快速回滾的方法第一實施例的流程示意圖;
圖2為本發(fā)明在線應(yīng)用快速回滾的方法一實施例中反向代理模塊進行應(yīng)用流量切換示例圖;
圖3為本發(fā)明在線應(yīng)用快速回滾的方法第二實施例的流程示意圖;
圖4為本發(fā)明在線應(yīng)用快速回滾的方法第三實施例的流程示意圖;
圖5為本發(fā)明在線應(yīng)用快速回滾的裝置第一實施例的功能模塊示意圖;
圖6為本發(fā)明在線應(yīng)用快速回滾的裝置第二實施例的功能模塊示意圖;
圖7為本發(fā)明在線應(yīng)用快速回滾的裝置第三實施例的功能模塊示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供一種在線應(yīng)用快速回滾的方法,參照圖1和圖2,在一實施例中,該在線應(yīng)用快速回滾的方法可以包括:
步驟s10,對待升級的更新版本應(yīng)用配置第二端口;
其中,所述第二端口用于區(qū)分于舊版本應(yīng)用的第一端口。
步驟s20,當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并將應(yīng)用流量切換至所述第二端口;
步驟s30,當(dāng)接收到回滾請求時,將所述應(yīng)用流量切換至所述第一端口。
本發(fā)明實施例提供的在線應(yīng)用快速回滾的方法主要應(yīng)用在服務(wù)器中,用于對服務(wù)器中應(yīng)用進行更新管理。
具體地,上述應(yīng)用是指webapp(基于web的應(yīng)用)。上述第一端口用于傳輸舊版本應(yīng)用的應(yīng)用流量,即舊版本應(yīng)用提供服務(wù)時,對外服務(wù)的端口;上述第二端口用于傳輸更新版本應(yīng)用的應(yīng)用流量,即更新版本應(yīng)用提供服務(wù)時,對外服務(wù)的端口。
本實施例中,上述步驟s10的步驟可以包括獲得第二端口的配置文件;以及,在web容器中配置所述更新版本應(yīng)用使用第二端口的配置文件。
應(yīng)當(dāng)說明的是,本實施例中,web容器配置有兩個webapp的配置文件,其包括舊版應(yīng)用的配置文件和更新版本應(yīng)用的配置文件。其中,舊版本應(yīng)用的配置文件為舊版本應(yīng)用配置使用第一端口對外提供服務(wù),更新版本應(yīng)用的配置文件為更新版本應(yīng)用配置使用第二端口對外提供服務(wù)。
在web容器中,配置兩個webapp的配置文件,端口分別是11001(即第一端口)和11002(即第二端口),目前第一端口11001因為是線上版本,所以正在使用。當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,需要新啟動更新版本應(yīng)用對應(yīng)的第二端口1002,從而使得同時啟動舊版本應(yīng)用的服務(wù)和更新版本應(yīng)用的服務(wù)。從而使得線上同時存在http://x.x.x.x:11001/和http://x.x.x.x:11002兩個服務(wù)。
由于發(fā)布更新版本應(yīng)用,需要使用更新版本應(yīng)用對外提供服務(wù),從而可以由服務(wù)器中的反向代理模塊將應(yīng)用流量的端口從第一端口切換到第二端口(即如圖2所示,從a狀態(tài)切換至b狀態(tài))。具體的,可以修改nginx的upstream,從而將應(yīng)用流量從http://x.x.x.x:11001/切換到http://x.x.x.x:11002;由更新版本應(yīng)用對外提供服務(wù),在更新版本應(yīng)用對外提供服務(wù)的同時,控制舊版本應(yīng)用繼續(xù)存活,以防止更新版本應(yīng)用需要進行回滾。
具體地,各客戶端可以根據(jù)更新版本應(yīng)用的使用情況進行問題反饋,然后根據(jù)服務(wù)器接收到的反饋問題,確定是否需要進行回滾操作。例如,當(dāng)更新版本應(yīng)用提供的服務(wù)出錯率大于預(yù)設(shè)值時,則確定需要進行回滾操作。此外還可以在服務(wù)器中設(shè)置錯誤檢測,以檢測更新版本應(yīng)用的運行狀態(tài),當(dāng)運行狀態(tài)較差時,可以自動提示需要進行回滾操作。
當(dāng)確定需要進行回滾時,可以控制進行回滾。例如,可以提供相應(yīng)的操作界面供用戶輸入回滾請求,當(dāng)接受到用戶輸入的回滾請求時,將應(yīng)用流量切回至第一端口,即將應(yīng)用流量切換到http://x.x.x.x:11001/(即如圖2所示,從b狀態(tài)切換至a狀態(tài));從而實現(xiàn)版本的回滾。
在版本回滾后,服務(wù)器的維護人員可以對更新版本應(yīng)用進行問題修復(fù),在問題修復(fù)后,可以繼續(xù)發(fā)布更新版本應(yīng)用即可。
本發(fā)明實施例中,對待升級的更新版本應(yīng)用配置區(qū)分于舊版本應(yīng)用的第一端口的第二端口;當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并將應(yīng)用流量切換至所述第二端口;當(dāng)接收到回滾請求時,將所述應(yīng)用流量切換至舊版本應(yīng)用的第一端口。由于在新版本應(yīng)用發(fā)布時,設(shè)置兩個端口,提供兩個服務(wù),在需要進行回滾操作時,只需要進行流量切換操作即可,因此縮短了回滾時間。
進一步地,參照圖3,提供了本發(fā)明在線應(yīng)用快速回滾的方法第二實施例,在本發(fā)明在線應(yīng)用快速回滾的方法第二實施例中,上述步驟s20之后可以還包括:
步驟s40,判斷是否接收到舊版本應(yīng)用的下線請求;若是,則執(zhí)行步驟s50,若否,則執(zhí)行步驟s30;
步驟s50,關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù)。
本實施例中,上述舊版本應(yīng)用的下線請求可以由服務(wù)器的維護人員進行主動輸入。具體地,當(dāng)服務(wù)器的維護人員在進行更新版本應(yīng)用發(fā)布后,經(jīng)過一段時間的試用過渡期未發(fā)現(xiàn)存在問題,此時可以在服務(wù)器上進行操作,以輸入舊版本應(yīng)用的下線請求。當(dāng)服務(wù)器接收到用戶輸入的舊版本應(yīng)用的下線請求時,則會關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù),以降低服務(wù)器內(nèi)存占用率,提高服務(wù)器的運行速度。
進一步地,參照圖4,提供了本發(fā)明在線應(yīng)用快速回滾的方法第三實施例,在第三實施例中,上述步驟s20之后可以還包括:
步驟s60,判斷在接收到所述更新版本應(yīng)用的發(fā)布請求之后的預(yù)設(shè)時間段內(nèi)是否接收到回滾請求;若是,則執(zhí)行步驟s70,若否,則執(zhí)行步驟s30;
步驟s70,關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù)。
本實施例中,當(dāng)服務(wù)器的維護人員在進行更新版本應(yīng)用發(fā)布后,經(jīng)過一段時間的試用過渡期未發(fā)現(xiàn)存在問題,則在上述預(yù)設(shè)時間段內(nèi)將不會對服務(wù)器進行操作。此時可以由服務(wù)器自動關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù),從而避免維護人員忘記對舊版本應(yīng)用進行下線操作,導(dǎo)致舊版本應(yīng)用一直處于開啟狀態(tài),影響服務(wù)器的性能,因此本實施例提高了服務(wù)器的智能化程度。
本發(fā)明還提供一種在線應(yīng)用快速回滾的裝置,參照圖5,在一實施例中,本發(fā)明提供的在線應(yīng)用快速回滾的裝置包括:配置模塊10、控制模塊20和反向代理模塊30;
所述配置模塊10,用于對待升級的更新版本應(yīng)用配置第二端口;
其中,所述第二端口用于區(qū)分于舊版本應(yīng)用的第一端口;
所述控制模塊20,用于當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并觸發(fā)所述反向代理模塊30將應(yīng)用流量切換至所述第二端口;
所述反向代理模塊30,用于當(dāng)接收到回滾請求時,將所述應(yīng)用流量切換至舊版本應(yīng)用的第一端口。
本發(fā)明實施例提供的在線應(yīng)用快速回滾的裝置主要應(yīng)用在服務(wù)器中,用于對服務(wù)器中應(yīng)用進行更新管理。
具體地,上述應(yīng)用是指webapp(基于web的應(yīng)用)。上述第一端口用于傳輸舊版本應(yīng)用的應(yīng)用流量,即舊版本應(yīng)用提供服務(wù)時,對外服務(wù)的端口;上述第二端口用于傳輸更新版本應(yīng)用的應(yīng)用流量,即更新版本應(yīng)用提供服務(wù)時,對外服務(wù)的端口。
本實施例中,上述配置模塊10具體用于獲得所述第二端口的配置文件;以及,在web容器中配置所述更新版本應(yīng)用使用第二端口的配置文件。
應(yīng)當(dāng)說明的是,本實施例中,web容器配置有兩個webapp的配置文件,其包括舊版應(yīng)用的配置文件和更新版本應(yīng)用的配置文件。其中,舊版本應(yīng)用的配置文件為舊版本應(yīng)用配置使用第一端口對外提供服務(wù),更新版本應(yīng)用的配置文件為更新版本應(yīng)用配置使用第二端口對外提供服務(wù)。
在web容器中,配置兩個webapp的配置文件,端口分別是11001(即第一端口)和11002(即第二端口),目前第一端口11001因為是線上版本,所以正在使用。當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,需要新啟動更新版本應(yīng)用對應(yīng)的第二端口1002,從而使得同時啟動舊版本應(yīng)用的服務(wù)和更新版本應(yīng)用的服務(wù)。從而使得線上同時存在http://x.x.x.x:11001/和http://x.x.x.x:11002兩個服務(wù)。
由于發(fā)布更新版本應(yīng)用,需要使用更新版本應(yīng)用對外提供服務(wù),從而可以由服務(wù)器中的反向代理模塊將應(yīng)用流量的端口從第一端口切換到第二端口(即如圖2所示,從a狀態(tài)切換至b狀態(tài))。具體的,可以修改nginx的upstream,從而將應(yīng)用流量從http://x.x.x.x:11001/切換到http://x.x.x.x:11002;由更新版本應(yīng)用對外提供服務(wù),在更新版本應(yīng)用對外提供服務(wù)的同時,控制舊版本應(yīng)用繼續(xù)存活,以防止更新版本應(yīng)用需要進行回滾。
具體地,各客戶端可以根據(jù)更新版本應(yīng)用的使用情況進行問題反饋,然后根據(jù)服務(wù)器接收到的反饋問題,確定是否需要進行回滾操作。例如,當(dāng)更新版本應(yīng)用提供的服務(wù)出錯率大于預(yù)設(shè)值時,則確定需要進行回滾操作。此外還可以在服務(wù)器中設(shè)置錯誤檢測,以檢測更新版本應(yīng)用的運行狀態(tài),當(dāng)運行狀態(tài)較差時,可以自動提示需要進行回滾操作。
當(dāng)確定需要進行回滾時,可以控制進行回滾。例如,可以提供相應(yīng)的操作界面供用戶輸入回滾請求,當(dāng)接受到用戶輸入的回滾請求時,將應(yīng)用流量切回至第一端口,即將應(yīng)用流量切換到http://x.x.x.x:11001/(即如圖2所示,從b狀態(tài)切換至a狀態(tài));從而實現(xiàn)版本的回滾。
在版本回滾后,服務(wù)器的維護人員可以對更新版本應(yīng)用進行問題修復(fù),在問題修復(fù)后,可以繼續(xù)發(fā)布更新版本應(yīng)用即可。
本發(fā)明實施例中,對待升級的更新版本應(yīng)用配置第二端口;當(dāng)接收到所述更新版本應(yīng)用的發(fā)布請求時,控制所述更新版本應(yīng)用和舊版本應(yīng)用開啟服務(wù),并將應(yīng)用流量切換至所述第二端口;當(dāng)接收到回滾請求時,將所述應(yīng)用流量切換至舊版本應(yīng)用的第一端口。由于在新版本應(yīng)用發(fā)布時,設(shè)置兩個端口,提供兩個服務(wù),在需要進行回滾操作時,只需要進行流量切換操作即可,因此縮短了回滾時間。
進一步地,參照圖6,提供了本發(fā)明在線應(yīng)用快速回滾的裝置第二實施例,在本發(fā)明在線應(yīng)用快速回滾的裝置第二實施例中,上述在線應(yīng)用快速回滾的裝置還包括:
第一處理模塊40,用于當(dāng)接收到所述舊版本應(yīng)用的下線請求時,關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù)。
本實施例中,上述舊版本應(yīng)用的下線請求可以由服務(wù)器的維護人員進行主動輸入。具體地,當(dāng)服務(wù)器的維護人員在進行更新版本應(yīng)用發(fā)布后,經(jīng)過一段時間的試用過渡期未發(fā)現(xiàn)存在問題,此時可以在服務(wù)器上進行操作,以輸入舊版本應(yīng)用的下線請求。當(dāng)服務(wù)器接收到用戶輸入的舊版本應(yīng)用的下線請求時,則會關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù),以降低服務(wù)器內(nèi)存占用率,提高服務(wù)器的運行速度。
進一步地,參照圖7,提供了本發(fā)明在線應(yīng)用快速回滾的裝置第三實施例,在本發(fā)明在線應(yīng)用快速回滾的裝置第三實施例中,在線應(yīng)用快速回滾的裝置還包括:
第二處理模塊50,用于在接收到所述更新版本應(yīng)用的發(fā)布請求之后的預(yù)設(shè)時間段內(nèi)未接收到回滾請求時,關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù)。
本實施例中,當(dāng)服務(wù)器的維護人員在進行更新版本應(yīng)用發(fā)布后,經(jīng)過一段時間的試用過渡期未發(fā)現(xiàn)存在問題,則在上述預(yù)設(shè)時間段內(nèi)將不會對服務(wù)器進行操作。此時可以由服務(wù)器自動關(guān)閉所述舊版本應(yīng)用對應(yīng)的服務(wù),從而避免維護人員忘記對舊版本應(yīng)用進行下線操作,導(dǎo)致舊版本應(yīng)用一直處于開啟狀態(tài),影響服務(wù)器的性能,因此本實施例提高了服務(wù)器的智能化程度。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。