国产精品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īng)用服務(wù)更新方法及裝置與流程

      文檔序號(hào):11234813閱讀:346來(lái)源:國(guó)知局
      應(yīng)用服務(wù)更新方法及裝置與流程

      本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種應(yīng)用服務(wù)更新方法及裝置。



      背景技術(shù):

      隨著互聯(lián)網(wǎng)的迅速發(fā)展,用戶需求越來(lái)越復(fù)雜,對(duì)公司技術(shù)架構(gòu)設(shè)計(jì)要求就越來(lái)越高了,應(yīng)用數(shù)量也隨之倍增,這個(gè)時(shí)候傳統(tǒng)運(yùn)維手工發(fā)布模式就很難應(yīng)對(duì)這一變化了。

      單個(gè)應(yīng)用發(fā)布過(guò)程是比較簡(jiǎn)單的,大致可以分為三個(gè)步驟:停止服務(wù)、替換應(yīng)用包、啟動(dòng)服務(wù)。在應(yīng)用數(shù)量比較小的場(chǎng)景下,每次發(fā)布都由運(yùn)維人員手工完成,工作量相對(duì)較小。例如,傳化物流初期應(yīng)用數(shù)量只有幾十個(gè),但一年之后應(yīng)用數(shù)量直接上升至400多個(gè),而且每個(gè)發(fā)布日80%的應(yīng)用都會(huì)發(fā)布更新,如此大的更新發(fā)布頻率和發(fā)布量,對(duì)運(yùn)維人員來(lái)說(shuō),如果還是采用傳統(tǒng)的手工更新發(fā)布模式,只能是人肉戰(zhàn)術(shù),而且效率極低。此時(shí),作為運(yùn)維人員就迫切希望將這些工作自動(dòng)化,解放雙手。



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

      有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種應(yīng)用服務(wù)更新方法,以改善上述的問(wèn)題。

      本發(fā)明實(shí)施例的另一目的還在于提供一種應(yīng)用服務(wù)更新裝置,以改善上述問(wèn)題。

      本發(fā)明實(shí)施例提供了一種應(yīng)用更新方法,應(yīng)用于服務(wù)器集群,所述服務(wù)器集群包括前端服務(wù)器及至少一個(gè)后端服務(wù)器,所述方法包括:接收應(yīng)用服務(wù)更新指令;依據(jù)所述更新指令,對(duì)未標(biāo)記已更新標(biāo)識(shí)的后端服務(wù)器添加待更新標(biāo)識(shí);更新存儲(chǔ)在標(biāo)記有所述待更新標(biāo)識(shí)的后端服務(wù)器的應(yīng)用服務(wù)程序;對(duì)存儲(chǔ)有更新后的應(yīng)用服務(wù)程序的后端服務(wù)器添加已更新標(biāo)識(shí)。

      進(jìn)一步地,所述更新存儲(chǔ)在標(biāo)記有所述待更新標(biāo)識(shí)的后端服務(wù)器的應(yīng)用服務(wù)程序的步驟包括:下線存儲(chǔ)在標(biāo)記有所述待更新標(biāo)識(shí)的后端服務(wù)器的應(yīng)用服務(wù)程序;獲取存儲(chǔ)在版本管理服務(wù)器的待更新應(yīng)用服務(wù)程序代碼包;替換所述應(yīng)用服務(wù)程序代碼包為待更新應(yīng)用服務(wù)程序代碼包。

      進(jìn)一步地,所述替換應(yīng)所述用服務(wù)程序代碼包為待更新應(yīng)用服務(wù)程序代碼包之前,還包括:驗(yàn)證發(fā)布信息,所述驗(yàn)證發(fā)布信息包括:驗(yàn)證發(fā)布者的身份;驗(yàn)證發(fā)布次數(shù);驗(yàn)證所述代碼包的正確性;當(dāng)驗(yàn)證所述發(fā)布者的身份、所述發(fā)布次數(shù)以及所述代碼包的正確性均通過(guò)后替換應(yīng)所述用服務(wù)程序代碼包為待更新應(yīng)用服務(wù)程序代碼包。

      進(jìn)一步地,所述驗(yàn)證所述代碼包的正確性通過(guò)后,在所述更新存儲(chǔ)在標(biāo)記有所述待更新標(biāo)識(shí)的后端服務(wù)器的應(yīng)用服務(wù)程序之前,還包括:獲取所述待更新應(yīng)用服務(wù)程序的配置包;替換所述應(yīng)用服務(wù)程序的配置包為所述待更新應(yīng)用服務(wù)程序的配置包。

      進(jìn)一步地,所述方法在所述替換應(yīng)所述用服務(wù)程序代碼包為待更新應(yīng)用服務(wù)程序代碼包之后,還包括:加載上線所述更新后的應(yīng)用服務(wù)程序。

      本發(fā)明實(shí)施例提供了一種應(yīng)用更新裝置,應(yīng)用于服務(wù)器集群,所述服務(wù)器集群包括前端服務(wù)器及至少一個(gè)后端服務(wù)器,所述裝置包括:指令接收單元,用于接收應(yīng)用服務(wù)更新指令;待更新標(biāo)識(shí)添加單元,用于依據(jù)所述更新指令,對(duì)未標(biāo)記已更新標(biāo)識(shí)的后端服務(wù)器添加待更新標(biāo)識(shí);更新單元,用于更新存儲(chǔ)在標(biāo)記有所述待更新標(biāo)識(shí)的后端服務(wù)器的應(yīng)用服務(wù)程序;已更新標(biāo)識(shí)添加單元,用于對(duì)存儲(chǔ)有更新后的應(yīng)用服務(wù)程序的后端服務(wù)器添加已更新標(biāo)識(shí)。

      進(jìn)一步地,所述更新單元包括:服務(wù)下線子單元,用于下線存儲(chǔ)在標(biāo)記有所述待更新標(biāo)識(shí)的后端服務(wù)器的應(yīng)用服務(wù)程序;代碼獲取子單元,用于獲取存儲(chǔ)在版本管理服務(wù)器的待更新應(yīng)用服務(wù)程序代碼包;代碼替換子單元,用于替換應(yīng)用服務(wù)程序代碼包。

      進(jìn)一步地,所述裝置還包括驗(yàn)證單元,所述驗(yàn)證單元包括:身份驗(yàn)證子單元,驗(yàn)證發(fā)布者的身份;發(fā)布次數(shù)驗(yàn)證子單元,用于驗(yàn)證發(fā)布次數(shù);代碼包驗(yàn)證子單元,用于驗(yàn)證所述代碼包的完整性、正確性。

      進(jìn)一步地,所述更新單元還包括:配置獲取子單元,用于獲取所述待更新應(yīng)用服務(wù)程序的配置包;配置替換子單元,用于替換所述應(yīng)用服務(wù)程序的配置包為所述待更新應(yīng)用服務(wù)程序的配置包。

      進(jìn)一步地,所述裝置還包括服務(wù)加載單元,用于加載上線所述更新后的應(yīng)用服務(wù)程序。

      相對(duì)現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:

      本發(fā)明公開的一種應(yīng)用服務(wù)更新發(fā)布方法及裝置,應(yīng)用于一服務(wù)器集群,所述服務(wù)器集群包括前端服務(wù)器以及后端服務(wù)器,在其更新發(fā)布的過(guò)程中,各個(gè)后端服務(wù)器的更新串行進(jìn)行,逐一進(jìn)行應(yīng)用服務(wù)程序的更新,各后端服務(wù)器之間互不干擾,不會(huì)中斷提供的服務(wù),用戶不會(huì)感知到更新發(fā)布的過(guò)程,提升了用戶體驗(yàn),確保了信息的安全,并且適用于大規(guī)模的應(yīng)用更新上線場(chǎng)景。

      為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下。

      附圖說(shuō)明

      為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      圖1示出了本發(fā)明所提供的一種應(yīng)用服務(wù)更新裝置適用場(chǎng)景示意圖。

      圖2示出了本發(fā)明提供的應(yīng)用服務(wù)更新裝置適用的前端服務(wù)器示意圖。

      圖3示出了本發(fā)明提供的應(yīng)用服務(wù)更新裝置框圖。

      圖4示出了驗(yàn)證單元示意框圖。

      圖5示出了更新單元示意框圖。

      圖6示出了本發(fā)明提供的應(yīng)用服務(wù)更新方法流程圖。

      圖7所示出了本發(fā)明提供的步驟s103的子步驟圖。

      圖8示出了本發(fā)明提供的步驟s104的子步驟圖。

      圖標(biāo):10-應(yīng)用服務(wù)線上服務(wù)系統(tǒng);100-前端服務(wù)器;120-存儲(chǔ)器;130-存儲(chǔ)控制器;140-處理器;150-外設(shè)接口;200-應(yīng)用服務(wù)更新裝置;201-指令接收單元;202-驗(yàn)證單元;2011-身份驗(yàn)證子單元;2012-發(fā)布日驗(yàn)證子單元;2013-發(fā)布次數(shù)驗(yàn)證子單元;2014-代碼包驗(yàn)證子單元;203-待更新標(biāo)識(shí)添加單元;204-更新單元;2041-服務(wù)下線子單元;2042-代碼獲取子單元;2043-配置獲取子單元;2044-配置替換子單元;2045-代碼替換子單元;205-已更新標(biāo)識(shí)添加單元;206-服務(wù)加載單元;207-報(bào)警單元;300-后端服務(wù)器;400-用戶端。

      具體實(shí)施方式

      下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。

      在本發(fā)明的描述中,需要說(shuō)明的是,術(shù)語(yǔ)“上”、“下”、“左”、“右”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,或者是該發(fā)明產(chǎn)品使用時(shí)慣常擺放的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡(jiǎn)化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。

      在本發(fā)明的描述中,還需要說(shuō)明的是,除非另有明確的規(guī)定和限定,術(shù)語(yǔ)“設(shè)置”、“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過(guò)中間媒介間接相連,可以是兩個(gè)元件內(nèi)部的連通。

      在本發(fā)明的描述中,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。術(shù)語(yǔ)“水平”、“豎直”、“懸垂”等術(shù)語(yǔ)并不表示要求部件絕對(duì)水平或懸垂,而是可以稍微傾斜。如“水平”僅僅是指其方向相對(duì)“豎直”而言更加水平,并不是表示該結(jié)構(gòu)一定要完全水平,而是可以稍微傾斜。術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語(yǔ)在本發(fā)明中的具體含義。

      下面結(jié)合附圖,對(duì)本發(fā)明的一些實(shí)施方式作詳細(xì)說(shuō)明。在不沖突的情況下,下述的實(shí)施例及實(shí)施例中的特征可以相互組合。

      請(qǐng)參閱圖1,圖1示出了作為本實(shí)施例提供的應(yīng)用服務(wù)更新裝置200的應(yīng)用場(chǎng)景的應(yīng)用服務(wù)線上服務(wù)系統(tǒng)10。如圖1所示,應(yīng)用服務(wù)線上服務(wù)系統(tǒng)10包括用戶端400、服務(wù)器集群(圖未標(biāo)),服務(wù)器集群包括前端服務(wù)器100以及多臺(tái)后端服務(wù)器300,所述后端服務(wù)器300存儲(chǔ)有用于提供服務(wù)的應(yīng)用服務(wù)程序,用戶端400、前端服務(wù)器100及后端服務(wù)器300通過(guò)網(wǎng)絡(luò)連接,通過(guò)該網(wǎng)絡(luò),用戶端400與所述服務(wù)器集群進(jìn)行數(shù)據(jù)交互。于本發(fā)明實(shí)施例中,用戶端400中安裝有至少一個(gè)應(yīng)用程序(application,app),與前端服務(wù)器100相對(duì)應(yīng),為用戶提供服務(wù)。該前端服務(wù)器100可以是,但不限于,網(wǎng)絡(luò)服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、云端服務(wù)器等等。該用戶端400可以是,但不限于智能手機(jī)、個(gè)人電腦(personalcomputer,pc)、平板電腦、個(gè)人數(shù)字助理(personaldigitalassistant,pda)、移動(dòng)上網(wǎng)設(shè)備(mobileinternetdevice,mid)等。所述用戶端400的操作系統(tǒng)可以是,但不限于,安卓(android)系統(tǒng)、ios(iphoneoperatingsystem)系統(tǒng)、windowsphone系統(tǒng)、windows系統(tǒng)等。

      圖2示出了一種可應(yīng)用本發(fā)明實(shí)施例中的前端服務(wù)器100的結(jié)構(gòu)框圖,所述前端服務(wù)器100包括應(yīng)用服務(wù)更新裝置200、處理器140、存儲(chǔ)器120、存儲(chǔ)控制器130及外設(shè)接口150。

      所述存儲(chǔ)器120、存儲(chǔ)控制器130及處理器140,各元件相互之間直接或間接地電性連接,以實(shí)現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過(guò)一條或多條通訊總線或信號(hào)線實(shí)現(xiàn)電性連接。所述應(yīng)用服務(wù)更新裝置200包括至少一個(gè)可以軟件或固件(firmware)的形式存儲(chǔ)于所述存儲(chǔ)器120中或固化在所述前端服務(wù)器100的操作系統(tǒng)(operatingsystem,os)中的軟件功能模塊。所述處理器140用于執(zhí)行存儲(chǔ)器120中存儲(chǔ)的可執(zhí)行模塊,例如,所述應(yīng)用服務(wù)更新裝置200包括的軟件功能模塊或計(jì)算機(jī)程序。

      其中,存儲(chǔ)器120可以是,但不限于,隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram),只讀存儲(chǔ)器(readonlymemory,rom),可編程只讀存儲(chǔ)器(programmableread-onlymemory,prom),可擦除只讀存儲(chǔ)器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲(chǔ)器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存儲(chǔ)器120用于存儲(chǔ)程序,所述處理器140在接收到執(zhí)行指令后,執(zhí)行所述程序,前述本發(fā)明實(shí)施例任一實(shí)施例揭示的流過(guò)程定義的服務(wù)端所執(zhí)行的方法可以應(yīng)用于處理器140中,或者由處理器140實(shí)現(xiàn)。

      處理器140可能是一種集成電路芯片,具有信號(hào)的處理能力。上述的處理器140可以是通用處理器,包括中央處理器(centralprocessingunit,簡(jiǎn)稱cpu)、網(wǎng)絡(luò)處理器(networkprocessor,簡(jiǎn)稱np)等;還可以是數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫?shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器140也可以是任何常規(guī)的處理器140等。

      外設(shè)接口150將各種輸入/輸出裝置耦合至處理器140以及存儲(chǔ)器120。在一些實(shí)施例中,外設(shè)接口150、處理器140以及存儲(chǔ)控制器130可以在單個(gè)芯片中實(shí)現(xiàn)。在其他一些實(shí)例中,他們可以分別由獨(dú)立的芯片實(shí)現(xiàn)。

      可以理解,圖2所示的結(jié)構(gòu)僅為示意,前端服務(wù)器100還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。圖2中所示的各組件可以采用硬件、軟件或其組合實(shí)現(xiàn)。

      第一實(shí)施例

      請(qǐng)參閱圖3,圖3顯示了本實(shí)施例提供的一種應(yīng)用服務(wù)更新裝置200的結(jié)構(gòu)框圖。應(yīng)用服務(wù)更新裝置200包括指令接收單元201、驗(yàn)證單元202、待更新標(biāo)識(shí)添加單元203、更新單元204、已更新標(biāo)識(shí)添加單元205以及服務(wù)加載單元206。

      指令接收單元201用于接收管理員下達(dá)的更新應(yīng)用服務(wù)程序的指令,所述更新應(yīng)用服務(wù)程序的指令可以是用戶直接向所述前端服務(wù)器100下達(dá)的指令,也可以是管理員通過(guò)用戶端400向服務(wù)器下達(dá)的更新應(yīng)用服務(wù)程序的指令。所述指令可以包括:待更新應(yīng)用服務(wù)程序的存儲(chǔ)路徑信息,版本信息,以及待更新應(yīng)用服務(wù)程序的代碼包的地址信息等。

      驗(yàn)證單元202用于進(jìn)行管理員身份信息、應(yīng)用程序代碼包等信息的驗(yàn)證。驗(yàn)證單元202包括身份驗(yàn)證子單元2011、發(fā)布日驗(yàn)證子單元2012、發(fā)布次數(shù)驗(yàn)證子單元2013以及代碼包驗(yàn)證子單元2014等。

      請(qǐng)參閱圖4,身份驗(yàn)證子單元2011用于驗(yàn)證發(fā)布者的管理員身份,例如,可以通過(guò)賬號(hào)、密碼等方式對(duì)發(fā)布者進(jìn)行身份的驗(yàn)證,當(dāng)發(fā)布者無(wú)法通過(guò)身份驗(yàn)證時(shí),無(wú)法進(jìn)行后續(xù)的發(fā)布操作。

      發(fā)布日驗(yàn)證子單元2012、發(fā)布次數(shù)驗(yàn)證子單元2013分別用于驗(yàn)證應(yīng)用服務(wù)程序的更新發(fā)布日以及發(fā)布次數(shù),發(fā)布日驗(yàn)證子單元2012可預(yù)設(shè)可以發(fā)布更新應(yīng)用服務(wù)程序的日期,在管理員發(fā)布更新的時(shí)候通過(guò)讀取系統(tǒng)時(shí)間或獲取網(wǎng)絡(luò)時(shí)間來(lái)獲取當(dāng)前的發(fā)布日期,并將獲取到的發(fā)布如期與預(yù)設(shè)的發(fā)布更新應(yīng)用服務(wù)程序的日期進(jìn)行比對(duì),匹配則允許繼續(xù)的發(fā)布操作。通過(guò)固定的更新發(fā)布日期從而提高用戶體驗(yàn)。發(fā)布次數(shù)驗(yàn)證單元202用于驗(yàn)證在更新發(fā)布日的發(fā)布更新次數(shù),在發(fā)布日的發(fā)布更新的次數(shù)不能超過(guò)預(yù)設(shè)的次數(shù)(例如3次),否則不允許繼續(xù)后續(xù)的更新發(fā)布操作。

      代碼包驗(yàn)證子單元2014用于驗(yàn)證所述代碼包的完整性、正確性,代碼包驗(yàn)證子單元2014可以通過(guò)驗(yàn)證代碼包的名稱、大小、編號(hào)、md5碼等來(lái)驗(yàn)證所述代碼包是否為正確、完整的代碼包。

      上述的驗(yàn)證單元202適用于常規(guī)發(fā)布應(yīng)用服務(wù)程序更新,在本發(fā)明的其余實(shí)施例中,所述驗(yàn)證單元202還包括緊急發(fā)布驗(yàn)證子單元(圖未示),緊急發(fā)布驗(yàn)證子單元用于驗(yàn)證緊急發(fā)布,例如當(dāng)所述應(yīng)用服務(wù)程序出現(xiàn)重大運(yùn)行故障時(shí)需要立馬更新時(shí),需要進(jìn)行緊急發(fā)布。緊急發(fā)布驗(yàn)證子單元驗(yàn)證通過(guò)時(shí),驗(yàn)證單元202可跳過(guò)發(fā)布日驗(yàn)證單元202、發(fā)布次數(shù)驗(yàn)證單元202,不再進(jìn)行發(fā)布日、發(fā)布次數(shù)等的驗(yàn)證,以簡(jiǎn)化應(yīng)用服務(wù)程序更新發(fā)布流程。

      待更新標(biāo)識(shí)添加單元203用于依據(jù)所述應(yīng)用服務(wù)更新指令,對(duì)未標(biāo)記已更新標(biāo)識(shí)的后端服務(wù)器300添加待更新標(biāo)識(shí)。例如,在tengine中,通過(guò)操作修改nginx的upstream配置文件來(lái)為后端服務(wù)器300添加待更新標(biāo)識(shí),在tengine中,后端服務(wù)器300可以稱作member,tengine的健康檢查機(jī)制是會(huì)按照一定的時(shí)間間隔像各個(gè)member發(fā)起健康檢查的請(qǐng)求,并會(huì)記錄member返回的狀態(tài)。整個(gè)發(fā)布過(guò)程是串行的,在發(fā)布每一臺(tái)member之前,通過(guò)發(fā)布腳本修改upstream.conf文件,將web-appname-1標(biāo)記為down,此即為本實(shí)施例中的待更標(biāo)識(shí)。

      更新單元204用于根據(jù)更新存儲(chǔ)在有待更新標(biāo)識(shí)的后端服務(wù)器300的應(yīng)用服務(wù)程序。在本實(shí)施例中,更新單元204用于更新web-appname-1被標(biāo)記為down的member中的應(yīng)用服務(wù)程序。更新單元204包括服務(wù)下線子單元2041,代碼獲取子單元2042、配置獲取子單元2043、配置替換子單元2044以及代碼替換子單元2045。

      請(qǐng)參閱圖5,服務(wù)下線子單元2041用于下線被標(biāo)記為down的member中的應(yīng)用服務(wù)程序,具體地,每隔一段時(shí)間,nginx會(huì)進(jìn)行reload,nginx檢測(cè)到該member標(biāo)記為down時(shí),會(huì)在當(dāng)前連接處理完成之后,不再接收新的請(qǐng)求,即該member完成當(dāng)前的處理操作之后即會(huì)處于離線狀態(tài)。

      代碼獲取子單元2042用于獲取存儲(chǔ)在版本管理服務(wù)器的待更新應(yīng)用服務(wù)程序代碼包。在本實(shí)施例中,借助jenkins,實(shí)現(xiàn)代碼編譯打包,不再由開發(fā)人員本地打包,只需提供最新代碼的svn路徑,由測(cè)試人員直接在jenkins管理平臺(tái)上點(diǎn)擊構(gòu)建即可完成應(yīng)用的打包,只需提供代碼包的路徑,即可獲取到待更新應(yīng)用服務(wù)程序的代碼包,這個(gè)過(guò)程減輕了開發(fā)人員的壓力,也避免了因?yàn)槭謩?dòng)打包過(guò)程中的失誤而造成應(yīng)用包不可用,使得應(yīng)用上線流程更加順利。

      配置獲取子單元2043,在本實(shí)施例中,配置分為系統(tǒng)配置和業(yè)務(wù)配置。其中系統(tǒng)配置為數(shù)據(jù)庫(kù)、緩存相關(guān)配置,業(yè)務(wù)配置即為非數(shù)據(jù)庫(kù)相關(guān)配置。配置中心采用的是key-value一一對(duì)應(yīng)的關(guān)系展示,并存入數(shù)據(jù)庫(kù)中。具體實(shí)現(xiàn)是在發(fā)布生產(chǎn)之前管理員登錄配置中心,將應(yīng)用的所有測(cè)試環(huán)境配置項(xiàng)上傳至配置中心,然后修改相應(yīng)配置項(xiàng)為生產(chǎn)配置(內(nèi)部應(yīng)用調(diào)用的配置測(cè)試和生產(chǎn)一致,無(wú)須修改),數(shù)據(jù)庫(kù)相關(guān)配置是由數(shù)據(jù)庫(kù)管理員修改,并且修改完之后的配置value對(duì)于開發(fā)是不可見的,保證了數(shù)據(jù)庫(kù)讀寫賬號(hào)密碼的安全。當(dāng)發(fā)布腳本調(diào)用配置獲取子單元2043,配置獲取子單元2043將去指定目錄獲取相應(yīng)的配置包。

      配置替換子單元2044,用于替換所述應(yīng)用服務(wù)程序的配置包為配置獲取子單元2043獲取的所述待更新應(yīng)用服務(wù)程序的配置包。

      代碼替換子單元2045用于將后端服務(wù)器300中存儲(chǔ)的應(yīng)用服務(wù)程序代碼包替換為代碼獲取子單元2042獲取到的待更新應(yīng)用服務(wù)程序的代碼包。具體地,代碼替換子單元2045拷貝代碼獲取子單元2042獲取的代碼包,并將其存放至指定路徑,覆蓋原有的代碼包,即完成了待更新應(yīng)用服務(wù)程序的代碼包替換。

      已更新標(biāo)識(shí)添加單元205用于為已經(jīng)替換了應(yīng)用服務(wù)程序代碼包的后臺(tái)服務(wù)器添加已更新標(biāo)識(shí),在本實(shí)施例中,操作nginx配置文件,將down標(biāo)記去掉,并添加一個(gè)已更新標(biāo)記。

      服務(wù)加載單元206用于加載上線更新后的應(yīng)用服務(wù)程序,在本實(shí)施例中,nginx重新加載(即reload)配置,nginx接收到該信號(hào)后判斷member可以上線提供服務(wù),該member可以繼續(xù)接受用戶請(qǐng)求。以此類推,直至完成整個(gè)服務(wù)器集群的應(yīng)用服務(wù)程序發(fā)布更新。

      所述應(yīng)用服務(wù)更新裝置200還包括報(bào)警單元207。報(bào)警單元207在應(yīng)用服務(wù)程序下線之前關(guān)閉報(bào)警,并且在應(yīng)用服務(wù)程序上線之后開啟報(bào)警。開啟報(bào)警后,報(bào)警單元207可在應(yīng)用服務(wù)程序運(yùn)行出現(xiàn)故障時(shí)發(fā)出警報(bào),例如可以通過(guò)網(wǎng)絡(luò)發(fā)送短信或郵件通知管理員等。

      報(bào)警單元207還用于在上述任何一個(gè)功能單元出現(xiàn)運(yùn)行故障時(shí)或驗(yàn)證錯(cuò)誤時(shí)(例如,所述發(fā)布者沒有通過(guò)身份驗(yàn)證單元202的身份驗(yàn)證),通過(guò)網(wǎng)絡(luò)發(fā)送短信或郵件通知管理員進(jìn)行警示提醒。

      第二實(shí)施例,請(qǐng)參閱圖6,圖6顯示了本實(shí)施例提供的一種應(yīng)用服務(wù)更新方法的流程圖。

      步驟s101:接收應(yīng)用服務(wù)更新指令。所述更新應(yīng)用服務(wù)程序的指令可以是用戶直接向所述前端服務(wù)器100下達(dá)的指令,也可以是管理員通過(guò)用戶端400向服務(wù)器下達(dá)的更新應(yīng)用服務(wù)程序的指令。所述指令可以包括:待更新應(yīng)用服務(wù)程序的存儲(chǔ)路徑信息,版本信息,待更新應(yīng)用服務(wù)程序的配置信息以及待更新應(yīng)用服務(wù)程序的代碼包的地址信息等。此步驟可以由指令接收單元201執(zhí)行。

      步驟s102:依據(jù)所述更新指令,對(duì)未標(biāo)記已更新標(biāo)識(shí)的后端服務(wù)器300添加待更新標(biāo)識(shí)。在本實(shí)施例中,服務(wù)器集群使用的是tengine,在tengine中,通過(guò)操作修改nginx的upstream配置文件來(lái)為后端服務(wù)器300添加待更新標(biāo)識(shí),在tengine中,后端服務(wù)器300可以稱作member,tengine的健康檢查機(jī)制是會(huì)按照一定的時(shí)間間隔像各個(gè)member發(fā)起健康檢查的請(qǐng)求,并會(huì)記錄member返回的狀態(tài)。整個(gè)發(fā)布過(guò)程是串行的,在發(fā)布每一臺(tái)member之前,通過(guò)發(fā)布腳本修改upstream.conf文件,將web-appname-1標(biāo)記為down,此即為本實(shí)施例中的待更標(biāo)識(shí)。此步驟可以由待更新標(biāo)識(shí)添加單元203執(zhí)行。

      步驟s103:驗(yàn)證發(fā)布信息,請(qǐng)參閱圖7,步驟s103包括子步驟s1031-s1032:

      子步驟s1031:驗(yàn)證發(fā)布者的身份;通過(guò)賬號(hào)、密碼等方式對(duì)發(fā)布者進(jìn)行身份的驗(yàn)證,當(dāng)發(fā)布者無(wú)法通過(guò)身份驗(yàn)證時(shí),無(wú)法進(jìn)行后續(xù)的發(fā)布操作。此步驟可以由身份驗(yàn)證子單元2011執(zhí)行。

      子步驟s1032:驗(yàn)證發(fā)布次數(shù),驗(yàn)證當(dāng)前的應(yīng)用服務(wù)程序在更新發(fā)布日的發(fā)布更新次數(shù),在發(fā)布日的發(fā)布更新的次數(shù)不能超過(guò)預(yù)設(shè)的次數(shù)(例如3次),否則不允許繼續(xù)后續(xù)的更新發(fā)布操作。此步驟可以由發(fā)布次數(shù)驗(yàn)證單元202執(zhí)行

      當(dāng)所述驗(yàn)證發(fā)布者身份及驗(yàn)證發(fā)布次數(shù)均通過(guò)后方進(jìn)行步驟s104。

      步驟s104:更新存儲(chǔ)在標(biāo)記有所述待更新標(biāo)識(shí)的后端服務(wù)器300的應(yīng)用服務(wù)程序。請(qǐng)參閱圖8,步驟s104分為子步驟s1041-s1045。

      子步驟s1041:下線存儲(chǔ)在所述有待更新標(biāo)識(shí)的后端服務(wù)器300的應(yīng)用服務(wù)程序。在本實(shí)施例中,nginx每隔一段時(shí)間會(huì)進(jìn)行重新加載(reload),nginx檢測(cè)到該member標(biāo)記為down時(shí),會(huì)在當(dāng)前連接處理完成之后,不再接收新的請(qǐng)求,即該member完成當(dāng)前的處理操作之后即會(huì)處于離線狀態(tài)。此步驟可以由服務(wù)下線子單元2041執(zhí)行。

      子步驟s1042:獲取存儲(chǔ)在版本管理服務(wù)器的待更新應(yīng)用服務(wù)程序代碼包。在本實(shí)施例中,借助jenkins,實(shí)現(xiàn)代碼編譯打包,不再由開發(fā)人員本地打包,只需提供最新代碼的svn路徑,由測(cè)試人員直接在jenkins管理平臺(tái)上點(diǎn)擊構(gòu)建即可完成應(yīng)用的打包,只需提供代碼包的路徑,即可獲取到待更新應(yīng)用服務(wù)程序的代碼包,這個(gè)過(guò)程減輕了開發(fā)人員的壓力,也避免了因?yàn)槭謩?dòng)打包過(guò)程中的失誤而造成應(yīng)用包不可用,使得應(yīng)用上線流程更加順利。此步驟可以由代碼獲取子單元2042執(zhí)行。

      子步驟s1043:獲取所述待更新應(yīng)用服務(wù)程序的配置包。此步驟可以由配置獲取子單元2043執(zhí)行,當(dāng)調(diào)用配置獲取子單元2043時(shí),配置獲取子單元2043將去指定目錄獲取相應(yīng)的配置包。

      子步驟s1044:替換所述應(yīng)用服務(wù)程序的配置包為所述待更新應(yīng)用服務(wù)程序的配置包。此步驟可以由配置替換子單元2044執(zhí)行,配置替換子單元2044替換所述應(yīng)用服務(wù)程序的配置包為配置獲取子單元2043獲取的所述待更新應(yīng)用服務(wù)程序的配置包。

      子步驟s1045:替換應(yīng)所述用服務(wù)程序代碼包為待更新應(yīng)用服務(wù)程序代碼包。具體地,首先拷貝獲取的代碼包,并將其存放至指定路徑,覆蓋原有的代碼包,即完成了待更新應(yīng)用服務(wù)程序的代碼包替換。此步驟可以有代碼替換子單元2045執(zhí)行。

      在步驟s1045之前,還包括步驟s1033:驗(yàn)證所述代碼包的正確性。通過(guò)驗(yàn)證代碼包的名稱、大小、編號(hào)、md5碼等來(lái)驗(yàn)證所述代碼包是否為正確、完整的代碼包,該步驟可以由代碼包驗(yàn)證子單元2014執(zhí)行。

      步驟s105:對(duì)存儲(chǔ)有更新后的應(yīng)用服務(wù)程序的后端服務(wù)器300添加已更新標(biāo)識(shí)。在本實(shí)施例中,操作nginx配置文件,將down標(biāo)記去掉,并添加一個(gè)已更新標(biāo)記。該步驟可以由已更新標(biāo)識(shí)添加單元205執(zhí)行。

      步驟s105:加載上線所述更新后的應(yīng)用服務(wù)程序。在本實(shí)施例中,nginx重新加載(即reload)配置,nginx接收到該信號(hào)后判斷member可以上線提供服務(wù),該member可以繼續(xù)接受用戶請(qǐng)求。該步驟可以由服務(wù)加載單元206執(zhí)行。

      綜上所述,本發(fā)明公開的一種應(yīng)用服務(wù)更新發(fā)布方法及裝置,應(yīng)用于一服務(wù)器集群,所述服務(wù)器集群包括前端服務(wù)器以及后端服務(wù)器,在其更新發(fā)布的過(guò)程中,各個(gè)后端服務(wù)器的更新串行進(jìn)行,各后端服務(wù)器之間互不干擾,不會(huì)中斷提供的服務(wù),用戶不會(huì)感知到更新發(fā)布的過(guò)程,提升了用戶體驗(yàn),所述更新發(fā)布的過(guò)程均線上進(jìn)行,避免了由于人工打包、修改配置等因素容易產(chǎn)生的不安全因素,確保了信息的安全,并且適用于大規(guī)模的應(yīng)用更新上線場(chǎng)景。

      在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的裝置、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。

      另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一起形成一個(gè)獨(dú)立的部分,也可以是各個(gè)模塊單獨(dú)存在,也可以兩個(gè)或兩個(gè)以上模塊集成形成一個(gè)獨(dú)立的部分。

      所述功能如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

      需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。

      以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。

      以上所述僅為本發(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頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1