本發(fā)明涉及計算機領域,具體涉及一種持續(xù)集成服務器的配置信息的備份方法及系統(tǒng)。
背景技術:
隨著軟件開發(fā)復雜度的不斷提高,團隊開發(fā)成員間如何更好地協(xié)同工作以確保軟件開發(fā)的質量已經(jīng)慢慢成為開發(fā)過程中不可回避的問題。尤其是近些年來,敏捷(Agile)在軟件工程領域越來越紅火,如何能在不斷變化的需求中快速適應和保證軟件的質量也顯得尤其的重要。持續(xù)集成(Continuous integration)正是針對這一類問題的一種軟件開發(fā)實踐。持續(xù)集成是一種軟件項目管理方法,依據(jù)資產(chǎn)庫(源碼,類庫等)的變更自動完成編譯、測試、部署和反饋,為軟件產(chǎn)品提供了一個可以構建編譯測試等任務的自動化集成環(huán)境。通俗地講,持續(xù)集成指的是,頻繁地將代碼集成到主干。程序員在向版本庫中提交代碼后,CI持續(xù)集成服務器自動發(fā)現(xiàn)或者定時發(fā)現(xiàn)變更,依據(jù)這些源碼,重新構建產(chǎn)品的編譯、測試、審查、部署和反饋過程。其核心措施是,代碼集成到主干之前,必須通過自動化測試。只要有一個測試用例失敗,就不能集成。每完成一點更新,就集成到主干,可以快速發(fā)現(xiàn)錯誤和定位錯誤。還可以防止分支大幅偏離主干。因此,持續(xù)集成可以幫助研發(fā)人員快速地集成代碼改動,幫助測試人員進行自動化軟件質量測試,從而可以持續(xù)集成產(chǎn)品的代碼變動,縮短產(chǎn)品研發(fā)周期,使得產(chǎn)品可以快速迭代的同時還能保持高質量,在軟件產(chǎn)品的生產(chǎn)環(huán)境發(fā)揮著至關重要的作用。
用于持續(xù)集成的工具需要搭建在特定的服務器上,該特定的服務器稱之為持續(xù)集成服務器。其中,對持續(xù)集成服務器上持續(xù)集成環(huán)境配置信息(持續(xù)集成工具應用的配置信息,軟件編譯測試構建任務的配置信息等)的備份,對于軟件產(chǎn)品的生產(chǎn)環(huán)境的遷移以及災難恢復都有著重大的意義。由于集成環(huán)境構建任務等配置信息隨著用戶的使用會有所改變,因此持續(xù)集成服務器配置信息需要定期備份。而備份周期間隔越短,備份內容也就越接近真實環(huán)境。
目前對持續(xù)集成服務器配置信息的備份多使用插件備份和遠程備份的方法。前者利用持續(xù)集成工具的內置插件對限定的配置信息實現(xiàn)備份;后者使用同步工具(例如Rsync)把配置信息同步到遠程服務器。兩種方法每次備份都需要對配置信息單獨歸檔,然后存放或者同步至備份服務器上。
在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題:無論是利用插件實現(xiàn)備份還是遠程備份的方法,由于備份時都需要對配置信息進行歸檔,例如每次將代碼提交到持續(xù)集成服務器上導致配置信息發(fā)生改變時,均需要同步配置信息的存儲目錄(每提交一次代碼就備份一次),導致備份的內容中有很多配置信息是大量重復的,因此會造成冗余備份和冗余存儲的問題。此外,每次歸檔的備份需要同步到遠程備份服務器上,而冗余存儲和遠程同步則會導致資源(CPU、內存、存儲空間等)消耗過大,增加了系統(tǒng)負擔。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種持續(xù)集成服務器的配置信息的備份方法及系統(tǒng),用以至少解決上述闡述的現(xiàn)有技術中對持續(xù)集成服務器配置信息的備份存在冗余備份的問題。
第一方面,本發(fā)明實施例提供了一種持續(xù)集成服務器的配置信息的備份方法,包括:
獲取持續(xù)集成應用環(huán)境的當前配置信息相關的當前校驗信息;
將所述當前校驗信息與本地倉庫中的最新的第一版本的歷史配置信息相關的歷史校驗信息進行比較;
當所述當前校驗信息和所述歷史校驗信息不同時,將所述第一版本的歷史配置信息更新為第二版本的所述當前配置信息;
基于所述第二版本的當前配置信息生成第二版本的元數(shù)據(jù),將所述第二版本的元數(shù)據(jù)存儲至所述本地倉庫。
第二方面,本發(fā)明實施例提供了一種持續(xù)集成服務器的配置信息的備份系統(tǒng),包括:
校驗信息獲取模塊,用于獲取持續(xù)集成應用環(huán)境的當前配置信息相關的當前校驗信息;
校驗信息對比模塊,用于將所述當前校驗信息與本地倉庫中的最新的第一版本的歷史配置信息相關的歷史校驗信息進行比較;
配置信息更新模塊,用于在所述當前校驗信息和所述歷史校驗信息不同時,將所述第一版本的歷史配置信息更新為第二版本的所述當前配置信息;
元數(shù)據(jù)存儲模塊,用于基于所述第二版本的當前配置信息生成第二版本的元數(shù)據(jù),將所述第二版本的元數(shù)據(jù)存儲至所述本地倉庫。
第三方面,本發(fā)明實施例還提供了一種非易失性計算機存儲介質,存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于執(zhí)行本發(fā)明上述任一項持續(xù)集成服務器的配置信息的備份方法。
第四方面,本發(fā)明實施例還提供了一種電子設備,包括:至少一個處理器;以及存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的程序,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行本發(fā)明上述任一項持續(xù)集成服務器的配置信息的備份方法。
第五方面,本發(fā)明實施例還提供了一種計算機程序產(chǎn)品,包括至少一個非易失性計算機存儲介質,所述非易失性計算機存儲介質具有存儲在其中的計算機可執(zhí)行程序代碼指令,所述計算機可執(zhí)行程序代碼指令能夠執(zhí)行上述任一項所述的持續(xù)集成服務器的配置信息的備份方法。
本發(fā)明實施例提供的持續(xù)集成服務器的配置信息的備份方法及系統(tǒng),通過將持續(xù)集成應用環(huán)境的當前配置信息與本地倉庫中最新版本的歷史配置信息進行校驗信息的比較,可以確定持續(xù)集成應用環(huán)境生成的當前配置信息是否和歷史配置信息相同,即當前配置信息與歷史配置信息相比是否發(fā)生了變化;當二者的校驗信息不同時,用當前版本的當前配置信息更新最新版本的歷史配置信息,由于只存儲發(fā)生了變更(當前版本)的配置信息,可以減少本地倉庫中的存儲內容,降低冗余備份的可能性,避免冗余備份對CPU、內存、存儲空間等資源過高的消耗;在生成當前版本的元數(shù)據(jù)后將當前版本的元數(shù)據(jù)存儲在本地倉庫中,可以通過存儲的各版本的元數(shù)據(jù)及當前版本的當前配置信息進行相應的數(shù)據(jù)處理(例如數(shù)據(jù)回滾)得到所有版本的配置信息,使得本地倉庫減少冗余備份的同時,能夠繼續(xù)對配置信息的各個版本進行控制,提高了系統(tǒng)性能。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實施例的持續(xù)集成服務器的配置信息的備份方法的流程圖;
圖2是本發(fā)明另一實施例的持續(xù)集成服務器的配置信息的備份方法的流程圖;
圖3是本發(fā)明又一實施例的持續(xù)集成服務器的配置信息的備份方法的流程圖;
圖4是本發(fā)明再一實施例的持續(xù)集成服務器的配置信息的備份方法的流程圖;
圖5是本發(fā)明一實施例的持續(xù)集成服務器的配置信息的備份系統(tǒng)的結構示意圖;
圖6是本發(fā)明一實施例提供的實施持續(xù)集成服務器的配置信息的備份方法的電子設備的結構示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
需要說明的是,在不沖突的情況下,本發(fā)明中的實施方式及實施方式中的特征可以相互組合。
本發(fā)明可用于眾多通用或專用的計算系統(tǒng)環(huán)境或配置中。例如:個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設備的分布式計算環(huán)境等等。
本發(fā)明可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等等。也可以在分布式計算環(huán)境中實踐本發(fā)明,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”,不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
圖1是本發(fā)明一實施例的持續(xù)集成服務器的配置信息的備份方法的流程圖。如圖1所示,該方法包括:
S11:獲取持續(xù)集成應用環(huán)境的當前配置信息相關的當前校驗信息;
S12:;將所述當前校驗信息與本地倉庫中的最新的第一版本的歷史配置信息相關的歷史校驗信息進行比較
S13:當所述當前校驗信息和所述歷史校驗信息不同時,將所述第一版本的歷史配置信息更新為第二版本的所述當前配置信息;
S14:基于所述第二版本的當前配置信息生成第二版本的元數(shù)據(jù),將所述第二版本的元數(shù)據(jù)存儲至所述本地倉庫。
持續(xù)集成應用環(huán)境中,持續(xù)集成服務器(下文簡稱為服務器)在構建項目的編譯、測試等任務時,會在該項目的相應目錄下生成相應的配置信息。當構建的任務有變化時,其生成的配置信息也會有變化。例如,構建的任務與上一次相比數(shù)量增多了,則服務器在該項目的配置信息存儲目錄下生成的配置信息的數(shù)量(包括配置信息存儲目錄下的子目錄數(shù)量)也相應增加。每次發(fā)生變化的構建任務生成的配置信息可以存為一個版本。當構建的任務發(fā)生錯誤從而想回退到未構建本次任務的狀態(tài)時,可以通過本地倉庫中的數(shù)據(jù)(包括源代碼、配置信息、日志鏈接等)回退到任意版本。其中,在進行數(shù)據(jù)回退時,數(shù)據(jù)(包括配置信息)的元數(shù)據(jù)必不可少。元數(shù)據(jù)至少包括但不限于構建任務的提交者、構建任務的時間戳(即提交時間)、數(shù)據(jù)的存儲目錄、指向上一版本的元數(shù)據(jù)的索引。因此,本發(fā)明實施例中用第二版本的當前配置信息更新第一版本的歷史配置信息,可以基于第二版本的當前配置信息和各個版本的元數(shù)據(jù)來得到各個版本的配置信息。
本發(fā)明實施例提供的持續(xù)集成服務器的配置信息的備份方法,通過將持續(xù)集成應用環(huán)境的當前配置信息與本地倉庫中第一版本(最新)的歷史配置信息進行校驗信息的比較,由于二者的校驗信息相同表明當前配置信息與歷史配置信息相比未發(fā)生變化,因此可以通過校驗信息的比較確定是否要將持續(xù)集成應用環(huán)境生成的當前配置信息進行備份;當二者的校驗信息不同時,用第二版本(當前版本)的當前配置信息更新第一版本的歷史配置信息,由于服務器中只存儲發(fā)生變更(第二版本)的配置信息,可以減少本地倉庫中的存儲內容,降低冗余備份的可能性;在生成第二版本的元數(shù)據(jù)后將第二版本的元數(shù)據(jù)存儲在本地倉庫中,可以通過對本地倉庫存儲的各版本的元數(shù)據(jù)及當前版本的當前配置信息進行相應的數(shù)據(jù)處理(例如數(shù)據(jù)回滾)得到所有版本的配置信息,使得本地倉庫減少冗余備份的同時,能夠繼續(xù)對配置信息的各個版本進行回退等控制,提高了持續(xù)集成系統(tǒng)的性能。
應當理解的是,本發(fā)明實施例也可以將當前配置信息相關的當前校驗信息與本地倉庫中所有歷史版本的配置信息的校驗信息進行比較,從而保證服務器中配置信息的每一個版本均不相同,使得服務器冗余存儲的可能性更小。
圖2是本發(fā)明另一實施例的持續(xù)集成服務器的配置信息的備份方法的流程圖。如圖2所示,該方法除了包括圖1所示步驟外,還包括:
S15:當所述當前校驗信息和所述歷史校驗信息不同時,確定所述當前配置信息中與所述歷史配置信息相比的增量配置信息;
S16:至少將所述增量配置信息和所述第二版本的元數(shù)據(jù)發(fā)送至與所述本地倉庫關聯(lián)的遠程倉庫。
圖1所示方法在服務器出現(xiàn)故障,而此時碰巧沒有備份或者備份不及時,可能存在丟失數(shù)據(jù)的風險。因此,通過將配置信息備份至與本地倉庫關聯(lián)的遠程倉庫,可以降低數(shù)據(jù)丟失的可能性。
本實施例在當前校驗信息和歷史校驗信息不同,即當前配置信息與歷史配置信息不完全相同的情況下,將當前配置信息與所述歷史配置信息相比的增量配置信息(包括增加的、變更的配置信息)及第二版本的當前配置信息的元數(shù)據(jù)發(fā)送至遠程倉庫,與現(xiàn)有技術中將每個版本的配置信息均備份至遠程倉庫相比,在能得到配置信息的各個版本的同時,又大大減少了遠程倉庫需要備份的配置信息的數(shù)量和大小,降低了對遠程倉庫的空間大小的需求,從另一方面再次減少了系統(tǒng)的冗余備份,提高了系統(tǒng)性能。
應當說明的是,本實施例不受所描述的動作順序的限制,例如上述實施例中步驟14和步驟15可以采用其他順序或者同時進行。
圖3是本發(fā)明又一實施例的持續(xù)集成服務器的配置信息的備份方法的流程圖。如圖3所示,該方法在圖2所示S15當所述當前校驗信息和所述歷史校驗信息不同時,確定所述當前配置信息中與所述歷史配置信息相比的增量配置信息之后,包括:
S151:為所述增量配置信息及所述第二版本的元數(shù)據(jù)添加索引標簽信息;
S16至少將所述增量配置信息和所述第二版本的元數(shù)據(jù)發(fā)送至與所述本地倉庫關聯(lián)的遠程倉庫包括:
S161:將所述增量配置信息、所述第二版本的元數(shù)據(jù)連同所述索引標簽信息發(fā)送至所述遠程倉庫。
本實施例中,索引標簽信息用于響應數(shù)據(jù)恢復請求或數(shù)據(jù)回滾請求時對第二版本的當前配置信息的查找。例如可以為第二版本和第一版本的增量配置信息以及第二版本的元數(shù)據(jù)賦予“公測版”“穩(wěn)定版”等標簽,也可以添加便于理解本次構建任務的標簽,使得以后在查找配置信息的第二版本時,可以通過添加的標簽快捷方便地獲取到。本實施例提供的方法在需要對配置信息進行數(shù)據(jù)恢復或數(shù)據(jù)回滾而配置信息的版本號或唯一標識符字數(shù)太長或太復雜時尤為有利。
作為上述實施例的進一步說明,本發(fā)明實施例中至少通過計算配置信息的存儲目錄的哈希值確定與配置信息相關的校驗信息。本實施例通過對配置信息的存儲目錄(包括目錄結構)進行哈希計算得到哈希值(例如MD5值、SHA1值等),可以使配置信息(包括當前配置信息和歷史配置信息)相關的校驗信息唯一被確定,從而能夠更精確地判斷當前配置信息與歷史配置信息相比是否發(fā)生了變化,進一步減少系統(tǒng)冗余備份的可能性。
圖4是本發(fā)明再一實施例的持續(xù)集成服務器的配置信息的備份方法的流程圖。如圖4所示,在圖1、圖2或圖3所示步驟11獲取持續(xù)集成應用環(huán)境的當前配置信息相關的當前校驗信息之前,包括:
S10:提取符合過濾規(guī)則的持續(xù)集成應用環(huán)境的當前配置信息。
其中,過濾規(guī)則根據(jù)本地倉庫中設定的待備份配置信息類型確定。例如構建任務在編譯過程中產(chǎn)生的中間文件就無需對其進行備份。
本實施例中,通過過濾規(guī)則對持續(xù)集成應用環(huán)境的配置信息進行過濾,提取需要存儲至本地倉庫中的配置信息,可以靈活配置需要備份的內容,減小了服務器將配置信息備份至本地倉庫的任務量,從而降低了冗余備份的可能性。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作合并,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
圖5是本發(fā)明一實施例的持續(xù)集成服務器的配置信息的備份系統(tǒng)的結構示意圖。本發(fā)明所述的持續(xù)集成服務器的配置信息的備份方法可以基于本實施例中的持續(xù)集成服務器的配置信息的備份系統(tǒng)實施。如圖5所示,該系統(tǒng)包括校驗信息獲取模塊51、校驗信息對比模塊52、配置信息更新模塊53和元數(shù)據(jù)存儲模塊54。
校驗信息獲取模塊51用于獲取持續(xù)集成應用環(huán)境的當前配置信息相關的當前校驗信息;
校驗信息對比模塊52用于將所述當前校驗信息與本地倉庫中的最新的第一版本的歷史配置信息相關的歷史校驗信息進行比較;
配置信息更新模塊53用于在所述當前校驗信息和所述歷史校驗信息不同時,將所述第一版本的歷史配置信息更新為第二版本的所述當前配置信息;
元數(shù)據(jù)存儲模塊54用于基于所述第二版本的當前配置信息生成第二版本的元數(shù)據(jù),將所述第二版本的元數(shù)據(jù)存儲至所述本地倉庫。
本發(fā)明實施例提供的持續(xù)集成服務器的配置信息的備份系統(tǒng),在校驗信息獲取模塊獲取持續(xù)集成應用環(huán)境的當前配置信息相關的當前校驗信息后,通過校驗信息對比模塊將當前配置信息與本地倉庫中第一版本(最新)的歷史配置信息進行校驗信息的比較;當二者的校驗信息不同時,通過配置信息更新模塊來將第一版本的歷史配置信息更新為第二版本(當前版本)的配置信息,由于服務器中只存儲發(fā)生了變更(第二版本)的配置信息,可以減少本地倉庫中的存儲內容,降低冗余備份的可能性;元數(shù)據(jù)存儲模塊生成第二版本的元數(shù)據(jù)并將第二版本的元數(shù)據(jù)存儲在本地倉庫中,可以通過對本地倉庫存儲的各版本的元數(shù)據(jù)及當前版本的當前配置信息進行相應的數(shù)據(jù)處理(例如數(shù)據(jù)回滾)得到所有版本的配置信息,使得本地倉庫減少冗余備份的同時,能夠繼續(xù)對配置信息的各個版本進行回退等控制,提高了持續(xù)集成系統(tǒng)的性能。
本發(fā)明另一實施例的持續(xù)集成服務器的配置信息的備份系統(tǒng)中,該系統(tǒng)還包括:
增量配置信息確定模塊,用于在所述當前校驗信息和所述歷史校驗信息不同時,確定所述當前配置信息中與所述歷史配置信息相比的增量配置信息;
遠程備份模塊,用于至少將所述增量配置信息和所述第二版本的元數(shù)據(jù)發(fā)送至與所述本地倉庫關聯(lián)的遠程倉庫。
本發(fā)明又一實施例的持續(xù)集成服務器的配置信息的備份系統(tǒng)中,該系統(tǒng)還包括標簽添加模塊,用于為所述增量配置信息及所述第二版本的元數(shù)據(jù)添加索引標簽信息;
所述遠程備份模塊用于將所述增量配置信息、所述第二版本的元數(shù)據(jù)連同所述索引標簽信息發(fā)送至所述遠程倉庫。
作為上述實施例的進一步說明,本發(fā)明實施例中至少通過計算配置信息的存儲目錄的哈希值確定配置信息相關的校驗信息。
本發(fā)明再一實施例的持續(xù)集成服務器的配置信息的備份系統(tǒng)中,所述系統(tǒng)還包括配置信息過濾模塊,用于提取符合過濾規(guī)則的持續(xù)集成應用環(huán)境的當前配置信息,其中,過濾規(guī)則根據(jù)所述本地倉庫中設定的待備份配置信息類型確定。
本發(fā)明實施例提供了一種非易失性計算機存儲介質,所述計算機存儲介質存儲有計算機可執(zhí)行指令,該計算機可執(zhí)行指令可執(zhí)行上述任意方法實施例中的持續(xù)集成服務器的配置信息的備份方法;
作為一種實施方式,本發(fā)明的非易失性計算機存儲介質存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令設置為:
獲取持續(xù)集成應用環(huán)境的當前配置信息相關的當前校驗信息;
將所述當前校驗信息與本地倉庫中的最新的第一版本的歷史配置信息相關的歷史校驗信息進行比較;
當所述當前校驗信息和所述歷史校驗信息不同時,將所述第一版本的歷史配置信息更新為第二版本的所述當前配置信息;
基于所述第二版本的當前配置信息生成第二版本的元數(shù)據(jù),將所述第二版本的元數(shù)據(jù)存儲至所述本地倉庫。
作為一種非易失性計算機可讀存儲介質,可用于存儲非易失性軟件程序、非易失性計算機可執(zhí)行程序以及模塊,如本發(fā)明實施例中的持續(xù)集成服務器的配置信息的備份方法對應的程序指令/模塊(例如,附圖5所示的校驗信息獲取模塊51、校驗信息對比模塊52、配置信息更新模塊53和元數(shù)據(jù)存儲模塊54)。所述一個或者多個模塊存儲在所述非易失性計算機可讀存儲介質中,當被處理器執(zhí)行時,執(zhí)行上述任意方法實施例中的持續(xù)集成服務器的配置信息的備份方法。
非易失性計算機可讀存儲介質可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需要的應用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)持續(xù)集成服務器的配置信息的備份裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,非易失性計算機可讀存儲介質可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態(tài)存儲器件。在一些實施例中,非易失性計算機可讀存儲介質可選包括相對于處理器遠程設置的存儲器,這些遠程存儲器可以通過網(wǎng)絡連接至持續(xù)集成服務器的配置信息的備份裝置。上述網(wǎng)絡的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
特別地,本發(fā)明還提供了一種計算機程序產(chǎn)品,包括至少一個非易失性計算機存儲介質,所述非易失性計算機存儲介質具有存儲在其中的計算機可執(zhí)行程序代碼指令,所述計算機可執(zhí)行程序代碼指令能夠執(zhí)行上述任意方法實施例中的持續(xù)集成服務器的配置信息的備份方法。
本發(fā)明實施例中可以通過硬件處理器(hardware processor)來實現(xiàn)相關功能模塊。
圖6是本發(fā)明一實施例提供的實施持續(xù)集成服務器的配置信息的備份方法的電子設備即持續(xù)集成服務器的結構示意圖。如圖6所示,該設備包括:
一個或多個處理器610以及存儲器620,圖6中以一個處理器610為例。
持續(xù)集成服務器還可以包括:輸入裝置630和輸出裝置640。
處理器610、存儲器620、輸入裝置630和輸出裝置640可以通過總線或者其他方式連接,圖6中以通過總線連接為例。
存儲器620為上述的非易失性計算機可讀存儲介質。處理器610通過運行存儲在存儲器620中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務器的各種功能應用以及數(shù)據(jù)處理,即實現(xiàn)上述方法實施例所示持續(xù)集成服務器的配置信息的備份方法。
輸入裝置630可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與持續(xù)集成服務器的用戶設置以及功能控制有關的鍵信號輸入。輸出裝置640可包括顯示屏等顯示設備。
上述產(chǎn)品可執(zhí)行本發(fā)明實施例所提供的方法,具備執(zhí)行方法相應的功能模塊和有益效果。未在本實施例中詳盡描述的技術細節(jié),可參見本發(fā)明實施例所提供的方法。
作為一種實施方式,上述電子設備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠:
獲取持續(xù)集成應用環(huán)境的當前配置信息相關的當前校驗信息;
將所述當前校驗信息與本地倉庫中的最新的第一版本的歷史配置信息相關的歷史校驗信息進行比較;
當所述當前校驗信息和所述歷史校驗信息不同時,將所述第一版本的歷史配置信息更新為第二版本的所述當前配置信息;
基于所述第二版本的當前配置信息生成第二版本的元數(shù)據(jù),將所述第二版本的元數(shù)據(jù)存儲至所述本地倉庫。
本發(fā)明實施例的電子設備以多種形式存在,包括但不限于:
(1)移動通信設備:這類設備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。
(2)超移動個人計算機設備:這類設備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設備等,例如iPad。
(3)服務器:提供計算服務的設備,服務器的構成包括處理器、硬盤、內存、系統(tǒng)總線等,服務器和通用的計算機架構類似,但是由于需要提供高可靠的服務,因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
(4)其他具有數(shù)據(jù)交互功能的電子裝置。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施例的描述,本領域的技術人員可以清楚地了解到各實施例可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。